第04讲 交通灯实验

本讲为模拟交通灯的设计实验。
上面我们已经完成了单个小灯的控制实验,接下来我们就来做一个稍微复杂一点的交通灯实验,其实聪明的朋友们可以看出来这个实验就是将上面单个小灯的实验扩展成3 个颜色的小灯,就可以实现我们模拟交通灯的实验了。我们完成这个实验所需的元件除了Arduino 控制器和下载线还需要的硬件如下:
1. 红色M5 直插LED*1 
2. 黄色M5 直插LED*1
3. 绿色M5 直插LED*1
4. 220Ω电阻*3 
5. 面包板*1 
6. 面包板跳线*1 扎

准备好上述元件我们就可以开工了,我们可以按照上面小灯闪烁的实验举一反三,下面是我们提供参考的原理图,我们使用的分别是数字10、7、4、接口.
  


既然是交通灯模拟实验,红黄绿三色小灯闪烁时间就要模拟真实的交通灯,我们使用Arduino 的delay()函数来控制延时时间,相对于C 语言就要简单许多了。

实验程序如下:
int redled =10; //定义数字10接口
int yellowled =7; //定义数字7接口
int greenled =4; //定义数字4接口

void setup()
{
    pinMode(redled, OUTPUT);//定义红色小灯接口为输出接口
    pinMode(yellowled, OUTPUT); //定义黄色小灯接口为输出接口
    pinMode(greenled, OUTPUT); //定义绿色小灯接口为输出接口
}

void loop()
{
    digitalWrite(redled, HIGH);//点亮红色小灯

    delay(1000);//延时1 秒
    digitalWrite(redled, LOW); //熄灭红色小灯
    digitalWrite(yellowled, HIGH);//点亮黄色小灯

    delay(200);//延时0.2 秒
    digitalWrite(yellowled, LOW);//熄灭黄色小灯
    digitalWrite(greenled, HIGH);//点亮绿色小灯

    delay(1000);//延时1 秒
    digitalWrite(greenled, LOW);//熄灭绿色小灯
}
下载程序完成后就可以看到我们自己设计控制的交通灯了。


 


评论:
相关文章
ESP32 FreeRTOS 双核使用

ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。


理解 MSBFIRST(最高有效位)和 LSBFIRST(最低有效位)

在本文中,先解释 MSB(最高有效位)和 LSB(最低有效位)的概念,以及 MSBFIRST 和 LSBFIRST。然后展示了 MSBFIRST 和 LSBFIRST 的使用如何影响移位寄存器的输出。


Arduino 和 TB6612FNG 驱动直流电机

TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速与方向,输入电压在3V~12V,因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。


Arduino-ESP32 Preferences库使用详解

Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。


Arduino Serial 接收数字

在Arduino中,通过串行端口接收数字通常涉及使用Serial.read()、Serial.readString()、Serial.parseInt()等方法。