7段数码管DIY,时钟、温度、湿度都能显示,太齐全了!
带有Arduino的数字时钟,使用移位寄存器(74HC595),实时时钟,温度和湿度传感器以及7段数码管显示。
必须元器件
硬件部分:
Arduino UNO 和 Genuino UNO *1
实时时钟(RTC)*1
DHT11温湿度传感器(4针)*1
德州仪器( TI )移位寄存器 - 串行到并行 *2
共阳极LED显示屏(4 位数字 x 7 段数码管)*1
150欧电阻*8
一、简介
带有RTC(实时时钟)的数字时钟项目,它使用4位数字和7段数码管显示,包括温度和湿度特性显示。
在显示控制中使用了Arduino Uno R3和74HC595的02 IC(带输出锁存器的8位移位寄存器)。移位寄存器的使用对于保存Arduino的输出端口非常重要,并且仅需Arduino的3个输出即可控制显示。
有两个突破:一个用于温度(?C-摄氏/°F-华氏度)和湿度(%)的传感器,另一个用于RTC(实时时钟)。组装非常简单,但是必须注意跳线的连接。
时间显示
温度显示
湿度显示
二、材料清单
1 x DS1307(实时时钟)
1 x DHT11(温度和湿度传感器)
2 x 74HC595(带输出锁存器的8位移位寄存器-3状态)
8个150欧姆的电阻器(棕色-绿色-棕色)
1 x FYQ-5642BX(共阳极LED显示屏为04位数字和07段或等效的数字,但请注意引脚号)
1个Arduino Uno
1 x面包板
1 x跳线套件
实时时钟
Led显示屏
Arduino Uno R3
DHT11(温度和湿度传感器)
1 x FYQ-5642BX(共阳极LED显示屏为04位数字和07段
三、组装
零部件的组装非常简单,但是由于电线连接,您需要仔细遵循原理图。此项目中有2个移位寄存器:一个用于控制显示的每个部分,另一个用于控制显示的内容。
重要提示:如果要使用其他类型的LED显示屏,则需要检查其数据表以更新74HC595的输出接线(跳线),并且还必须更新Arduino软件的相应逻辑。
四、代码
以下二进制数据表示LED显示屏的数字(0至9)与段(A至G)之间的关系:
为了在LED显示屏上依次显示时间,温度和湿度的所有数据,我使用了带有功能millis和while的“计时器” 。在这种情况下,每条信息的03秒钟后将依次在显示屏上显示每条信息,十分简单高效。
您可以通过几种不同的方式应用此函数millis来管理程序运行期间的时间。在许多情况下,您可以使用它代替某些计时器。
另一个有用的功能是digitalWrite 可以简化将数据写入移位寄存器的过程。
digitalWrite的详细介绍:
描述:
将HIGH或LOW值写入数字引脚。
如果将引脚配置为OUTPUTwith pinMode,则其电压将设置为相应的值:5V(在3.3V板上为3.3V)HIGH,0V(接地)LOW。
如果该引脚配置为INPUT,digitalWrite将启用(HIGH)或禁用(LOW)输入引脚上的内部上拉电阻。建议将设置为pinMode,INPUT_PULLUP以启用内部上拉电阻。
如果您未将设置pinMode为OUTPUT,而是将LED连接到引脚,则在调用时digitalWrite(HIGH),LED可能会变暗。如果未明确设置pinMode,digitalWrite将启用内部上拉电阻,其作用类似于大限流电阻。
语法:
digitalWrite(pin, value)
参数:
pin:Arduino引脚号。
value:HIGH或LOW。
返回:
无返回
范例程式码:
该代码使数字引脚13 an OUTPUT变为HIGH与LOW在1秒之间交替切换。
pinMode( 13, OUTPUT); // sets the digital pin 13 as output
}
voidloop( ) {
digitalWrite( 13, HIGH); // sets the digital pin 13 on
delay( 1000); // waits for a second
digitalWrite( 13, LOW); // sets the digital pin 13 off
delay( 1000); // waits for a second
}
注意和警告:
模拟输入引脚可用作数字引脚,称为A0,A1等。唯一的例外是Arduino Nano,Pro Mini和Mini的A6和A7引脚,它们只能用作模拟输入。
五、RTC模块的第一次调整
1.要调整RTC模块的时间,请加载并运行程序“ SetTime ”(您可以在Arduino IDE的库/ DS1307RTC的示例中找到它)。
2.重新加载并再次运行“数字时钟”程序。
按照此步骤,由于已安装RTC模块的电池组,因此RTC模块将保持正确的时间,并且您无需在每次使用时都重新编译“ Digital Clock”程序。
免责声明:本文由作者原创,文章内容系作者个人观点,电子发烧友网转载仅作为传达一种不同的观点,不代表电子发烧友网对该观点的赞同或支持,如有异议,欢迎联系电子发烧友网。
聚合阅读