目录
前言
一、新建工程
二、项目函数介绍
1.PWM函数
2.AD函数
三、代码编写
四、编译、烧录、运行
结束语
前言
PWM是每一位单片机开发者重视的项目,在无论是开发呼吸灯、控制电机都必不可少,现在带大家接触PWM了解一下它。关于PWM的理论知识,个人觉得还没有百度的解释清晰。在这里为大家找好关于百度百科的链接PWM技术_百度百科 (baidu.com)
AD(模拟量转数字量),也是一个重点项目,在电压检测中不可或缺;也是多数人在项目开发中运用较多的一个。
一、新建工程
首先打开Arduino IDE,点击 文件——> 点击新建,就会生成一个新的工程模板了。 (还可以点任务栏中“折了一角的书页”快速新建)。
然后给项目重命名,然后再保存。
这样一个新的工程就建好了。
二、项目函数介绍
1. PWM函数
(1)analogWrite() 函数
功能 | 使用analogWrite() 函数实现PWM输出功能。 |
作用 | 输出PWM波 |
analogWrite(pin,value)
参数 | 说明 |
pin | 指定要输出PWM波的引脚 |
value | 指定是PWM的脉冲宽度,范围为0~255。 |
2. AD函数
(1)analogRead() 函数
功能 | 模拟输入功能 |
作用 | 将外部输入的模拟信号转换为芯片运算时可以识别的数字信号,从而实现读入模拟值的功能。 |
analogRead(pin)
参数 | 说明 |
pin | 指定要读取模拟值的引脚,被指定的引脚必须是模拟输入引脚。 |
返回值 | 模拟输入功能有10位精度,即可以将0~5V的电压信号转换为0~1023的整数形式表示。 |
注:在analogWrite() 和analogRead() 函数内部,已经完成了引脚的初始化,因此不用在Setup() 函数中进行初始化操作。
三、代码编写
注:我手上的ESP8266开发板的AD脚只有一个那就是A0,所以此块开发板的默认AD检测引脚为A0脚。
PWM:我在这里用板子上的资源弄得呼吸灯循序:灭 ——> 亮 ——> 灭循环,并通过串口打印PWM设定值。
示例代码如下:
int i,j;
void setup() {
pinMode(2, OUTPUT);
Serial.begin(115200);
}
void loop(){
for(j=255;j>1;j=j-5) //255全部高电平(全亮),0全部低电平(全灭)
{
analogWrite(2,j);
delay(100);
Serial.print("j=");
Serial.println(j);
}
for(i=0;i<255;i=i+5)
{
analogWrite(2,i);
delay(100);
Serial.print("i=");
Serial.println(i);
}
}
AD:我用的是循迹模块 避障模块 TRCT5000红外漫反射传感器带模拟量输出口,实物如下图所示:
用A0口检测此模块AO口输出的模拟量,并通过串口打印在电脑上。
示例代码如下:
void setup()
{
// 初始化串口
Serial.begin(115200);
}
void loop()
{
// 读出当前光线强度,并输出到串口显示
int sensorValue = analogRead(0);
Serial.println(sensorValue);
delay(1000);
}
四、编译、烧录、运行
在我前一篇博文就介绍了如何编译、烧录,这里就不再过多赘述了,还望谅解!
以下就是项目的运行结果:
PWM:
AD:
模块默认输出高电平,当有东西遮挡时就输出低电平。
结束语
关于此次基于Arduino IDE开发的ESP8266(ESP-12F)项目5 ——(高级输入输出)PWM、AD转换项目的介绍就讲到这里了,如果什么问题请再评论区留言。
接下来会陆陆续续发布一些其他的教程,敬请期待!感谢大家的支持!如有觉得这篇文章对你有所帮助的,还请点赞、收藏吧!