第三十二课--Microduino与风速传感器/zh
Microduino与风速传感器
目的本教程通过Microduino读取风速传感器(风速仪)的信息,使读者了解风速传感器,掌握Microduino使用模拟输入口的编程方法。 设备Microduino-Core 是以 Atmel ATmega328P为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块。 下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。
风速传感器风速传感器是一种专门用于监测风速的检测仪表。其输出形式可分为485输出(一般会选择modbus协议)、4-20mA电流、0-5V。该示例应用的风速传感器采用的0-5V输出的形式(买风速传感器时和卖家说清楚就0K了),可非常方便的被Microduino模拟口识别。该示例应用的风速传感器最高监测风速为30米每秒,也就是30米每秒的风到来的时候输出电压临近5V,在0米每秒到30米每秒之间的输出电压(0-5V)线性分布。其供电电压为直流12V到24V,所以还需外接一个电源。线缆的三根引出线我们需要搞清楚。1:地线,外接电源的地线与Microduino的地线与线缆引出的接地线连在一起。2:电源输入正极线,线缆引出电源线需要和外接电源的正极连在一起,该文外接直流电为24V。3:模拟量输出线,线缆引出的模拟量输出线可直接接入Microduino的A0引脚。 实验原理图下图为实拍图,风速传感器在转动状态。风速传感器底座下面为24V开关电源。 程序void setup()
{
Serial.begin(9600);
}
void loop()
{
float myVoltage=analogRead(A0)/1023.0*5.0;
delay(10);
float windSpeed=myVoltage*30.0/5.0;//max detect windspeed 30m/s
windSpeed=windSpeed*1.0;//change this value (1.0) to calibrate
if(windSpeed<0.15) //debounce
{
Serial.print("Wind speed ");
Serial.println("0m/s");
delay(1000);
}
else
{
Serial.print("Wind speed ");
Serial.print(windSpeed,1 );// output ("0.0") fraction
Serial.println("m/s");
delay(1000);
}
}
调试
结果按照原理图连接好电路。程序下载后,可在Arduino IDE自带的串口监视器中观察风速值。 视频 |