MENU
- 前言
- 原理
- GPIO引脚
- LED
- 硬件电路设计
- 软件设计
- 1、点亮一颗LED
- 2、闪烁的LED
前言
不论学习什么单片机,最简单的外设莫过于IO口的高低电平控制LED,本文介绍如何使用Arduino控制ESP32的GPIO输出。通过本文的学习,掌握一定的Arduino程序架构知识,为以后大型项目程序学习打下基础,增强信心。
原理
GPIO引脚
引脚又叫管脚,英文叫Pin,就是从集成电路(芯片以及一些电子元件)内部电路引出与外围电路的接线的接口。
在ESP32开发板上,可以把这些称为引脚,引脚是从ESP32芯片内部引出,可以看到每个引脚都标有自己独特的名字。其中有一类引脚叫GPIO引脚,负责输入/输出电压。开发板上D开头的引脚都是这种引脚,比如D2、D4、D15等等。
输入暂时不讲,这里先讲一下输出,简单来说,每个GPIO都可以输出高低电平。
电路上某点的电压(对公共参考点)或电位是高还是低。比如在逻辑电路中,高于某个数值的电位称其为高电位,或高电平,低于某个数值,为低电位或低电平。比如ESP32中,高电平的数值大于2.5V,低电平的数值小于0.5V,具体的数值最好通过测试研究来确定。
LED
LED(light-emitting diode)即发光二极管。它具有单向导电性,通过5mA左右电流即可发光,电流越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在3mA~20mA之间,通常会在LED管脚上串联一个电阻,目的就是限制通过发光二极管的电流不要太大,因此这些电阻又可以称为限流电阻。当发光二极管发光时,测量它两端电压约为1.7V,这个电压又叫做发光二极管的导通压降。
发光二极管正极又称阳极,负极又称阴极,电流只能从阳极流向阴极。直插式发光二极管长脚为阳极,短脚为阴极。
硬件电路设计
材料名称 数量 直插式 LED 1 1kΩ 电阻 1 杜邦线(跳线) 若干 面包板 1 LED的正极接开发板的D12引脚,并串联一个电阻,负极接GND。
一定要接电阻,不然会由于电流过大,烧坏LED。
软件设计
1、点亮一颗LED
如果想要点亮这颗LED,只需要先设定相关引脚为输出模式,然后给这个引脚赋值一个高电平即可。
// 设置LED引脚 int led_pin = 12; void setup() { // 设定引脚为输出模式 pinMode(led_pin, OUTPUT); // 点亮LED digitalWrite(led_pin, HIGH); } void loop() { }
通过IDE编写上述代码,然后运行,此时会看到电路中的LED灯被点亮。
2、闪烁的LED
已经成功点亮一颗LED,接下来,可以尝试一下稍微复杂一点的逻辑,比如让颗LED闪烁。
实现LED闪烁的原理很简单,就是在loop函数中使用延时函数delay。先设置高电平,延时X秒,再设置低电平,延时X秒,之后就不断循环该语句即可。
在之前的初识Arduino编程语言中,已经学习loop函数的用法,如果想要让灯泡一直闪烁,则需要在loop函数中不断改变LED状态。// 设置LED引脚 int led_pin = 12; void setup() { // 设定引脚为输出模式 pinMode(led_pin, OUTPUT); } void loop() { // 点亮LED digitalWrite(led_pin, HIGH); // 等待一段时间 delay(1000); // 关闭LED digitalWrite(led_pin, LOW); // 等待一段时间 delay(1000); }
运行程序,LED就闪烁了。