Arduino内置教程-基本原理-读取模拟电压

读取模拟电压

这个例子展示怎样读取一个在模拟引脚PIN 0上的模拟输入,把analogRead()的值转换成电压,然后打印到Arduino IDE的串口监视器里。

硬件要求

  • Arduino or Genuino 开发板
  • 10k ohm 电位计

电路

请输入图片描述
这个图是用 Fritzing绘制。更多的电路例子参考Fritzing project page

  • 连接从电位计到你的开发板的3条线。第一根线从电位计的一个输出引脚到地。第二根从电位计的另一个输出引脚到5V。第三根从电位计中间的引脚到模拟引脚A0.

  • 通过旋转电位计的轴,你在刮器任意一个方向改变电阻的值(刮器连接到电位计中心引脚)。这个可以改变中间引脚的电压。当中心引脚和5v的电阻约为0时(中心引脚到地的电阻约为10kΩ),中心引脚的电压约为5V。当电阻被翻转时,中心引脚电压约为0,即是地。这个电压是你在读取输入引脚的模拟电压

  • Arduino和Genuino开发板有一个内置电路叫模拟到数字转换器,或者叫ADC,这个可以读取变化的电压,并转换成0到1023之间的数值。另外,analogRead()函数可以按比例转换一个0到1023之间的数字成为这个引脚上的电压。

原理图

请输入图片描述

样例代码

  • 在下面的程序里,你只需要开始串口通讯,波特率为9600 bits。在你的开发板和电脑增加以下命令:
Serial.begin(9600);
  • 然后,在你代码的主循环里,你需要创建一个变量来保存来自你的电位计的电阻值(这个数值在0到1023之间,最好用int):
int sensorValue = analogRead(A0);
  • 为了使从0-1023的值对应到读取到的电压值,你需要创建另外一个浮数的变量,然后做一些运算:
float voltage= sensorValue * (5.0 / 1023.0);
  • 最后,你需要打印这个电压值到你的串口窗口里。你可以用Serial.println()命令来完成这个步骤:
Serial.println(voltage)
  • 现在,当你打开你在Arduino IDE软件上的串口监视器(可以通过键盘快捷键Ctrl+Shift+M打开),你应该看到一个范围从0.0-5.0的稳定的数据流。随着你转动那个旋钮,这个输入到A0引脚的电压值会随之变化。
/*
  ReadAnalogVoltage
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.
  Graphical representation is available using serial plotter (Tools > Serial Plotter menu)
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.
*/

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
}

[Get Code]

更多

  • setup()
  • loop()
  • analogRead()
  • int
  • Serial
  • float
  • BareMinimum: 开始一个新程序的最简框架
  • Blink: 使一个LED灯开关.
  • DigitalReadSerial: 读取引脚,打印状态到Arduino串口监视器
  • AnalogReadSerial: 读取一个电位计,打印它的状态到Arduino串口监视器
  • Fade: Demonstrates 示范用模拟输出使LED灯亮度变淡
  • ReadAnalogVoltage : 读取一个模拟输入,然后打印其电压值到串口监视器

标签: arduino内置教程, arduino读取模拟电压