智慧家里,光控窗帘不是基本的吗?doge。
功能说明:使用电机+光线+8MML发光模块。当光线传感器检测变黑的时候,LED变亮,并关闭窗帘。(天黑,家里开灯,并关上窗帘。天亮,家里关灯,打开窗帘。可自行调试。)
注意:使用一个电机时候,窗帘应设计成卷帘形式。控制电机正反转即可(自己做一下窗帘结构吧。)
光控窗帘
所选设备
MR开发板
光敏电阻传感器
8MM发光LED模块
12V直流电机
接线说明
光敏电阻
开发板 | 光敏电阻 |
---|---|
5V | VCC |
GND | GND |
A0 | DO |
8MMLED
开发板 | 8MMLED |
---|---|
5V | VCC |
GND | GND |
A1 | OUT |
12V直流电机
引脚 | 说明 |
---|---|
B10 | 只有为高电平时,马达才会转 |
B8 | PWM控制A电机 |
B9 | PWM控制B电机 |
B12 | A0 #本次使用了A电机,可以自己按需调试。 |
B13 | A1 |
B14 | B0 |
B15 | B1 |
#main.py -- put your code here!
from pyb import Pin,delay,Timer
cs = Pin('C8',Pin.OUT_PP) #C8设置为输出引脚输出高电平
cs(1)
ch1 =None
ch2 =None
#A电机正反转 s---
p2 = Pin('B8')
tim2 = Timer(10, freq=120)
ch2 = tim2.channel(1, Timer.PWM, pin=p2)
A0 = Pin('B12',Pin.OUT_PP)
A1 = Pin('B13',Pin.OUT_PP)
def z(speed): #正转
ch2.pulse_width_percent(speed)
A0(1)
A1(0)
def f(speed): #反转
ch2.pulse_width_percent(speed)
A0(0)
A1(1)
#------end
Do = Pin("A0",Pin.IN) #光敏
p1 = Pin('A1') # 8MM 线性变亮
tim1 = Timer(2, freq=100)
ch1 = tim1.channel(2, Timer.PWM, pin=p1)
while True:
delay(500)
#print(Do.value()) #串口输出
if Do.value()==0: #没光
ch1.pulse_width_percent(0) # 灯不亮
f(30) # 电机反转 这里应该判断状态 我没写,注意一下
else:
for i in range(100):
ch1.pulse_width_percent(i) #灯线性亮
delay(50)
z(10) # 电机正转(关窗帘)
可以看到,无光下,开灯啦,电机正转带动窗帘(忘了不是动图了QAQ。窗帘自己弄哦。ZTMR支持2个电机,和A电机用法一样,自己试试哦。)