第三十二课--Microduino与风速传感器/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年9月1日 (一) 15:05的版本
跳转至: 导航搜索

Microduino与风速传感器

目的

本教程通过Microduino读取风速传感器(风速仪)的信息,使读者了解风速传感器,掌握Microduino使用模拟输入口的编程方法。

设备

Microduino-Core 是以 Atmel ATmega328P为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块。

下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。

  • 其他硬件设备
相关硬件 数量 功能
风速传感器 1个 用于监测风速,本示例输出信号为0-5V。
24V 1A开关电源 1个 风速传感器供电用,本示例采用明纬牌开关电源。
USB数据连接线 1条 连通Microduino模块与计算机。
面包板 1块 各个元器件汇聚于此。
面包板跳线 1盒 电气连接线。

风速传感器

风速传感器是一种专门用于监测风速的检测仪表。其输出形式可分为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);
  }
}

调试

  • 用导线连接硬件并确认无误。
  • 把程序复制到ArduinoIDE中。
  • 编译程序,选择正确的板卡与相应串口。
  • 点击Upload,下载完毕后打开ArduinoIDE自带的串口监视器,用手拨动风速仪(或放到室外实际观察)观察结果。下图是手拨风速仪时显示的风速值。
  • 米每秒对应几级风读者可搜索下,相应的程序也可修改下,依读者所需。
  • 数据可上传至yeelink,相关内容请参考wiki-- Microduino 传感器教程。
  • 笔者曾测试该风速传感器与某品牌手持式风速传感器(带液晶屏显示),ArduinoIDE 串口输出数据与手持式液晶屏显示数据基本一致。

结果

按照原理图连接好电路。程序下载后,可在Arduino IDE自带的串口监视器中观察风速值。

视频