“第十五课--Microduino 制作感温杯电路/zh”的版本间的差异
小 (photo added) |
|||
| (未显示3个用户的11个中间版本) | |||
| 第1行: | 第1行: | ||
| − | {{Language|Lesson_15--Microduino_" | + | {{Language|Lesson_15--Microduino_"Make_a_circuit_ of_temperature-sensitive_cup"}} |
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- | ||
| | | | ||
==目的== | ==目的== | ||
| − | + | 上堂课简单介绍LM35的用法,现在用Microduino结合LM35做个模拟的感温杯。 | |
==设备== | ==设备== | ||
| − | *'''[[Microduino-Core]]''' | + | *'''[[Microduino-Core/zh]]''' |
| − | *'''[[Microduino- | + | *'''[[Microduino-USBTTL/zh]]''' |
*其他硬件设备 | *其他硬件设备 | ||
**面包板跳线 一盒 | **面包板跳线 一盒 | ||
**面包板 一块 | **面包板 一块 | ||
| − | ** | + | **LM35D温度传感器 一个 |
| − | ** | + | **RGB led灯 一个 |
| − | + | **470欧电阻 一个 | |
| − | ** | ||
==原理图== | ==原理图== | ||
| − | [[File: | + | [[File:lesson15-schematic.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, LOW); | ||
| + | digitalWrite(2, HIGH); | ||
| + | } | ||
| + | else if (temp>=21 && temp<=23) //中温区温度范围设置 &&为“与”的意思 | ||
| + | { | ||
| + | digitalWrite(4, LOW); | ||
| + | digitalWrite(3, HIGH); | ||
| + | digitalWrite(2, HIGH); | ||
| + | } | ||
| + | else if (temp>23) //高温区温度设置 | ||
| + | { | ||
| + | digitalWrite(4, HIGH); | ||
| + | digitalWrite(3, HIGH); | ||
| + | digitalWrite(2, LOW); | ||
| + | } | ||
| + | Serial.println(temp); //串口输出温度数据 | ||
| + | delay(1000); //等待1秒,控制刷新速度 | ||
} | } | ||
</source> | </source> | ||
| + | |||
==结果== | ==结果== | ||
| − | + | 将温度设置了低温,中温,高温三个区,当温度在低温区RGB显示绿灯,中温区显示蓝灯,高温区显示红灯。模拟了一个感温杯。 | |
| + | |||
| + | [[File:Lesson15.jpg|600px|thumbnail|center]] | ||
| + | |||
==视频== | ==视频== | ||
|} | |} | ||
| + | |||
| + | http://v.youku.com/v_show/id_XNzEwMDA0NTg0.html | ||
2015年7月3日 (五) 07:50的最新版本
| 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, LOW);
digitalWrite(2, HIGH);
}
else if (temp>=21 && temp<=23) //中温区温度范围设置 &&为“与”的意思
{
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
}
else if (temp>23) //高温区温度设置
{
digitalWrite(4, HIGH);
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
}
Serial.println(temp); //串口输出温度数据
delay(1000); //等待1秒,控制刷新速度
}
结果将温度设置了低温,中温,高温三个区,当温度在低温区RGB显示绿灯,中温区显示蓝灯,高温区显示红灯。模拟了一个感温杯。 文件:Lesson15.jpg 600px 视频 |
