家里原来被小偷关顾过一次,丢了千把块钱。于是装了个电磁锁。电磁锁的开关大概是下图这样的
这个开关和别的普通开关不一样它按下后会自动回弹。然后底下的控制器就会把锁给释放并延时两秒后重新锁上。然而现在开关的机械结构好像年久失修损坏。按下后和普通开关一样不会回弹。出门的时候经常忘了给掰回去导致大门未落锁。所以想搞一个类似于延时开关的东西。
翻了翻柜子,翻出了以前购买的小玩意 STC15w104,6个IO口,自带可调节片内晶振,电压范围又宽。做这个小玩意绰绰有余。价格也只要1.5元一片物美价廉。焊了个最小系统板,加上个小的按键搞定。
接下来就是调试程序了,由于只是要延时个五秒左右。对时间没有太大要求能开个门就行。所以程序很简单。就是个按键扫描+改变对应IO的电位搞定(人懒也没用定时器)。以下是源码:
#include "config.h"
#include "soft_uart.h"
sbit led = P3^4;
void main()
{
PrintString("TEST OK!");
led = 1;
while(1)
{
if(key_scan()==1)
{
led = 0;
delay_ms(5000);
led = 1;
}
}
}
17行搞定其中一些是已经封装好的函数就直接拿来用了。
在配电箱里装个继电器,连接好对应的线。插上STC15w104w。打胶固定搞定收工。完美!
PS:买的时候尽量买15w别买15f,15w的电压范围比15f要宽很多3.3V也能工作,而且价格差不多。还有个神奇的东西叫赛元MCU和STC抢生意的。价格更低,功能更多。有时间的话可以玩玩嘻嘻。