找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9709|回复: 10
收起左侧

Arduino做一个三色LED的呼吸灯

[复制链接]
ID:302494 发表于 2018-12-6 07:54 | 显示全部楼层 |阅读模式
本菜鸟以前玩51单片机的,刚刚接触Arduino,写了一个三色LED呼吸灯做测试,学习分享。
代码如下:
void setup() {
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
Serial.begin(9600);
}

void loop() {
  char group[3]={11,10,9};
  for (char j=0;j<=2;j++)
  {
    switch(group[j])
    {
      case 11:
              Serial.println("红色渐变!");
              break;
      case 10:
              Serial.println("蓝色渐变!");
              break;
      case 9:
              Serial.println("绿色渐变!");
              break;
      }
    for(char i = 0;i<=100;i++)
    {
     analogWrite(group[j],i);
     delay(20);

     }
     for(char i = 100;i>=0;i--)
    {
     analogWrite(group[j],i);
     delay(20);

     }
  }
}

评分

参与人数 2黑币 +53 收起 理由
azi197417 + 3 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:452731 发表于 2019-1-20 23:08 | 显示全部楼层
这个思想延续的单片机的思想,很有参考价值
回复

使用道具 举报

ID:471632 发表于 2019-4-1 09:31 | 显示全部楼层
测试感觉不是很好,等就没有呼吸效果
回复

使用道具 举报

ID:471632 发表于 2019-4-1 09:43 | 显示全部楼层
找到原因了,我的是共阳三色管
回复

使用道具 举报

ID:471632 发表于 2019-4-1 10:10 | 显示全部楼层
完全按照楼主的思路做的,但循环执行,只有11脚,其余的不执行,不知为什么,其它颜色不执行
回复

使用道具 举报

ID:471632 发表于 2019-4-1 13:04 | 显示全部楼层
我实际测试了一下,感觉这个程序一直在
回复

使用道具 举报

ID:471632 发表于 2019-4-1 13:05 | 显示全部楼层
程序一直在这段里面不断重复,不能变色是什么原因?
for(char i = 0;i<=100;i++)
    {
     analogWrite(group[j],i);
     delay(20);

     }
     for(char i = 100;i>=0;i--)
    {
     analogWrite(group[j],i);
     delay(20);
不能变色是什么原因?
回复

使用道具 举报

ID:471632 发表于 2019-4-3 09:23 | 显示全部楼层
本帖最后由 tigerzq 于 2019-4-3 10:38 编辑

重新思考了一下,按照楼主的程序稍微改动,能达到运行要求,还有问题不知出现在哪里,有高手解答一下吗?
void setup() {
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
Serial.begin(9600);
analogWrite(9,255);//关闭led
analogWrite(10,255);
analogWrite(11,255);
}

void loop() {
  char group[3]={11,10,9};
  for (char j=0;j<=2;j++)
  {
    switch(group[j])
    {
      case 11:
              Serial.println("红色渐变!");
              break;
      case 10:
              Serial.println("蓝色渐变!");
              break;
      case 9:
              Serial.println("绿色渐变!");
              break;
      }
    for(int i =255 ;i>=100;i--)  //共阳极接法,变量改为int运行正常,char好像不行,不知道为啥
    {
     analogWrite(group[j],i);
     delay(50);
     }
     for(int i = 100;i<=255;i++)
    {
     analogWrite(group[j],i);
     delay(50);

     }
     analogWrite(group[j],255);//关闭led,避免对其它颜色造成干扰
  }
}
另外,我想在程序运行时查看变量i,如何能实现呢?
回复

使用道具 举报

ID:471632 发表于 2022-3-7 11:23 | 显示全部楼层
这个能不能随机产生颜色,随机产生呼吸灯的效果呢?
回复

使用道具 举报

ID:138707 发表于 2022-3-8 14:47 | 显示全部楼层
这个能不能随机产生颜色,随机产生呼吸灯的效果呢?
回复

使用道具 举报

ID:138707 发表于 2023-7-29 18:43 | 显示全部楼层
这个能不能随机产生颜色,随机产生呼吸灯的效果呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表