目录
一、功能介绍
ESP32的 IO 口主要是用来连接外部传感器、执行器等相关外设的。 IO 口基本操作,主要包括数字输入、数字输出、模拟输入、模拟输出。
这里需要注意的是,输入和输出是相对主控板来说的:
当信号是由主控板向外设发送时,相应的外设就是主控板的输出设备;
当信号是由外设向主控板发送时,也就是主控板去读取外设的信号时,相应的外设就是主控板的输入设备。
二、实列操作
2.1数字输出
数字输出或数字量输出,设备是生活中最常见的设备,即只有 2 中情况:有或无、开或关、1 或 0.。因为ESP32这个板子中22号IO口串联了一个LED灯,我们可以通过程序来控制22号IO口的输出。程序非常简单,如下:
void setup()
{
Serial.begin(115200);//设置波特率为115200;
Serial.println();
pinMode(22, OUTPUT);//定义22号IO口的模式为输出模式
digitalWrite(22, LOW);//定义这个引脚为低电平,低电平的情况下LED会发光;
void loop()
{
delay(0);
digitalWrite(22, 1 ^ digitalRead(22));//这是一个延时函数,最好时间改为0,要不灯会一直闪烁。
}
将上面的程序编译并下载到ESP32里面,LED灯就会亮了。
2.2数据输入
其实验证这个功能也非常的简单,我们仍然以22IO口为例,这个端口如果输入高电平,LED灯就可以亮,反之如果输入低电平,灯就不会亮,这样就可以轻松实现IO口输入的验证了。
但是这里面存在一个问题,就是如何将高电平或者低电平添加到IO口呢?实际上,解决方法也很简单,我们这需要两根杜邦线,连接在ESP32的3v、G(VCC、GND)。这样这两根线不就成为高低电平了吗?是不是很巧妙。
IO口基本使用方式如下:
使用pinMode(pin, mode)来设置GPIO口工作模式,mode可选比较多INPUT、OUTPUT、INPUT_PULLUP、INPUT_PULLDOWN模式(输入、输出、上拉输入、下拉输入,另外还有开漏等模式)
使用digitalWrite(pin, value)来设置输出状态,value可选值为HIGH或LOW,即1和0;
使用digitalRead(pin)来读取GPIO口电平,返回值为HIGH或LOW,即1和0;