用户工具

站点工具


learing:examples:analoginput

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
learing:examples:analoginput [2017/10/05 03:36] 弘毅learing:examples:analoginput [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== Analog Input(模拟输入) ======
  
 +<WRAP left round info 65%>
 +电位器是一个简单的,提供可变电阻带有旋钮的装置,可以作为控制器的模拟输入。这个例子中你要使用一个电位器来控制LED闪烁频率。
 +</WRAP>
 +
 +<WRAP left round box 100%>
 +===== ALPHA MEGA328-U核心 =====
 +==== 硬件 ====
 +  * [[ocrobot:alpha:parallelexpansion:index|ALPHA 并行扩展板]]
 +  * [[ocrobot:alpha:mega328-u:main|ALPHA MEGA328-U]]
 +  * [[ocrobot:alpha:11led:index|ALPHA 11 LED模块]]
 +==== 搭建电路 ====
 +
 +  - 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, OUTPUT);  
 +}
 +
 +void loop() {
 +  // 读取模拟值
 +  sensorValue = analogRead(sensorPin);    
 +  // 点亮LED
 +  digitalWrite(ledPin, HIGH);  
 +  // 延时:
 +  delay(sensorValue);          
 +  // 熄灭LED:        
 +  digitalWrite(ledPin, LOW);   
 +  //延时:
 +  delay(sensorValue);                  
 +}</code>
 +
 +</WRAP>
 +
 +<WRAP left round box 100%>
 +===== ALPHA 8F328D-U核心 =====
 +==== 硬件 ====
 +
 +==== 搭建电路 ====
 +
 +==== 代码 ====
 +</WRAP>
 +
 +<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, OUTPUT);  
 +}
 +
 +void loop() {
 +  // 读取模拟值
 +  sensorValue = analogRead(sensorPin);    
 +  // 点亮LED
 +  digitalWrite(ledPin, HIGH);  
 +  // 延时:
 +  delay(sensorValue);          
 +  // 熄灭LED:        
 +  digitalWrite(ledPin, LOW);   
 +  //延时:
 +  delay(sensorValue);                  
 +}</code>
 +</WRAP>