第十三课--制作感温杯电路/zh

来自Microduino Wikipedia
1183296105@qq.com讨论 | 贡献2015年1月22日 (四) 06:39的版本 调试
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

目的

为了加深对LM35温度传感器以及AD采样的的理解,本课结合LM35做个模拟的感温杯。

设备

Microduino-CoreSTM32小巧精悍,其内核来自于ARM公司具有突破性的Cortex-M3内核的32位闪存微控制器。该内核是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。

  • 其他硬件设备
  • 面包板跳线 一盒
  • 面包板 一块
  • LM35D温度传感器 一个
  • RGB led灯 一个
  • 470欧电阻 一个

原理图

RGB LED灯能够显示红绿蓝三种颜色,有共阳极和共阴极之分,本课采用的是共阳极的RGB LED灯,也就是下图所示的公共端接正极,其它三个引脚接负极。

下图为本课的原理图,LM35接法不变,RGB LED灯的公共端通过电阻接到Microduino-CoreSTM32/zh的Vcc引脚,绿、蓝、红引脚分别接在Microduino-CoreSTM32/zh的D2、D3、D4引脚。

程序

int A0=14;   //temperature sensor connected to pin 14
void setup()
{
  pinMode(A0,INPUT_ANALOG); //set up pin for ananlog input
  pinMode(2,OUTPUT);  //green light pin
  pinMode(3,OUTPUT);  //blue light pin
  pinMode(4,OUTPUT);  //red light pin
  SerialUSB.begin();        
} 
void loop() 
{
  int n= analogRead(A0);   // read the input pin
  float  temperature = n * (5.0/4096.0*100);  //convert ADC reading (12 bits) to temperature
  if(temperature<21)     // Low temperature zone
  {
    digitalWrite(2,LOW);   //green light is on
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
  }
  else if((temperature>=21)&&(temperature<=23))  //medium temperature zone
  {
    digitalWrite(2,HIGH);
    digitalWrite(3,LOW); //blue light is on
    digitalWrite(4,HIGH);
  }
  else if(temperature>23)//High temperature zone
  {
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,LOW);//red light is on
  }
  SerialUSB.println( temperature);    // print the temperature value         
  delay(1000);                   
}

温度设置了低温,中温,高温三个区,指示灯分别是绿、蓝、红。

调试

步骤一:按照实验原理图连接好电路图。

步骤二:复制代码到Maple IDE中编译。

步骤三:下载程序代码。

步骤四:改变传感器周围的温度,观察REG LED等的状态。可以通过手握住LM35温度传感器来升温,通过在LM35附近放一装有凉水的凉水杯来降温。

结果

  • 首先温度稳定在20度左右,RGB LED灯为绿色。
  • 用手握住LM35传感器后,RGB LED灯不断有绿色变为蓝色,然后由蓝色转为红色,最后最后稳定在红色。
  • 松开手,REG LED等慢慢由红色变为蓝色,然后由蓝色变为绿色,最后稳定在绿色。

视频