电位器是一个简单的,提供可变电阻带有旋钮的装置,可以作为控制器的模拟输入。这个例子中你要使用一个电位器来控制LED闪烁频率。
/* Analog Input 读取模拟输入,使用读取值控制LED亮灭 */ int sensorPin = A0; // 电位计连接A0 int ledPin = 2; // LED连接2号数字口 int sensorValue = 0; // 变量存储读取值 void setup() { // LED为输出: pinMode(ledPin, OUTPUT); } void loop() { // 读取模拟值 sensorValue = analogRead(sensorPin); // 点亮LED digitalWrite(ledPin, HIGH); // 延时: delay(sensorValue); // 熄灭LED: digitalWrite(ledPin, LOW); //延时: delay(sensorValue); }
OCROBOT控制器 |
电位计 |
连接三根线到arduino。电位计外边第一个脚连接到gnd,外边另一个脚连接+5v,中间的脚连接arduino的A0口。
此例中使用了arduino板内置的连接在13号脚的LED,如果想用一个额外的LED,连接LED长的一根脚到数字口13,短的脚连接到gnd,因为13号脚的输出电流小,这里就不需要额外的限流电阻。
程序的开头,把你的电位计连接在A0,LED连接在数字口13.建立变量存储电位计读取到的值。
analogRead转换输入电压的范围0-5v到数字0-1023之间,这一过程使用了arduino内部的模数转换器ADC。
转动旋钮后,你就改变了电位计两边到中间的电阻。改变了两边脚到中间脚的电压,这样就给模拟输入提供了不同的电压。当旋钮一直往一个方向拧,引脚上电压就是0,也就是输入值为0。当旋钮一直往另外一个方向拧,引脚上电压就是5v,也就是输入值为1023。在这之间,analogRead() 返回一个介于0和1023的数值,相应的电压就加在了引脚。
存储在sensorvalue里的值,用来设置闪烁LED的延时时间。值越高,循环越长,反之亦反。
/* Analog Input 读取模拟输入,使用读取值亮灭 */ int sensorPin = A0; // 电位计连接A0 int ledPin = 13; // LED连接13号数字口 int sensorValue = 0; // 变量存储读取值 void setup() { // LED为输出: pinMode(ledPin, OUTPUT); } void loop() { // 读取模拟值 sensorValue = analogRead(sensorPin); // 点亮LED digitalWrite(ledPin, HIGH); // 延时: delay(sensorValue); // 熄灭LED: digitalWrite(ledPin, LOW); //延时: delay(sensorValue); }