当步进电机和PIR结合会用到什么场景呢?
自动开门,如果有人走到门边,PIR感应到有人靠近,然后把门打开。等人通过后门会自动关闭。
门打开的时候显示绿灯,关闭的时候显示红灯。
# 部署
- OSEPP UNO的
2-5
号引脚连到步进电机INA-IND
。 - 把
PIR
接到OSEPP UNO的A0
引脚。 LED1
接到OSEPP UNO的13
号引脚。LED7
接到OSEPP UNO的7
号引脚。
流程图
# 程序搭建
- oseppBlock程序
- Arduino程序
#include <Stepper.h>
Stepper stepper1(2048, 2, 4, 3, 5); //定义步进电机的步数和引脚
void setup()
{
stepper1.setSpeed(10); //定义每分钟转速
//pir1
pinMode(A0, INPUT); //定义PIR引脚
//led1
pinMode(13, OUTPUT); //定义LED1引脚
//led2
pinMode(7, OUTPUT); //定义LED2引脚
}
void loop()
{
if (digitalRead(A0)) //读取PIR的值
{
digitalWrite(13, LOW); //红色熄灭
digitalWrite(7, HIGH); //绿色点亮
delay(1000); //延时1000毫秒
stepper1.step(1024); //步进电机正向转动1024步
delay(2000); //延时2000毫秒
stepper1.step(-1024); //步进电机反向转动1024步
delay(1000); //延时1000毫秒
}
else
{
digitalWrite(13, HIGH); //红色点亮
digitalWrite(7, LOW); //绿色熄灭
delay(1000); //延时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
32
33
34
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
32
33
34
# 运行结果
当PIR检测到人体红外热源时,触发高电平。绿色LED点亮,步进马达正向转动半圈,等待2秒后反转半圈回来。然后红色LED点亮,绿色LED熄灭。