learing:examples:analoginput
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
learing:examples:analoginput [2017/04/07 10:03] – 外部编辑 127.0.0.1 | learing:examples:analoginput [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== Analog Input(模拟输入) ====== | ||
+ | <WRAP left round info 65%> | ||
+ | 电位器是一个简单的,提供可变电阻带有旋钮的装置,可以作为控制器的模拟输入。这个例子中你要使用一个电位器来控制LED闪烁频率。 | ||
+ | </ | ||
+ | |||
+ | <WRAP left round box 100%> | ||
+ | ===== ALPHA MEGA328-U核心 ===== | ||
+ | ==== 硬件 ==== | ||
+ | * [[ocrobot: | ||
+ | * [[ocrobot: | ||
+ | * [[ocrobot: | ||
+ | ==== 搭建电路 ==== | ||
+ | |||
+ | - ALPHA 11 LED模块插入并行扩展版1号槽位。 | ||
+ | - ALPHA MEGA328-U模块插入并行扩展板2号槽位。 | ||
+ | - USB线连接计算机与ALPHA MEGA328-U。 | ||
+ | |||
+ | ==== 代码 ==== | ||
+ | |||
+ | <code cpp>/* | ||
+ | Analog Input | ||
+ | 读取模拟输入,使用读取值控制LED亮灭 | ||
+ | |||
+ | */ | ||
+ | |||
+ | int sensorPin = A0; // 电位计连接A0 | ||
+ | int ledPin = 2; // LED连接2号数字口 | ||
+ | int sensorValue = 0; // 变量存储读取值 | ||
+ | |||
+ | void setup() { | ||
+ | // LED为输出: | ||
+ | pinMode(ledPin, | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // 读取模拟值 | ||
+ | sensorValue = analogRead(sensorPin); | ||
+ | // 点亮LED | ||
+ | digitalWrite(ledPin, | ||
+ | // 延时: | ||
+ | delay(sensorValue); | ||
+ | // 熄灭LED: | ||
+ | digitalWrite(ledPin, | ||
+ | //延时: | ||
+ | delay(sensorValue); | ||
+ | }</ | ||
+ | |||
+ | </ | ||
+ | |||
+ | <WRAP left round box 100%> | ||
+ | ===== ALPHA 8F328D-U核心 ===== | ||
+ | ==== 硬件 ==== | ||
+ | |||
+ | ==== 搭建电路 ==== | ||
+ | |||
+ | ==== 代码 ==== | ||
+ | </ | ||
+ | |||
+ | <WRAP left round box 100%> | ||
+ | ===== MangoII ===== | ||
+ | ==== 硬件要求 ==== | ||
+ | |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的延时时间。值越高,循环越长,反之亦反。 | ||
+ | |||
+ | <code cpp>/* | ||
+ | Analog Input | ||
+ | | ||
+ | |||
+ | */ | ||
+ | |||
+ | int sensorPin = A0; // 电位计连接A0 | ||
+ | int ledPin = 13; // LED连接13号数字口 | ||
+ | int sensorValue = 0; // 变量存储读取值 | ||
+ | |||
+ | void setup() { | ||
+ | // LED为输出: | ||
+ | pinMode(ledPin, | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // 读取模拟值 | ||
+ | sensorValue = analogRead(sensorPin); | ||
+ | // 点亮LED | ||
+ | digitalWrite(ledPin, | ||
+ | // 延时: | ||
+ | delay(sensorValue); | ||
+ | // 熄灭LED: | ||
+ | digitalWrite(ledPin, | ||
+ | //延时: | ||
+ | delay(sensorValue); | ||
+ | }</ | ||
+ | </ |
learing/examples/analoginput.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1