“第九课--Microduino 做0-5V量程的电压表(万用表的使用)/zh”的版本间的差异
(→原理图) |
(→设备) |
||
第15行: | 第15行: | ||
**1k电阻 一个 | **1k电阻 一个 | ||
**USB数据连接线 一根 | **USB数据连接线 一根 | ||
+ | |||
+ | [[File:lesson9All.jpg|600px|center|thumb]] | ||
==原理图== | ==原理图== |
2014年5月8日 (四) 05:49的版本
Language | English |
---|
目的之前我们介绍过模拟口的读取,然后对应返回0-1024的数值,今天我们就要利用Microduino模拟口,来制作一个0-5V的电压表。 注意:本实验电路设计没有相对复杂的保护电路,所以,千万别使用超过两节以上的AA电池,并且不要用来测量锂电池或者其他电源!! 设备
原理图图上使用1K电阻的目的是在测量端悬空的情况下,将GND的基准电平引导到测量口,避免接口悬空受到干扰。 程序float temp; //创建一个浮点型变量temp作为存储空间准备存放数据
void setup()
{
Serial.begin(115200); //使用9600的波特率进行串口通讯
}
void loop()
{
int V1 = analogRead(A0);
//从A0口读取电压数据存入刚刚创建整数型变量V1,模拟口的电压测量范围为0-5V 返回的值为0-1024
float vol = V1*(5.0 / 1023.0);
//我们将 V1的值换算成实际电压值存入浮点型变量 vol
if (vol == temp)
//这部分的判断是用来过滤重复的数据,只有本次的电压值和上次不一时才进行输出
{
temp = vol; //比较完成后,将这次的值存入比对比用的变量temp
}
else
{
Serial.print(vol); //串口输出电压值,并且不换行
Serial.println(" V"); //串口输出字符V,并且换行
temp = vol;
delay(1000); //输出完成后等待1秒钟,用于控制数据的刷新速度。
}
}
将模拟值转换成电压值没有使用map()函数,大家可以自行尝试。 结果当被测电压值有改变时每隔1s刷新一次数据,2次的电压值有波动是正常的,因为这毕竟是低精度的测试。要想更加精度测试, 请参考:http://www.hacktronics.com/Tutorials/arduino-current-sensor.html 视频 |