Arduino篇—电位器的使用

课程目标

了解电位器的原理及应用模拟输入信号的读取与应用编程实现可调台灯相关知识

电位器是具有三个引出端、阻值可按某种变化规律调节的电阻元件。常用于音量调节,灯光调节,马达调速,温度调节等场合。

电路搭建

所需材料

ArduinoUNO * 1

可调电位器 * 1

220Ω电阻 * 1

任意颜色LED * 1

杜邦线若干

接线方式

程序编写

练习一:串口读取模拟输入

通过串口读取电位器的输入值,并在串口监视器中显示出来。

图形化方式:

通过上传下面的程序,可以在串口监视器中读取到电位器的值,调节电位器旋钮,能清晰发现取值范围为0~1023。

由于传感器表达的是模拟信号,它不会像数字信号那样只有简单的高电平和低电平,而有可能是在这两者之间的任何一个数值。至于到底有多少可能的值则取决于模数转换的精度,精度越高能够得到的值就会越多。

Arduino所采用的ATmega8微处理器其有6个模数转换器(ADC,Analog to Digital Converter),每一个模数转换器的精度都是10bit,也就是说能够读取1024(2^10 = 1024)个状态。

在Arduino的每一个模拟输入管脚上,电压的变化范畴是从0V到5V,因此Arduino能够感知到的最小电压变化是4.8毫伏(5/1024 = 4.8mV)。

代码方式:

/* 项目名称:串口读取模拟值

* 项目日期:2022.02.18

* 项目作者:MRX

*/

int AR = 0;

void setup() {

pinMode(A0,INPUT);

Serial.begin(9600);

}

void loop() {

AR = analogRead(A0);

Serial.println(AR);

delay(1000);

}

练习二:编程实现电位器调节LED灯的亮度

用电位器做输入,LED灯做输出。

电路接线:

图形化方式:

Arduino的模拟输入量是0-1023,而模拟输出却是0-255。所以下面的程序通过映射的方式将模拟输入量和输出量进行了转换。

代码方式:

/* 项目名称:串口读取模拟值

* 项目日期:2022.02.18

* 项目作者:MRX

*/

int AR = 0;

int LEDpin = 3;

void setup() {

pinMode(A0,INPUT);

pinMode(LEDpin,OUTPUT);

}

void loop() {

AR = map(analogRead(A0), 0, 1023, 0, 255);

analogWrite(LEDpin,AR);

}