清泛IT社区

搜索
App Inventor 2 中文社区 轻松创建Apps

扫码访问移动社区 移动社区,您的掌上技术专家

关注我,精彩不错过! 关注我,精彩不错过!

扫码安装最新版AI伴侣 最新版AI伴侣v2.69

Aia Store .aia 源码一站式解决方案 发布日志AI2连接测试ai2Starter模拟器

开通VIP免费赠送积分App Inventor 2 拓展有奖征文 VIP会员享专有教程,免费赠送基础版*技术支持服务! AI2入门必读中文文档中文教程IoT专题

查看: 272|回复: 0
打印 上一主题 下一主题

[资源分享] Arduino控制RGB三色LED灯实验、程序代码、连线图、仿真

  • TA的每日心情
    开心
    昨天 08:12
  • 签到天数: 91 天

    [LV.6]常住居民II

    292

    主题

    467

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    10674

    AI2中文网VIP弹球达人接水果达人撸猫达人

    跳转到指定楼层
    楼主
    发表于 2024-04-28 10:05:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    RGB三色灯简介
    RGB色彩模式包含红绿蓝三种,通过控制红(R)、绿(B)、蓝(G)三种颜色的变化使其相互叠加产生花式颜色。而其颜色值的输出是通过PWM来控制的。RGB三基色按照不同的比例相加合成混色称为相加混色,除相加混色法之外还有相减混色法。

    PWM控制
    PWM,即脉冲宽度调制,是英文“Pulse Width ModulaTIon”的缩写。根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。

    PWM功能简介
    PWM主要通过analogWrite () 进行控制,针对Arudino UNO板子中带有"~"的3、5、6、9、10、11数字端口写入一个模拟值,通知高电平与低电平持续时间的比值控制LED的亮度变化或者电机的转速。
    例如:欲使得内置的Arudino UNO 中的led亮度变为原来的一般,编写analogWrite (13,127)就可以了。一个电路让一个端口循环输出2.5V、3V、5V电压,仅仅用硬件电路就困难了,这时候就是PWM大显身手的时候了。
    占空比:高电平与低电平持续时间之比。

    硬件电路连接
    Arduino引脚RGB LED(共阴极)
    D11R
    D10B
    D9G
    GNDGND

    所需器件
    名称数量
    电阻3
    RGB LED灯1
    Arduino UNO开发板1


    控制代码
    1. /*运行环境:Arduino 1.8.19*/

    2. #define GREEN 9
    3. #define BLUE 10
    4. #define RED 11

    5. int redValue;
    6. int greenValue;
    7. int blueValue;

    8. void setup(){
    9.   pinMode(GREEN, OUTPUT);
    10.   pinMode(BLUE, OUTPUT);
    11.   digitalWrite(RED, HIGH);
    12.   digitalWrite(GREEN, LOW);
    13.   digitalWrite(BLUE, LOW);
    14. }

    15. void loop(){   
    16.   #define delayTime 1
    17.   redValue = 255;
    18.   greenValue = 0;
    19.   blueValue = 0;
    20.   
    21.   for(int i = 0; i < 255; i += 1){
    22.     redValue -= 1;
    23.     greenValue += 1;
    24.     analogWrite(RED, redValue);
    25.     analogWrite(GREEN, greenValue);
    26.     delay(delayTime);
    27.   }
    28.   
    29.   redValue = 0;
    30.   greenValue = 255;
    31.   blueValue = 0;   
    32.   for(int i = 0; i < 255; i += 1){
    33.     greenValue -= 1;
    34.     blueValue += 1;
    35.     analogWrite(GREEN, greenValue);
    36.     analogWrite(BLUE, blueValue);
    37.     delay(delayTime);
    38.   }
    39.   
    40.   redValue = 0;
    41.   greenValue = 0;
    42.   blueValue = 255;
    43.   
    44.   for(int i = 0; i < 255; i += 1){
    45.     blueValue -= 1;
    46.     redValue += 1;
    47.     analogWrite(BLUE, blueValue);
    48.     analogWrite(RED, redValue);
    49.     delay(delayTime);
    50.   }
    51. }
    复制代码


    测试结果

    ————————————————
    原文链接:https://blog.csdn.net/m0_58857684/article/details/125702555
    App Inventor 2 中文网 - MIT同步更新的中文本土化平台!v2.69更新日志
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    © 2024 tsingfun.com, Inc.  沪ICP备2020034476号-1  沪公网安备31011702000040号

    GMT+8, 2024-05-12 08:03 , Processed in 0.015712 second(s), 34 queries .