用户工具

站点工具


learing:examples:analogreadserial

Analog Read Serial(读取模拟口输入)

这个例子用电位器演示怎样读取物理世界的模拟输入。

ALPHA MEGA328-U核心

硬件

搭建电路

  1. ALPHA MEGA328-U模块插入并行扩展版1号槽位。
  2. ALPHA 微动开关模块插入并行扩展板2号槽位。
  3. USB线连接计算机与ALPHA MEGA328-U。


ALPHA 电位器模块中的拨码开关,请确保1处于ON位置。

代码

/*
  AnalogReadSerial
  读取A0口的模拟输入,并显示在串口监视器
 */
 
void setup() {
  // 初始化串口通信速率为9600 :
  Serial.begin(9600);
}
 
void loop() {
  // 读取A0口输入:
  int sensorValue = analogRead(A0);
  // 打印:
  Serial.println(sensorValue,DEC);
  delay(1);        // 延时1毫秒
}

这个例子中我们使用了一个新函数:analogRead()该函数用来从指定的模拟引脚读取数据,我们把这种功能称作ADC或者模数转换。

通过调节电位器的旋钮,你可以改变任意一端到中间脚的阻值,这样就改变了中间脚的电压,当中间脚和连接5V脚的阻值为零的时候,中间脚的电压近似于5V,反过来,电压为0,这些电压就是输入到模拟口的电压。

ALPHA MEGA328-U自带的ADC(模数转换器)可以读取电压的改变,将它转换为0-1023的数字(10位精度)。当旋钮一直往一个方向拧,引脚上电压就是0,也就是输入值为0。当旋钮一直往另外一个方向拧,引脚上电压就是5v,也就是输入值为1023。在这之间有相应的电压输入到模拟口,analogRead() 返回一个介于0和1023之间的数值。

ALPHA 8F328D-U核心

硬件

搭建电路

代码

MangoII

硬件要求

  • OCROBOT控制器
  • 10K电阻
  • 电位器
  • 导线

连接电位器的三个脚到OCROBOT控制器,第一根连接到GND,第二根连接到+3V3或者+5V(要根据系统电压选择,不可以超过系统电压),中间的第三根线连接到A0口。

通过调节电位器的旋钮,你可以改变任意一端到中间脚的阻值,这样就改变了中间脚的电压,当中间脚和连接5V脚的阻值为零的时候,中间脚的电压近似于5V,反过来,电压为0,这些电压就是你读到的作为输入的模拟口的值。

OCROBOT控制器自带的ADC(模数转换器)可以读取电压的改变,将它转换为0-1023的数字(10位精度)。当旋钮一直往一个方向拧,引脚上电压就是0,也就是输入值为0。当旋钮一直往另外一个方向拧,引脚上电压就是5v,也就是输入值为1023。在这之间,analogRead() 返回一个介于0和1023的数值,相应的电压就加在了引脚。

代码

下面这个程序中,你只需要设置串口通信为9600比特每秒,命令如下

Serial.begin(9600);

然后在主循环中,设置一个变量来储存电位计的阻值(0-1023,最好为整型)

int sensorValue = analogRead(A0);

最后打印这个十进制数值到串口监视器中

Serial.println(sensorValue, DEC)

现在,当你打开串口监视器后,你可以看到稳定的0-1023的数据,每当转动旋钮,数据会立刻变动。

/*
  AnalogReadSerial
 读取0口的模拟输入,并显示在串口监视器
 
 连接电位器中间的线到arduino的A0,外面的两个脚接到arduino的+5v电源和gnd
 
 */
 
void setup() {
  // 初始化串口通信9600 :
  Serial.begin(9600);
}
 
 
void loop() {
  // 读取A0口输入:
  int sensorValue = analogRead(A0);
  // 打印:
  Serial.println(sensorValue,DEC);
  delay(1);        // 延时1毫秒
}
learing/examples/analogreadserial.txt · 最后更改: 2017/10/05 03:24 (外部编辑)