编辑: xiong447385 2019-07-06

2 系统硬件设计 本系统硬件主要由 Arduino 单片机、红外模块、光敏电阻、LCD 模块、直流 电机模块组成. 2.1 元器件选择 元器件名称 型号 数量 单片机 Arduino MEGA2560 R3

1 直流电机 ROHS 28BYJ-48 5VDC

2 LCD 显示屏 LCD1602A-5V

1 Arduino 转接板 I2C 转LCD1602 接口

1 光敏电阻 GL5539

1 mini 遥控器 CR2025

1 红外接收器 LF1838

1 步进电机驱动板 ULN2003

1 电阻 1kΩ

1 杜邦线 公对公/母对母/公对母 若干 床头架 包围梯形

1 牙线 奈森克林

1 白线 40/2

1 表1:硬件清单

4 /

16 2.1.1 步进电机模块 该系统使用的电机如图 1b 所示,

5 线4相可以用普通 ULN2003 芯片 (图1c) 驱动.该步进电机空载耗电在 50mA 以下,带64 倍减速器,输出力矩比较大, 可以驱动重负载,适合拉动窗帘. 步进电机的原理是将电脉冲转化为角位移. 我们可以通过控制脉冲个数或脉 冲频率来控制角位移量.本系统采用的驱动方式如表

2 所示. 导线颜色

1 2

3 4

5 6

7 8

5 红

4 橙---3黄---2粉---1蓝---CCW 方向旋转(轴伸端视) 表2:直流步进电机驱动方式 图1a 步进电机整体模块 图1b 步进电机 图1c 驱动板 2.1.2 光敏电阻模块 本系统所采用的光敏电阻如图

2 所示.该模块直接将光敏电阻接在数字口, 读取模拟口电压值.当有光照时,光敏电阻的阻值会减小,反之,在暗处其阻值 会增加.

5 /

16 图2光敏电阻 图3a 红外遥控器 图3b 红外接收器 2.1.3 红外遥控/接收模块 红外遥控器(如图 3a)会发出一连串二进制脉冲码,为了避免无线传输过 程中的干扰, 通常都是将其调制在特定的载波频率上,再通过红外发射二极管发 射出去.红外接收装置(如图 3b)会滤去其他杂波,接收特定频率的信号并通 过调解过程将其还原成二进制脉冲码.红外接头有三个引脚,从左到右依次为 VOUT、GND 和VCC,依次接到 Arduino 实验板的数字接口、GND 和+5V. 该系统采用的遥控器的编码方式为 NEC 协议. NEC 协议具有

8 位地址位和

8 位命令位.为了确保其传输的可靠性,地址为和命令位会被传输两次.其具体的 工作原理,本文将不再赘述,可参考文献[1]中的介绍.键值需要经过测试确定, 其方法是利用下文中的 dump 子函数并结合串口监视器确定. 本系统目前所采用 的键位值如表

3 所示. 一排一 0x00FFA25D 一排二 0x00FF629D 一排三 0x00FFE21D 二排一 0x00FF22DD 二排二 0x00FF02FD 二排三 0x00FFC23D 三排一 0x00FFE01F 三排二 0x00FFA857 三排三 0x00FF906D 四排一 0x00FF6897 四排二 0x00FF9867 四排三 0x00FFB04F 五排一 0x00FF30CF 五排二 0x00FF18E7 五排三 0x00FF7A85 六排一 0x00FF10EF 六排二 0x00FF38C7 六排三 0x00FF5AA5 七排一 0x00FF42BD 七排二 0x00FF4AB5 七排三 0x00FF52AD 表3遥控器键值 2.1.4 LCD 显示模块 本系统采用的是

1602 液晶(如图 5a)显示文字.该LCD 的显示容量为

16 *2 个字符并且支持 I2C 协议.由于传统

8 位或

4 位连接法占用引脚较多,我们 在实物中使用了 LCD1602 的转接板(如图 5b) .使用该转接板只需四个引脚,将 转接板上的 GND、 VCC、 SDA 和SCL 分别连接到 Arduino MEGA2560 的GND、 5V、 数字口 20(SDA)和数字口 21(SCL) .

6 /

16 图5a LCD

1602 图5b 转接板 2.2 硬件等效电路设计图及原理图 图6:硬件电路设计图 图7:硬件电路原理图

7 /

16 3 系统软件设计 本系统选择使用 Arduino Software(IDE)编程和开发.软件分为主程序和三 个子函数:解码函数,手动模式函数和自动模式函数. 3.1 程序流程图

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题