项目19 流 水 灯 LED是发光二极管的简称,流水灯就是多个LED按顺序点 亮,反复循环。本项目设计8个指示灯,也可更多个,可随意设计。 项目意义就是控制多个发光二极管按顺序点亮,学习多个端口 编程控制技术。控制多个LED指示灯是控制常用技术,也是学 习控制技术的入门项目。该项目的主要知识点就是怎样对CPU 的多个输入输出端口进行编程控制。 Pbrzw.indd 39 2024/9/14 14:54:19 Python 编程入门(下) 任务19.1 流水灯硬件拼装 如何实现LED 流水灯,只是在单个LED 灯的基础上增加到8 个LED 灯, 利用Arduino 主板上的8 个引脚,每一个引脚控制一个LED。 本项目使用引脚2~9,首先进行8 个指示灯硬件设计。 1 . 流水灯CAD 原理图设计 打开CAD 软件,在主界面中分别可放置ATMEGA328P-PN 、8 个LED 灯、+5V 电源、GND 各器件。器件放置完后,再放置导线,保存文件,命 名为“流水灯”,设计后的电路图如图19-1 所示。 图19-1 流水灯电路图 本项目使用ATMEGA328P-PN 芯片,主板中标注的2~9 对应芯片的 PD2~PD7、PB0~PB1,由于部分连线较长,软件采用放置网络端口的方法 解决这一问题。放置方法如下。一是采用主菜单,二是使用工具条。使用主 菜单时,选择“放置”→“网络端口”命令,在选择项目中可分别放置“输 40 Pbrzw.indd 40 2024/9/14 14:54:20 入”“输出”“双向”3 种端口,这就要根据电路功能选择放置端口类型。对 于控制指示灯亮暗而言,CPU 就为“输出”端,另外一端为“输入”端, 如图19-1 所示。注意:网络端口标号要标注一致。相同网络的名字相同。 2. 硬件组装调试 设计好原理图后,一般要同时设计好印制电路板,也叫PCB,做PCB 有专门的厂家,价格较贵,一般用多功能面包板替代,准备好需要的器件, 就可在面包板上连接电路。 (1)所需电子元件。 除主板+ 面包板外,还需8 只LED 灯,若干彩色面包板上的连接线,8 只220 . 电阻,其规格数量和外形如表19-1 所示。 表19-1 器件规格、数量和外形 器件规格数量外形 彩色连接线—若干 LED 5mm 8 电阻器220Ω8 (2)硬件连接。 在项目的硬件基础上,再加7 个发光二极管和7 个电阻,用线连接好。 数据口线为2~9,一共8 个端口。注意:绿色线为数字口,蓝色线为模拟 口,红色线为电源(VCC),黑色线为GND,白色线可随意搭配,使用面包 板上其他孔也可以,只要元件和线的连接顺序与原理图保持一致即可。确保 LED 连接正确,LED 长脚为+,即VCC;短脚为–,即GND。完成连接后, 给 Arduino 接上USB 数据线并供电,准备下载程序。 (3)硬件调试。 制作好电路后,要对电路进行检查,一般用电压注入法,用一根导线将 2~9 一共8 个端口连接到电源负极(地),若此时发光二极管亮,说明硬件 没有问题。 Pbrzw.indd 41 41 2024/9/14 14:54:20 42 Python编程入门(下) 任务19.2 LED 流水灯编程控制 设计好电路图和用电子元器件制作好电路后,测试也没有问题,下一步 就进行编程控制,在编程之前要对指令进行了解。 1 . 指令 本次任务练习对多个引脚的数字量控制,没有新增指令,对引脚进行写 入数字量(0 或1)操作,使用write_digital()指令,延时指令以及初始化 操作相关指令在之前的项目中均有学习。 2 . 代码编写 主板卡上的引脚0~13 初始状态为低电平输出(0),在设计外接控制电 路时有两种设计方法:①一般设计为低电平有效(亮),与初始一致,这样 初始上电后指示灯就亮。②有些特殊电路需要设计为上电后不动作,这时外 电路要设计为高电平有效。 本项目的电路是第①种设计,为了观察到指示灯点亮过程,首先对8 个 控制引脚初始化(置1),让指示灯全部熄灭,以便后续观察运行结果。需 要注意的是,这种初始化过程会出现一上电后LED 灯闪动一下,若是控制 电机,一上电后电机会振动一下,这是不允许的。 按照电路设计,使用引脚2~9 进行控制。为方便标记,在初始化时对 各引脚分别命名为D2,D3,…,D9,单向顺序点亮即按照D2,D3,…, D9 的顺序点亮。 初始化完成后,主循环内首先编写单个LED 灯闪烁(引脚2),测试成功, 再复制引脚2 控制代码,并修改引脚编号,完成全部代码编写,如图19-2 所示。 逐行检查代码,连接Arduino 主板,单击“运行”按钮,8 个LED 灯按 顺序点亮,并循环执行,直到单击“停止”按钮结束循环。 Pbrzw.indd 42 2024/9/14 14:54:20 项目19 流水灯 43 图19-2 代码编写 3 . 流水灯程序调试 程序测试不成功会有很多原因,如语法错误、操作不当、电路错误等, 下面介绍几种可能的测试不成功的情况。 (1)程序上传失败。即可能同时打开了多个程序,并存在重复通信的情 况,需关闭其他程序,再次连接需测试的程序。 (2)程序上传成功后,没有达到预定效果。检查主板数字标号或程序数 字引脚设置是否重复或错误。本程序是用主板上的标号2~9,程序数字引脚 号也要从2~9。 Pbrzw.indd 43 2024/9/14 14:54:20 Python 编程入门(下) 任务19.3 扩展阅读:LED 灯带 LED 灯带是指把LED 组装在带状的FPC(柔性线路板)或PCB 硬板上, 因其产品形状像一条带子而得名。因为其使用寿命长(一般寿命在8~10 万 小时),又非常节能和绿色环保而逐渐在各种装饰行业中崭露头角。 1 . 分类 LED 灯带常规分为柔性LED 灯带和LED 硬灯条两种,一般也包含用线 材连接线路板上的LED 老式灯带,如扁三线5.3W/m、扁四线6.58W/m、扁 五线8.65W/m 灯带等。 (1)柔性LED 灯带是采用FPC 做组装线路板,用贴片LED 进行组装, 使产品的厚度仅为0.1cm,不占空间;普遍规格有30cm 长18 颗LED、25 颗LED 以及50cm 长15 颗LED、25 颗LED、30 颗LED 等,还有60cm、 80cm 等不同的规格,并且可以随意剪断,也可以任意延长而发光不受影响。 而FPC 材质柔软,可以任意弯曲、折叠、卷绕,可在三维空间随意移动及 伸缩而不会折断,适合于不规则和狭小的地方使用,也因其可以任意弯曲和 卷绕,适合在广告装饰中任意组合各种图案。 (2)LED 硬灯条是用PCB 硬板做组装线路板,LED 有用贴片LED 进 行组装的,也有用直插LED 进行组装的,视需要不同而采用不同的元件。 硬灯条的优点是比较容易固定,加工和安装都比较方便;缺点是不能随意弯 曲,不适合不规则的地方。硬灯条用贴片LED 的有18 颗LED、25 颗LED、 30 颗LED、36 颗LED、50 颗LED 等多种规格;用直插LED 的有18 颗、 25 颗、36 颗、58 颗等不同规格,有正面的也有侧面的,侧面发光的又叫作 长城灯条。 2 . 鉴别质量方式 44 Pbrzw.indd 44 LED 灯带市场良莠不齐,正规厂家产品和“山寨”厂家产品价格差别 2024/9/14 14:54:20 很大。如果从专业技术上来鉴别LED 灯带的质量,恐怕很多人都不具备这 个能力。主要可从以下几方面来鉴别LED 灯带质量。 (1)看焊点。正规的LED 灯带生产商生产的LED 灯带是采用SMT 贴 片工艺,用锡膏和回流焊生产的。因此,LED 灯带上的焊点比较光滑而且 焊锡量不会多,焊点呈圆弧状从FPC 焊盘处往LED 电极处延伸。 (2)看FPC 质量。FPC 分敷铜和压延铜两种,敷铜板的铜箔是凸出来 的,细看的话能从焊盘与FPC 的连接处看出来。而压延铜是密切和FPC 连 为一体的,可以任意弯折而不会出现焊盘脱落现象。敷铜板如果弯折过多就 会出现焊盘脱落,维修时温度过高也会造成焊盘脱落。 (3)看LED 灯带表面的清洁度。采用SMT 工艺生产的LED 灯带,其 表面的清洁度非常好,看不到什么杂质和污渍。采用手焊工艺生产的“山寨 版”LED 灯带,其表面不管如何清洗,都会残留污渍和清洗的痕迹。 (4)看包装。正规的LED 灯带会采用防静电卷料盘包装,5m 一卷或 者是10m 一卷,包装外面再采用防静电防潮包装袋密封。“山寨版”的LED 灯带采用回收卷料盘,没有防静电防潮包装袋,仔细看卷料盘能看出外表有 清除标签时留下的痕迹和划痕。 (5)看标签。正规的LED 灯带包装袋和卷料盘上面都会有印刷标签, 不是打印标签。 (6)看附件。正规的LED 灯带会在包装箱里附带使用说明和灯带规格 书,同时还会配备LED 灯带连接器或者是卡座;而“山寨版”的LED 灯带 包装箱里则没有这些附件,因为这些厂家希望节省成本。 任务19.4 总结及评价 自主评价式地展示,说一说制作单个LED 灯闪动的全过程,包括介绍 所用每个电子元器件的功能,电子CAD 使用方法和步骤,每条指令的作用 和使用方法,最终展示自己制作的流水灯作品。 Pbrzw.indd 45 45 2024/9/14 14:54:20 46 Python编程入门(下) (1)集体讨论 ①若输出端口高电平有效(亮)电路如何修改?提示:最好加一个反相 器或三极管驱动。 ②若输出端口高电平有效(亮)程序如何修改? (2)思考与练习 ①当硬件与程序引脚号不一致时,在电子CAD 中将电路修改完成。 ②自己设计一种花样,编写程序并调试成功。 练习题程序参考:先读懂程序,再运行程序,再修改程序。 Pbrzw.indd 46 2024/9/14 14:54:21 项目19 流水灯 47 Pbrzw.indd 47 2024/9/14 14:54:21 48 Python编程入门(下) (3)项目19 已完成,在表19-2 中画☆,最多画3 个☆。 表19-2 项目19 评价表 评价描述评价结果 会使用电子CAD 完成本次项目电路设计和绘制 能编写流水灯LED 并测试成功 能说出端口高电平有效和低电平有效在控制上的不同 能自己设计出其他LED 点亮方式 Pbrzw.indd 48 2024/9/14 14:54:21