Arduino学习笔记⑤ 模拟IO实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以及analogWrite函数。
实验代码:
/**
* @Desc 可调呼吸灯
* @author 单片机菜鸟
* @Date 2016/12/8
* 注意:LED的一端接到5V,另外一端接到输出引脚,低电平亮
*
按键是高电平有效
*/
#define LED 9
void setup() { // put your setup code here, to run once:
//从亮到暗 每次亮度-5直到最暗 for(int fadeValue=255;fadeValue>=0;fadeValue-=5){
//输出PWM analogWrite(LED,fadeValue); //延时一下 delay(DELAY_TIME); } }
2.2 可调呼吸灯
实验介绍: 在固定呼吸灯基础上,通过读入的模拟电压大小(模拟输入我们采用一个电位器来分压)来调整频率,同时利用analogRead
}
void loop() { //从暗到亮,每次亮度值加5,直到最亮 for(int fadeValue = 0;fadeValue<=255;fadeValue+=5){ //输出PWM analogWrite(LED,fadeValue); //延时一下 int delaytime = analogRead(A0)/5;//读取电位器输出电压 用于延时 delay(delaytime); }
//从亮到暗 每次亮度-5直到最暗 for(int fadeValue=255;fadeValue>=0;fadeValue-=5){
//输出PWM analogWrite(LED,fadeValue); //延时一下 int delaytime = analogRead(A0)/5; delay(delaytime); } }
当然,上面电位器可以换成光敏电阻之类的,这样就可以考虑做一个晚上呼吸白天熄灭的呼吸灯。
3.总结
这一课,相对很简单,我们主要学习模拟IO口的使用。以后当我们遇到光敏电阻、热敏电阻、温度传感器、气体传感器之 类的可以产生模拟信号的,就应该想到模拟IO口了。
主要实现两个实验内容: 固定呼吸灯 可调呼吸灯
2.1 固定呼吸灯
实验介绍: 将LED连接到PWM引脚,主要利用模拟输出功能 analogWrite 函数输出电压,呼吸频率固定。
实验代码:
/**
* @Desc 固定呼吸灯
* @author 单片机菜鸟
* @Date 2016/12/8
* 注意:LED的一端接到5V,另外一端接到输出引脚,低电平亮
1.前言
还记得前几个我们都是在讲解数字IO,而其实我们生活中大多数信号都是模拟信号,如声音以及温度变化。在Arduino 中,常用0~5v的电压来表示模拟信号。
1.1 模拟输入功能
在Arduino,编号前带有“A”的引脚是模拟输入引脚,Arduino可以读取这些引脚上输入的模拟值,也就是可以读取引脚上输 入的电压大小。
模拟输入引脚带有ADC功能(ADC:Analog-to-Digital Converter 模数转换)。它可以将外部输入的模拟信号转换为芯片 运算时可以识别的数字信号,从而实现读取模拟值的功能。
使用AVR芯片的Arduino模拟输入功能有10位精度,意味着05V电压会转换成01023的整数形式表示。 模拟输入功能需要使用analogRead(pin)函数,其中pin是读取模拟值的引脚,被指定的键是高电平有效
*/
#define LED 9 #define DELAY_TIME 30 //延时时间
void setup() { // put your setup code here, to run once:
}
void loop() { //从暗到亮,每次亮度值加5,直到最亮 for(int fadeValue = 0;fadeValue<=255;fadeValue+=5){ //输出PWM analogWrite(LED,fadeValue); //延时一下 delay(DELAY_TIME); }
1.2 模拟输出功能
要使用analogWrite()函数来实现模拟输出功能。
注意:
该函数并不是输出真正意义上的模拟值,而是以一种特殊的方式来达到输出模拟值的效果,也就是我们经常听到 的“PWM”(脉冲宽度调制 Pulse Width Modulation)。
当使用analogWrite函数,指定引脚会通过高低电平的不断转换来输出一个周期固定(约490Hz)的方波,通过改变高低电 平在每个周期中所占比例(占空比),而得到近似输出不同电压的效果。
analogWrite(pin,value):参数pin为要输出的PWM波的引脚,参数value是PWM的脉冲宽度,范围为0~255。 大多数Arduino控制器的PWM引脚都会用“~”标识,可以查看一下自己的板子。常见几款板子PWM引脚为:
基础知识介绍好了,那么就开始接下来的实验了。
2.实验内容
实验代码:
/**
* @Desc 可调呼吸灯
* @author 单片机菜鸟
* @Date 2016/12/8
* 注意:LED的一端接到5V,另外一端接到输出引脚,低电平亮
*
按键是高电平有效
*/
#define LED 9
void setup() { // put your setup code here, to run once:
//从亮到暗 每次亮度-5直到最暗 for(int fadeValue=255;fadeValue>=0;fadeValue-=5){
//输出PWM analogWrite(LED,fadeValue); //延时一下 delay(DELAY_TIME); } }
2.2 可调呼吸灯
实验介绍: 在固定呼吸灯基础上,通过读入的模拟电压大小(模拟输入我们采用一个电位器来分压)来调整频率,同时利用analogRead
}
void loop() { //从暗到亮,每次亮度值加5,直到最亮 for(int fadeValue = 0;fadeValue<=255;fadeValue+=5){ //输出PWM analogWrite(LED,fadeValue); //延时一下 int delaytime = analogRead(A0)/5;//读取电位器输出电压 用于延时 delay(delaytime); }
//从亮到暗 每次亮度-5直到最暗 for(int fadeValue=255;fadeValue>=0;fadeValue-=5){
//输出PWM analogWrite(LED,fadeValue); //延时一下 int delaytime = analogRead(A0)/5; delay(delaytime); } }
当然,上面电位器可以换成光敏电阻之类的,这样就可以考虑做一个晚上呼吸白天熄灭的呼吸灯。
3.总结
这一课,相对很简单,我们主要学习模拟IO口的使用。以后当我们遇到光敏电阻、热敏电阻、温度传感器、气体传感器之 类的可以产生模拟信号的,就应该想到模拟IO口了。
主要实现两个实验内容: 固定呼吸灯 可调呼吸灯
2.1 固定呼吸灯
实验介绍: 将LED连接到PWM引脚,主要利用模拟输出功能 analogWrite 函数输出电压,呼吸频率固定。
实验代码:
/**
* @Desc 固定呼吸灯
* @author 单片机菜鸟
* @Date 2016/12/8
* 注意:LED的一端接到5V,另外一端接到输出引脚,低电平亮
1.前言
还记得前几个我们都是在讲解数字IO,而其实我们生活中大多数信号都是模拟信号,如声音以及温度变化。在Arduino 中,常用0~5v的电压来表示模拟信号。
1.1 模拟输入功能
在Arduino,编号前带有“A”的引脚是模拟输入引脚,Arduino可以读取这些引脚上输入的模拟值,也就是可以读取引脚上输 入的电压大小。
模拟输入引脚带有ADC功能(ADC:Analog-to-Digital Converter 模数转换)。它可以将外部输入的模拟信号转换为芯片 运算时可以识别的数字信号,从而实现读取模拟值的功能。
使用AVR芯片的Arduino模拟输入功能有10位精度,意味着05V电压会转换成01023的整数形式表示。 模拟输入功能需要使用analogRead(pin)函数,其中pin是读取模拟值的引脚,被指定的键是高电平有效
*/
#define LED 9 #define DELAY_TIME 30 //延时时间
void setup() { // put your setup code here, to run once:
}
void loop() { //从暗到亮,每次亮度值加5,直到最亮 for(int fadeValue = 0;fadeValue<=255;fadeValue+=5){ //输出PWM analogWrite(LED,fadeValue); //延时一下 delay(DELAY_TIME); }
1.2 模拟输出功能
要使用analogWrite()函数来实现模拟输出功能。
注意:
该函数并不是输出真正意义上的模拟值,而是以一种特殊的方式来达到输出模拟值的效果,也就是我们经常听到 的“PWM”(脉冲宽度调制 Pulse Width Modulation)。
当使用analogWrite函数,指定引脚会通过高低电平的不断转换来输出一个周期固定(约490Hz)的方波,通过改变高低电 平在每个周期中所占比例(占空比),而得到近似输出不同电压的效果。
analogWrite(pin,value):参数pin为要输出的PWM波的引脚,参数value是PWM的脉冲宽度,范围为0~255。 大多数Arduino控制器的PWM引脚都会用“~”标识,可以查看一下自己的板子。常见几款板子PWM引脚为:
基础知识介绍好了,那么就开始接下来的实验了。
2.实验内容