课前学习
单词 | 含义 |
---|---|
rotation | 旋转,转动 |
sensor | 传感器 |
我们所使用的调光台灯的电路中就有应用。今天这节课我们就通过读取电位器输入的电压值来控制LED灯的亮度。
一.电位器
电位器模块 电位器又叫滑动变阻器或者可变电阻器。具有三个引出端,阻值可按某种规律调节电阻的电阻元件。由于它在电路中的作用是获得与输入电压成一定关系的输出电压,因此称之为电位器。 电位器原理图通过旋转旋钮改变2号脚位置,从而改变2号脚到两端的阻值。实验中将1脚和3脚分别接到开发板的5V的GND,再通过模拟输入引脚A0来读取电位器2号脚分得的电压,其范围在0V和5V之间。
二.实验步骤
1.实验器材
名称 | 实物 | 数量 |
---|---|---|
UNO主控板 | 1 | |
面包板 | 1 | |
电位器 | 1 | |
LED | 1 | |
导线 | 若干 |
2.绘制连线图
三.程序设计
1.函数介绍
米思齐模块:模拟输入analogRead()
描述:读取指定模拟引脚的值。
函数原型:analogRead(pin)
参数:模拟输入引脚。
返回值:0到1024之间的整数。
米思齐模块:映射
map()
描述:将数据从一个范围映射到另一个范围。
函数原型:map(value, fromLow, fromHigh, toLow, toHigh)
参数:
value: 要映射的数据
fromLow: 当前范围的下限值。
formHigh: 当前范围的上限值。
toLow: 目标范围的下限值。
toHigh: 目标范围的上限值。
返回值:重新映射后的数据。
2.代码部分
/*
AnalogRead
通过电位器改变LED灯亮度
*/
int ledPin = 10;
int readValue = 0; //保存读到的模拟值
int ledValue = 0; //保存LED灯占空比
void setup()
{
pinMode(ledPin, OUTPUT); //数字口要选择带~号的具有pwm功能的输出口
}
void loop()
{
readValue = analogRead(A0); //读取A0模拟口的数值(0-5V 对应 0-1204取值)
ledValue = map(readValue, 0, 1024, 0, 255); //将0到1024之间的数据映射成0到255之间的数据
analogWrite(ledPin, ledValue); //PWM最大取值255
}
网友评论