本文主要是介绍物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MENU
- 硬件电路设计
- 软件程序设计
- 正常流水LED灯
- 反复流水LED灯
- 移动流水LED灯
硬件电路设计
材料名称 数量 直插式 LED 1kΩ 电阻 杜邦线(跳线) 若干 面包板 1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。
当然也可以选择只使用一个电阻。
软件程序设计
正常流水LED灯
因为要用到多个GPIO引脚,所以最好把所有的GPIO引脚放在一个数组中,然后遍历数组。
// 定义GPIO引脚数组 int pin_list[5] = { 13, 12, 14, 27, 26 }; // 获取数组长度 int size = sizeof(pin_list) / sizeof(pin_list[0]);void setup() {// 设定GPIO引脚为输出模式for (int i = 0; i < size; i++) pinMode(pin_list[i], OUTPUT); }void loop() {// 将所有引脚设置为高电平for (int i = 0; i < size; i++) {digitalWrite(pin_list[i], HIGH);delay(50);}// 将所有引脚设置为低电平for (int i = size - 1; i >= 0; i--) {digitalWrite(pin_list[i], LOW);delay(50);} }
反复流水LED灯
微调程序,比如之前是依次改变流水灯的状态,现在修改为让流水灯往复亮。
// 定义GPIO引脚数组 int pin_list[5] = { 13, 12, 14, 27, 26 }; // 获取数组长度 int size = sizeof(pin_list) / sizeof(pin_list[0]);void setup() {// 设定GPIO引脚为输出模式for (int i = 0; i < size; i++) pinMode(pin_list[i], OUTPUT); }void loop() {// 将所有引脚设置为高电平for (int i = 0; i < size; i++) {digitalWrite(pin_list[i], HIGH);delay(50);}// 将所有引脚设置为低电平for (int i = size - 1; i >= 0; i--) {digitalWrite(pin_list[i], LOW);delay(50);} }
移动流水LED灯
实现LED平移的效果,每次在点亮这颗LED的时候,同时把上一颗LED的状态改为低电平,并且当索引值为0时,让最后一颗LED状态改为低电平。
// 定义GPIO引脚数组 int pin_list[5] = { 13, 12, 14, 27, 26 }; // 获取数组长度 int size = sizeof(pin_list) / sizeof(pin_list[0]);void setup() {// 设定GPIO引脚为输出模式for (int i = 0; i < size; i++) pinMode(pin_list[i], OUTPUT); }void loop() {// 将所有引脚设置为高电平for (int i = 0; i < size; i++) {digitalWrite(pin_list[i], HIGH);if (i > 0) {digitalWrite(pin_list[i - 1], LOW);} else {digitalWrite(pin_list[size - 1], LOW);}delay(250);} }
这篇关于物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!