目录
一、本节介绍
在上一个实验中,您已经学会了如何通过PWM编程控制LED,这是有趣的,虽然听起来很抽象。在本课程中,您将学习如何通过电位计来更改LED的亮度。
二、材料准备
- 1 * Arduino Uno开发板
- 1 *面包板
- 若干杜邦线
- 1 *电阻(220Ω)
- 1 * LED
- 1 *电位器
- 1 * USB数据线
三、原理讲解
模拟VS数字
线性电位器是模拟电子元件。那么模拟值和数字值之间有什么区别呢?简单地说,数字意味着开/关,高/低电平只有两个状态,即0或1.但是模拟信号的数据状态是线性的,例如从1到1000; 信号值随时间而变化,而不是指示确切的数字。模拟信号包括光强度,湿度,温度等。
在本实验中,使用电位器或电位器来改变电路中的电流,因此LED的亮度将相应地改变。而由于电池是模拟装置,目前的变化很顺利,因此LED逐渐变得更亮或更暗,而不是经过一个明显的逐步过程。
我们这里的意思是模拟信号的数字化,这是接近模拟信号的过程。由于电位计输入模拟信号,因此应连接到模拟端口,即A0-A5,而不是数字端口。
四、实验步骤
步骤1:建立电路
原理图
如您所见,电位器连接到SunFounder Uno板的引脚A0,可以测量0V至5V的电压。相应的返回值为0到1024.电压变化的测量精度相对较高。
步骤2:程序
步骤3:编译代码
步骤4:将程序上传到Arduino Uno板
旋转电位器的轴,你应该看到LED的亮度变化。
本节课代码:
[scu name=”arduino-ide-post” platform=”arduino:avr:uno”]
//******************************************
//由电位计控制
//旋转电位器的轴,您应该看到LED亮度的变化。
//网址:趣讨教http://www.qutaojiao.com/category/course/arduino
//2017.10.14
/************************** ****************/
const int analogPin = A0;//模拟输入引脚连接到模拟引脚A0
const int ledPin = 9; //引脚连接到引脚9
int inputValue = 0;//存储传感器
int outputValue = 0;//存储输出值的变量
/******************************************/
void setup()
{
}
/******************************************/
void loop()
{
inputValue = analogRead(analogPin);//读取传感器的值
outputValue = map(inputValue, 0, 1023, 0, 255); //从0-1023转换成与从0到255的数字成比例的数字
analogWrite(ledPin, outputValue); //转动led依赖于输出值
}
/*******************************************/
[/scu]