旋钮电位器:
在Arduino中,旋钮电位器(通常也被称为旋转电位器或可调电阻)是一个重要的电子元件,用于提供可变的电阻或电压输入。电位器具有三个引出端,其阻值可按某种变化规律进行调节。它通常由电阻体和可移动的电刷组成,通过手动调节转轴或滑柄,改变动触点在电阻体上的位置,从而改变电阻值,实现电压与电流大小的调节。
在Arduino电路中,旋钮电位器的两个固定端通常分别连接到电源的正负极(例如5V和GND),而中间的可变脚则连接到Arduino的模拟输入引脚(如A0)。这样,通过旋转电位器的旋钮,就可以改变中间脚相对于两端的电阻值,从而在模拟输入引脚上产生一个可变的电压信号。Arduino可以读取这个模拟信号,并将其转换为0到1023之间的整数(对于10位ADC来说),这样你就可以在程序中根据电位器的位置来执行不同的操作。
项目要求
①0 关闭所有的灯
②1~250 打开红灯 关闭另外两个灯
③255~500 打开黄灯 关闭另外两个灯
④510~1000 打开绿灯 关闭另外两个灯
⑤1023 打开所有的灯
⑥加上必要的串口打印
实际接线图
源代码:
const int analogPIN = A0;
int sensorValue;
int led_red = 4;
int led_yellow = 3;
int led_green = 2;
void setup() {
pinMode(led_red, OUTPUT); //引入三个LED的引脚
pinMode(led_green, OUTPUT);
pinMode(led_yellow, OUTPUT);
Serial.begin(9600); //设置波特率为9600
}
void loop() {
sensorValue = analogRead(analogPIN); //读取旋钮电位器的数据
Serial.println(sensorValue);//打印旋钮电位器的数据
//当sensorValue为0时,sensorValue到达最小值,执行clear_led函数,关闭所有灯
if (sensorValue == 0)
{
clear_led();
}
//当sensorValue在1~250时,执行RED函数,点亮红灯,关闭另外两灯
if (sensorValue > 1 && sensorValue < 250)
{
RED();
}
//当sensorValue在255~500时,执行YELLOW函数,点亮黄灯,关闭另外两个灯
if (sensorValue > 255 && sensorValue < 500)
{
YELLOW();
}
//当sensorValue在510~1000时,执行GREEN函数,点亮绿灯,关闭另外两个灯
if (sensorValue > 510 && sensorValue < 1000)
{
GREEN();
}
//当sensorValue为1023时,sensorValue到达最大值,执行HIGH_led函数,点亮全部灯
if (sensorValue == 1023)
{
HIGH_led();
}
}
void clear_led()
{
digitalWrite(led_red, LOW);
digitalWrite(led_green, LOW);
digitalWrite(led_yellow, LOW);
}
void RED()
{
digitalWrite(led_red, HIGH);
digitalWrite(led_green, LOW);
digitalWrite(led_yellow, LOW);
}
void YELLOW()
{
digitalWrite(led_red, LOW);
digitalWrite(led_green, LOW);
digitalWrite(led_yellow, HIGH);
}
void GREEN()
{
digitalWrite(led_red, LOW);
digitalWrite(led_green, HIGH);
digitalWrite(led_yellow, LOW);
}
void HIGH_led()
{
digitalWrite(led_red, HIGH);
digitalWrite(led_green, HIGH);
digitalWrite(led_yellow, HIGH);
}
实验现象
旋钮电位器控制LED