GPIO 操作及传感器驱动
GPIO 操作
示例驱动器件:LED、继电器、步进电机
GPIO 类驱动指的是控制器 IO 口输出高低电平,如 TTL 电平,0V 为低,3.3V 为高,这类控制方式可以直接驱动功率较小的器件,如 LED,如果需要驱动功率较大的器件,需要外接三极管电路或是继电器,通过 IO 口控制电路通断实现间接的控制功率较大的器件。
ESP32GPIO 可参考如下:
ESP32 – GPIO 引脚参考大全 – 凌顺实验室 (lingshunlab.com)
注意有部分引脚不建议在项目中使用,如果使用可能会出现意想不到的错误,甚至损坏芯片。
为了便于使用,在开发板中将可用的引脚都进行引出
在 ARDUINO 中,首先需要配置使用的引脚号,以及输入输出方式
c
//配置引脚输入
pinMode(PIN_IO1, INPUT);
//配置引脚输出
pinMode(PIN_IO2,OUTPUT);
配置为输入方式后,可以读取 IO 电平高低,高为 1,低为 0
c
int s1;
s1 = digitalRead(PIN_IO1);
配置为输出方式后,可以配置 IO 电平,HIGH 为 3.3V,LOW 为 0V
c
//配置低电平输出
digitalWrite(PIN_IO2, LOW);
//配置高电平输出
digitalWrite(PIN_IO2, HIGH);
在ARDUINO 安装配置中,最后通过简单的例程实现了 LED 灯的闪烁,本节首先以相同的原理实现继电器通断的控制。
继电器原理
常见的继电器模块如下:继电器有属性,5VDC 意味着需要用 5V 的电源给继电器工作,而 10A 250VAC 则限制着继电器最大能接通的电压电流。
可以将继电器理解为一个开关,若 IN 输入信号为低,则 COM 端与 NC 端连接,若 IN 输入信号为高,则 COM 端与 NO 端连接。
在开发板上,用 IO33 控制继电器通断,当 IO 输出高电平,继电器导通,当 IO 输出低电平,继电器关断。接线方式如下:
继电器引脚 | 开发板引脚 | 说明 |
---|---|---|
IN | IO33 | 信号引脚 |
GND | GND | 地 |
VCC | 5V | 电源 |
继电器模块对应的驱动例程如下:
c
#define PIN_RELAY 33
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(PIN_RELAY, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(PIN_RELAY, HIGH); // 控制继电器关断
delay(1000); // wait for a second
digitalWrite(PIN_RELAY, LOW); // 控制继电器导通
delay(1000); // wait for a second
}