找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4248|回复: 5
收起左侧

PWM控制流水灯代码

[复制链接]
ID:395819 发表于 2018-10-21 18:08 | 显示全部楼层 |阅读模式
制作出来的实物图如下:
1540116111745.jpeg

LED灯接PWM输出功能的IO口3,5,6,9,10,11.
调速电位器中间抽头接A0口,用于控制流水灯的流动速度。

代码如下:
  1. int i, j, vol;
  2. unsigned char pin[] = {3, 5, 6, 9, 10, 11};
  3. unsigned int light[] = {0, 60, 120, 200, 255, 160, 50};
  4. void setup() {}
  5. void loop() {
  6.   vol = analogRead(0);
  7.   for (i = 0; i < 6; i++) {
  8.     analogWrite(pin[i], light[j]);
  9.     j++; if (j > 6) j = 0;
  10.     delay(vol / 5);
  11.   }
  12. }
复制代码


评分

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

查看全部评分

回复

使用道具 举报

ID:395819 发表于 2018-10-23 23:54 | 显示全部楼层
我是新人,发的这程序是完全本人原创。
代码很短,却是完全实现LED渐亮渐灭的流水循环。
可惜没人回复,是什么原因呢?
回复

使用道具 举报

ID:328014 发表于 2018-10-24 00:14 | 显示全部楼层
确实代码很短,这里是analogRead函数的介绍:https://www.arduino.cc/reference ... log-io/analogwrite/
回复

使用道具 举报

ID:343850 发表于 2018-11-22 00:22 来自手机 | 显示全部楼层
好东西,必须支持
回复

使用道具 举报

ID:712979 发表于 2020-3-21 17:57 | 显示全部楼层
我按照你的代码,没有结果。 而且你的代码只有六个灯,为什么接线接了12个灯?
回复

使用道具 举报

ID:35955 发表于 2020-3-23 15:21 | 显示全部楼层
看了一下,这个连线是有些乱,应该是连6个灯就可以了,其实要实现流水灯,直接用数字控制就行了,由于视觉暂留现象和余辉效应,没必要用PWM作出渐亮渐灭的效果,快了现象是一样的,高低电平直接控制亮灭不香么
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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