使用Arduino控制LED实现红绿灯效果

文章目录

  • 前言
  • 一、了解LED
  • 二、Blink(控制LED亮灭)
  • 1.连接电路图
  • 1.1.所需硬件
  • 1.2.电路图及原理图
  • 2.代码
  • 三、实现简单的红绿灯效果
  • 1.分析
  • 2.连接电路图
  • 2.1.所需硬件
  • 2.2.电路图及原理图
  • 3.代码
  • 总结

  • 前言

    点亮和熄灭LED是arduino的一项基础技能,本文将简单介绍其具体操作及简易红绿灯的制作。


    一、了解LED

    LED(light-emitting diode),中午名为发光二极管,是一种常用的发光器件,通过电子与空穴复合释放能量发光,可高效地将电能转化为光能。
    发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。
    在使用LED时需分清它的正负极。一般LED较长一端引脚为正极,较短一端为负极。
    可参考以下两张图片:
    LED原理图
    发光二极管

    二、Blink(控制LED亮灭)

    1.连接电路图

    1.1.所需硬件

    arduino UNO × 1
    发光二极管 × 1
    220Ω电阻 × 1
    杜邦线 若干
    数据线 × 1
    面包板 × 1

    1.2.电路图及原理图

    电路图
    电路原理图

    2.代码

    Blink的代码在arduino的示例中。中文版打开方式:

    文件 > 示例 > 01.Basics > Blink

    但使用arduino自带的代码时需注意:代码中的LED_BUILTIN指的是arduino开发板上的L(LED缩写),如果连接好电路后直接按照它提供的代码运行会出现L正常闪烁而面包板上的LED没反应,所以需要自己把代码中的LED_BUILTIN全部改为9(9号引脚)。
    当然你也可以从我这里直接复制。代码如下:

    // 当您按下重置或给电路板通电时,设置功能运行一次
    void setup() {
    	// 将数字引脚9初始化为输出
        pinMode(9, OUTPUT);
    }
    
    // 循环函数永远重复运行
    void loop() {
      digitalWrite(9, HIGH);  			// 通过向9号引脚输出高电平打开LED
      delay(1000);                      // 延迟一秒钟
      digitalWrite(9, LOW);   			// 通过使电压为低来关闭LED
      delay(1000);                      // 延迟一秒钟
    }
    

    三、实现简单的红绿灯效果

    1.分析

    红绿灯一般由三种颜色(绿色、黄色和红色)的信号灯组成,一般红灯亮起时间最长,绿色和黄色依次次之。为了省事,我们将红灯时间定为10秒,绿灯为8秒,黄灯为5秒,从红灯开始,依次亮起。

    2.连接电路图

    2.1.所需硬件

    arduino UNO × 1
    发光二极管(绿色) × 1
    发光二极管(黄色) × 1
    发光二极管(红色) × 1
    220Ω电阻 × 3
    杜邦线 若干
    数据线 × 1
    面包板 × 1

    2.2.电路图及原理图

    流水灯/j交通信号灯电路图
    流水灯/交通信号灯电路原理图

    3.代码

    int red=10,green=9,yellow=8;	//定义red为10号引脚,green为9号引脚,yellow为8号引脚
    // 当您按下重置或给电路板通电时,设置功能运行一次
    void setup()
    {
      pinMode(red, OUTPUT);
      pinMode(green, OUTPUT);
      pinMode(yellow, OUTPUT);
    }
    
    // 循环函数永远重复运行
    void loop()
    {
      digitalWrite(red, HIGH);		// 输出高电平打开红色LED
      delay(10000);					// 延迟十秒钟
      digitalWrite(red, LOW);		// 通过使电压为低来关闭红色LED
      digitalWrite(green, HIGH);	// 输出高电平打开绿色LED
      delay(8000);					// 延迟八秒钟
      digitalWrite(green, LOW);		// 通过使电压为低来关闭绿色LED
      digitalWrite(yellow, HIGH);	// 输出高电平打开黄色LED
      delay(5000);					// 延迟五秒钟
      digitalWrite(yellow, LOW);	// 通过使电压为低来关闭黄色LED
    }
    

    总结

    以上就是今天要讲的内容,本文仅仅简单介绍了如何控制LED的亮灭,以及简易交通信号灯的实现,而通过改变信号灯的延迟时间还可以实现流水灯的效果,各位可以自行往下探索。
    另:本人是初学者。如有不足,望各路大神指正!

    物联沃分享整理
    物联沃-IOTWORD物联网 » 使用Arduino控制LED实现红绿灯效果

    发表评论