“第十五课--Microduino 制作感温杯电路/zh”的版本间的差异
(→原理图) |
|||
第4行: | 第4行: | ||
| | | | ||
==目的== | ==目的== | ||
− | + | 上堂课简单介绍LM35的用法,现在用Microduino结合LM35做个模拟的感温杯。 | |
==设备== | ==设备== | ||
*'''[[Microduino-Core]]''' | *'''[[Microduino-Core]]''' | ||
第11行: | 第11行: | ||
**面包板跳线 一盒 | **面包板跳线 一盒 | ||
**面包板 一块 | **面包板 一块 | ||
− | ** | + | **LM35D温度传感器 一个 |
− | ** | + | **RGB led灯 一个 |
− | ** | + | **470欧电阻 一个 |
− | |||
− | |||
==原理图== | ==原理图== | ||
− | [[File: | + | [[File:第十四课原理图.jpg|600px|center|thumb]] |
− | + | 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( | + | { |
+ | pinMode(i, OUTPUT); | ||
+ | } | ||
} | } | ||
− | void loop() | + | |
− | + | void loop() { | |
− | int n=analogRead(A0); // | + | |
− | if( | + | int n = analogRead(A0); //读取A0口的电压值 |
− | digitalWrite( | + | |
− | + | float temp = n * (5.0 / 1023.0*100); //使用浮点数存储温度数据,温度数据由电压值换算得到 | |
− | digitalWrite( | + | |
− | Serial.println( | + | if (temp<21) //低温区的温度值设置、以及led显示 |
− | delay( | + | { |
+ | 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> | ||
==结果== | ==结果== | ||
− | + | 将温度设置了低温,中温,高温三个区,当温度在低温区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显示绿灯,中温区显示蓝灯,高温区显示红灯。模拟了一个感温杯。 视频 |