“第八课--0-5V量程的电压表/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
程序
Pkj讨论 | 贡献
程序
第28行: 第28行:
 
float sensorValue = 0;        // value read from the pot
 
float sensorValue = 0;        // value read from the pot
 
float Voltage=0;
 
float Voltage=0;
 
+
 
void setup() {
 
void setup() {
 
     pinMode(analogInPin, INPUT_PULLDOWN);
 
     pinMode(analogInPin, INPUT_PULLDOWN);
 
}
 
}
 
+
 
void loop() {
 
void loop() {
 
     // read the analog in value:
 
     // read the analog in value:
第38行: 第38行:
 
     // map it to the range of the analog out:
 
     // map it to the range of the analog out:
 
     Voltage = sensorValue*5/4095;
 
     Voltage = sensorValue*5/4095;
 
+
 
     SerialUSB.print("Voltage = ");
 
     SerialUSB.print("Voltage = ");
 
     SerialUSB.print(Voltage);
 
     SerialUSB.print(Voltage);
     SerialUSB.print("V");
+
     SerialUSB.println("V ");
 +
    delay(500);
 
}
 
}
 
</source>
 
</source>

2014年7月22日 (二) 14:16的版本

目的

之前我们介绍过模拟口的读取,然后对应返回0-1024的数值,今天我们就要利用Microduino模拟口,来制作一个0-5V的电压表。

注意:本实验电路设计没有相对复杂的保护电路,所以,千万别使用超过两节以上的AA电池,并且不要用来测量锂电池或者其他电源!!

设备

Microduino-CoreSTM32是采用 STM32F103CBT6芯片的ARM开发板,采用独特的Upin7接口,大小与一枚一元硬币差不多大,完全兼容Microduino其他扩展模块。

  • 其他硬件设备
    • 面包板跳线 一盒
    • 面包板 一块
    • 1k电阻 一个
    • USB数据连接线 一根

原理图

图上使用1K电阻的目的是在测量端悬空的情况下,将GND的基准电平引导到测量口,避免接口悬空受到干扰。

程序

const int analogInPin = 14;
 
float sensorValue = 0;        // value read from the pot
float Voltage=0;
 
void setup() {
    pinMode(analogInPin, INPUT_PULLDOWN);
}
 
void loop() {
    // read the analog in value:
    sensorValue = analogRead(analogInPin);
    // map it to the range of the analog out:
    Voltage = sensorValue*5/4095;
 
    SerialUSB.print("Voltage = ");
    SerialUSB.print(Voltage);
    SerialUSB.println("V ");
    delay(500);
}

结果

当被测电压值有改变时每隔1s刷新一次数据,2次的电压值有波动是正常的,因为这毕竟是低精度的测试。要想更加精度测试,

视频