“第十五课--Microduino 制作感温杯电路/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
原理图
Pkj讨论 | 贡献
第4行: 第4行:
 
|
 
|
 
==目的==
 
==目的==
不知大家是否在实验中手无意中触摸到led时有时候会点亮。那是因为人体电阻将led点亮了。在DIY光敏三极管只要给NPN三极管的基极一个很小的电压,就能让三极管接通,达到开关的目的,所以今天我们来做一个指尖开关,利用人体电阻点亮led。
+
上堂课简单介绍LM35的用法,现在用Microduino结合LM35做个模拟的感温杯。
 
==设备==
 
==设备==
 
*'''[[Microduino-Core]]'''
 
*'''[[Microduino-Core]]'''
第11行: 第11行:
 
**面包板跳线    一盒   
 
**面包板跳线    一盒   
 
**面包板    一块   
 
**面包板    一块   
**LED发光二极管  一个
+
**LM35D温度传感器 一个  
**10k、1K、220欧电阻 各一个 
+
**RGB led灯  一个
**USB数据连接线  一根
+
**470欧电阻 一个
**9014三极管 一个
 
 
 
 
==原理图==
 
==原理图==
[[File:lesson15-schematic.jpg|600px|center|thumb]]
+
[[File:第十四课原理图.jpg|600px|center|thumb]]
人体电阻一端接VCC,另一端接三极管的基极。与第十二课原理图的原理一致,不详细介绍。
+
LM35接法不变,指示采用一个共阳的RGB LED。
  
 
==程序==
 
==程序==
 
<source lang="cpp">
 
<source lang="cpp">
void setup()
+
void setup() {
{
+
   Serial.begin(115200);         //使用115200速率进行串口通讯
   Serial.begin(115200);
+
   for(int i=2;i<5;i++)          //设置led输出口
   pinMode(13,OUTPUT);   
+
  {
 +
    pinMode(i, OUTPUT);   
 +
  }
 
}
 
}
void loop()
+
 
{
+
void loop() {
   int n=analogRead(A0);  //读取模拟口数据       
+
 
   if(n>0)     //有电压反应就运行以下程序
+
   int n = analogRead(A0);   //读取A0口的电压值
     digitalWrite(13,HIGH); //点亮led
+
 
   else
+
   float temp = n * (5.0 / 1023.0*100);  //使用浮点数存储温度数据,温度数据由电压值换算得到
     digitalWrite(13,LOW); //熄灭led
+
 
   Serial.println(n);//串口监视
+
   if (temp<21) //低温区的温度值设置、以及led显示
   delay(100);//延时,控制刷新速率。
+
  {
 +
     digitalWrite(4, HIGH);
 +
    digitalWrite(3, HIGH);
 +
    digitalWrite(2, LOW);
 +
  }
 +
  else if (temp>=21 && temp<=23)  //中温区温度范围设置  &&为“与”的意思
 +
   {
 +
    digitalWrite(4, HIGH);
 +
     digitalWrite(3, LOW);
 +
    digitalWrite(2, HIGH);
 +
  }
 +
  else if (temp>23)  //高温区温度设置
 +
  {
 +
    digitalWrite(4, LOW);
 +
    digitalWrite(3, HIGH);
 +
    digitalWrite(2, HIGH);
 +
  }
 +
   Serial.println(temp); //串口输出温度数据
 +
   delay(1000);         //等待1秒,控制刷新速度
 
}
 
}
 
</source>
 
</source>
 
==结果==
 
==结果==
用手接触人体电阻接线两端,LED点亮,一旦松开LED熄灭。大家是否可以举一反三做个触摸开关呢?
+
将温度设置了低温,中温,高温三个区,当温度在低温区RGB显示绿灯,中温区显示蓝灯,高温区显示红灯。模拟了一个感温杯。
 +
 
 
==视频==
 
==视频==
 
|}
 
|}

2014年5月6日 (二) 05:43的版本

Language English

目的

上堂课简单介绍LM35的用法,现在用Microduino结合LM35做个模拟的感温杯。

设备

原理图

LM35接法不变,指示采用一个共阳的RGB LED。

程序

void setup() {
  Serial.begin(115200);         //使用115200速率进行串口通讯
  for(int i=2;i<5;i++)          //设置led输出口
  {
    pinMode(i, OUTPUT);  
  }
}

void loop() {

  int n = analogRead(A0);    //读取A0口的电压值

  float temp = n * (5.0 / 1023.0*100);   //使用浮点数存储温度数据,温度数据由电压值换算得到

  if (temp<21)  //低温区的温度值设置、以及led显示
  {
    digitalWrite(4, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(2, LOW);
  }
  else if (temp>=21 && temp<=23)  //中温区温度范围设置  &&为“与”的意思
  {
    digitalWrite(4, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(2, HIGH);
  }
  else if (temp>23)   //高温区温度设置
  {
    digitalWrite(4, LOW);
    digitalWrite(3, HIGH);
    digitalWrite(2, HIGH);
  }
  Serial.println(temp); //串口输出温度数据
  delay(1000);         //等待1秒,控制刷新速度
}

结果

将温度设置了低温,中温,高温三个区,当温度在低温区RGB显示绿灯,中温区显示蓝灯,高温区显示红灯。模拟了一个感温杯。

视频