门禁系统设计要求:
基于ATmega328(ATmega328数据手册)单片机设计,具有通话、振铃、摘机、通话、开锁功能,还要有键盘和显示电路。
门禁系统设计思路:
- 系统用到AD、UART、PWM、SPI,考虑成品的体积,采用arduino nano
- 语音采样使用驻极体麦克风,经200倍前置放大,再进行8位AD采样,采样率8kHz,可达到电话音质,满足需求
- 门禁系统通信的特点是多对一,距离10~100m,通信速率要满足语音通信、控制信号传输,因此采用485通信,通信速率512Kbps
- 语音播放使用8位PWM,功放芯片采用常见的LM386
- 显示屏采用Nokia5110,SPI通信
- 键盘采用10位ADC键盘,16个按键
- 开锁电路使用继电器实现
硬件设计分析:
1、Arduino Nano
主控直接采用arduino nano,由于485通信和下载程序共用0、1脚,因此要通过拨码开关切换0、1脚功能
2、电源电路
整个系统使用外部12v电源供电,用于驱动继电器和LM386,12v电源通过LM2940得到5v电源,Nokia5110显示屏需要3.3v供电,直接采用nano上的3.3v电源
3、ADC键盘电路
由于arduino接口较少,直接采用ADC键盘,一次挂载20个按键没有问题,每个分压电阻使用1kΩ,线性度非常不错。
4、485通信电路
使用了两片MAX485组成了全双工通信,实际测试,10m网线,2Mbps,完全不丢包,另外测试过2m,2Mbps的串口通信,也是完全不丢包
5、麦克风采样电路
语音采样,使用普通驻极体麦克风,经过LM358的200倍放大后,送入ADC
6、功放电路
功放直接采用常见的LM386典型电路,PWM信号经过积分电路,再送入LM386,为了提高音量,使用12v供电,实测效果不错,5v供电时,噪音非常大,稍微一大声就失真
7、开锁电路
开锁功能可以通过电磁锁实现,这里只用了继电器并留出了接线口,继电器电流也不小,保险起见使用了一个9014扩流,并反向并联一个二极管吸收反向电流
8、画好原理图之后就是排版画pcb了:
门禁系统设计结果:
经过不断的测试与完善,在12v供电情况下,语音通信清晰,声音洪亮,基本无噪音,可改变从机地址,范围为001~999,其他功能也基本实现了,如开门、交互界面等等。