在IOT Kit开发板上提供了一些基础的外设及传感器,本篇通过驱动按键、LED灯、继电器、光敏电阻和电机来学习ESP8266的IO口功能,即数字输入、数字输出、模拟输入和PWM模拟输出功能。
1. 数字IO
Arduino for ESP8266可以使用Arduino操作IO口的方式,即使用pinMode、digitalRead和digitalWrite函数进行操作:
- 使用pinMode(pin, mode)来设置GPIO口工作模式,pin取值范围0 ~ 16,mode可选值见下文;
- 使用digitalRead(pin)来读取GPIO口电平,返回值为HIGH或LOW,即1和0;
- 使用digitalWrite(pin, value)来设置输出状态,value可选值为HIGH或LOW,即1和0;
- 数字引脚0-15可设置为INPUT、OUTPUT、INPUT_PULLUP模式(输入、输出、上拉输入);数字引脚16可设置为INPUT、OUTPUT、INPUT_PULLDOWN_16模式(输入、输出、下拉输入);启动时,这些引脚默认配置为INPUT模式;
- 引脚还可以提供其他功能,例如串口、I2C、SPI,这些函数通常由相应的库配置。
在IOT Kit开发板上,按键一端连接GPIO16引脚,另一端通过电阻连接到3.3V电源,配置按键下拉输入模式,则按键按下输入高,按键抬起输入低。
char keyCheck(void)
{
static char key_up=1;//按键松开
if(key_up&&(digitalRead(Key_Pin)==HIGH))
{
delay(10);//去抖动
key_up=0;
if(digitalRead(Key_Pin)==HIGH)return 1;
}else if(digitalRead(Key_Pin)==LOW)key_up=1;
return 0;// 无按键按下
}
继电器连接GPIO15,通过下图可知,输出高电平继电器开,输出低电平继电器关。ESP8266模块上的LED灯连接GPIO2,输出高电平关闭,输出低电平打开。
继电器电路图
if(keyCheck()==1)
{
key_sta = !key_sta;
digitalWrite(Relay_Pin, key_sta);
digitalWrite(Led_Pin, !key_sta);
}
2. 模拟IO
ESP8266 有一个可供用户使用的 ADC 通道。它可用于读取 ADC 引脚上的电压,或读取模块电源电压 (VCC)。要读取施加到 ADC 引脚的外部电压,使用analogRead(A0),电压量程为0 ~ 1.0V,ADC值范围为0 ~ 1023。
在IOT Kit开发板上,光敏电阻通过分压电阻连接到ADC引脚。当光线亮时,光敏电阻阻值减小,分压电压小,ADC值小,反之ADC值变大。
oled.print("ADC:");
oled.print(analogRead(A0)); //A0引脚ADC值 范围0~1023
GPIO0 ~ 16支持PWM输出,具体说明如下:
- 使用analogWrite(pin, value)来对pin上输出PWM信号,value表示高电平保持时间,默认下value取值为0 ~ 1023,当value为0时即停止PWM输出;
- 使用analogWriteRange(new_range)修改PWM value可写范围,默认range为1023;
- 使用analogWriteFreq(new_frequency)修改PWM频率,new_frequency取值范围100 ~ 40000Hz,默认为1000Hz;
IOT Kit开发板上的电机驱动芯片为L9110S,当两个控制引脚INA和INB同时高电平或低电平时,电机停止,当两个引脚一高一低时可对电机进行正反转控制。
电机驱动电路
//加速正转
analogWrite(MotorB_Pin, 0);
for(int i=10;i<30;i++)
{
analogWrite(MotorA_Pin, i);
delay(10);
}
//减速反转
analogWrite(MotorA_Pin, 0);
for(int i=30;i>10;i--)
{
analogWrite(MotorB_Pin, i);
delay(10);
}
3. 程序下载验证
将开发板连接电脑进行程序下载,上传完成后,OLED显示ADC值,通过遮挡光敏电阻可看到数字改变。通过按键可控制继电器及LED指示灯,电机以不同速度正反转。
实现现象
-
传感器
+关注
关注
2547文章
50522浏览量
751392 -
PWM
+关注
关注
114文章
5124浏览量
213287 -
开发板
+关注
关注
25文章
4920浏览量
97114 -
IO口
+关注
关注
3文章
169浏览量
23977 -
ESP8266
+关注
关注
50文章
962浏览量
44779
发布评论请先 登录
相关推荐
评论