在之前我们控制LED的时候,都是一个LED就需要一个对应的引脚。但是在我们板子引脚有限的情况下,这样使用就很浪费了,我们这里加上一个74HC595模块来实现只用3个IO引脚来控制8个LED。74HC595实际上就是一个串行输入并行输出的位移缓存器,因此它能使用少量IO来控制多个输出,这在引脚有限的情况下要控制很多LED是非常有用的。
电脑,windows系统
ESP8266开发板
micro-usb线
LED灯红色4个,黄色4个
220Ω 电阻8个
74HC595模块一个
面包板一个+若干跳线
1、打开零知实验室软件开发工具,然后新建项目,输入以下代码:
/**
* 文件: 74HC595-8led.ino by 零知实验室([url=http://www.lingzhilab.com]www.lingzhilab.com[/url])
* -- 零知开源,让电子制作变得更简单! --
* 时间: 2019/05/31 13:39
* 说明: 使用74HC595 模块控制8个led,显示从0-255的二进制编码,
**/
int data = D1;//74HC595的14脚 数据输入引脚SI
int clockC = D2;//74hc595的11脚 时钟线 SCK
int latch = D4;//74hc595的12脚 输出存储器锁存线RCK
void setup() {
pinMode(data, OUTPUT);
pinMode(clockC, OUTPUT);
pinMode(latch, OUTPUT);
Serial.begin(9600);
}
void loop() {
for(int i = 0; i < 256; i++)//一共8位,可以显示0-255的二进制编码
{
Serial.println(i);
digitalWrite(latch, LOW);//
shiftOut(data, clockC, MSBFIRST, ~i);//串行数据输出,高位在先
digitalWrite(latch, HIGH);//锁存
delay(500);
}
}
2、按照之前的方式先【验证】,然后【上传】到开发板中。
上面步骤成功完成后,我们就可以看到预期的结果了,如下: