结合之前学的温度传感器,来做一个温度感应的小风扇。当温度达到设定的阀值时,小风扇就会转动起来。温度低于某一个温度值,风扇就会停止。
# 部署
- LCD的接口
RS-D7
分别连接到OSEPP UNO的2~7
号引脚。
2.电动马达(Fan Motor)的INA
端子接到OSEPP UNO的9
号引脚。
3.电动马达(Fan Motor)的INB
端子接到OSEPP UNO的8
号引脚。
4.温度传感器接到OSEPP UNO的A0
引脚。
# 程序搭建
- oseppBlock 积木知识
电动马达设定积木。INA
是顺时针驱动引脚,INB
是逆时针驱动引脚。
电动马达驱动积木。可以选择正转和反转,正转是顺时针,反转是逆时针。设定值的范围是0-255
。
- oseppBlock程序
- Arduino程序
#include <LiquidCrystal.h>
LiquidCrystal lcd1(2, 3, 4, 5, 6, 7); //定义LCD引脚
void setup()
{
lcd1.begin(16, 2);
//lm35_1
pinMode(A0, INPUT); //定义A0为输入模式
//fan1
pinMode(9, OUTPUT); //定义9号引脚为输出模式
pinMode(10, OUTPUT); //定义10号引脚为输出模式
}
void loop()
{
if (analogRead(A0) * 0.48828125 > 30) //如果温度值大于30度
{
analogWrite(9, 255); //3号引脚输出pwm为255
analogWrite(10, 0); //5号引脚输出pwm为0
}
else if (analogRead(A0) * 0.48828125 < 29) //如果温度值小于29度
{
analogWrite(9, 0); //2号引脚输出pwm为0
analogWrite(10, 0); //5号引脚输出pwm为0
}
lcd1.clear(); //清屏
lcd1.setCursor(0, 0); //显示光标定位
lcd1.print(analogRead(A0) * 0.48828125); //显示温度
delay(3000); //延时1000毫秒
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 运行结果
如果你当前实验环境温度高于30
摄氏度时,小风扇就会转动起来。如果低于29
度就停止转动。你可以根据显示屏上面显示你当前的环境温度来修改这两个值,让风扇在这个值的变化中间启停。
# 解析
流程图
如果温度传感器感应到的温度大于30
度,风扇就会转动。代码里面判断> 30
,大于30
度。当温度刚好是30
度时,风扇是不会转动的,要31度才可以。
如果要求达到
30
度就转动的话,代码要用if (analogRead(A0) * 0.48828125 >= 30)
。就是把大于符号改成大于等于符号。小于29
度同理。
# 操作视频
← 电动马达 电动马达-PWM调速 →