基于单片机的红外发射器遥控彩灯_第1页
基于单片机的红外发射器遥控彩灯_第2页
基于单片机的红外发射器遥控彩灯_第3页
基于单片机的红外发射器遥控彩灯_第4页
基于单片机的红外发射器遥控彩灯_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、哈尔滨理工大学 测控技术与通信工程学院 通信工程系哈尔滨理工大学学 年 设 计 i 姓 名: 谷允捷 班 级: 通信13-1 学 号: 1305030105 评阅教师: 成 绩: 说 明: 2016年 1月 8日内 容: 学习使用arduino系统,使用atmega328p组成的arduino系统实现三色led灯的变色,继电器通断,蜂鸣器鸣响,温度采集,光强采集等动作,对实习成绩欲获优秀者,使系统实现红外遥控编码,驱动红外二极管,控制任意色led灯的变色开关等动作。成绩标准: 1.优秀:(1)报告完整清晰。 (2)能够良好的完成对红外任意色led灯的变 色开关等多种动作。 (3)答辩考核回答基

2、本正确。 2.良好:(1)报告基本完整。 (2)能够基本完成对红外任意色led灯的控制。 (3)答辩考核回答部分正确。 3.中、及格:(1)报告基本完整。 (2)能够基本将arduino系统中三个以上 功能配合运行。 (3)答辩考核回答部分正确。 4.不及格:(1)多次无假条缺勤。 (2)无报告,不参加考核。 (3)报告及实验演示效果严重雷同。 (4)实验无现象。(5) 答辩考核不合格。 设计要求1.设计目的运用arduino微云电子开发板进行红外遥控,代替彩灯遥控器按键功能,能够实现遥控器上彩灯的切换以及灯的亮灭。2.设计背景本次学年设计是基于arduino的红外模块的应用之一,红外遥控是一

3、种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。发射机一般由指令键(或操作杆)、指令编码系统、调制电路、驱动电路、发射电路等几部分组成。当按下指令键或推动操作杆时,指令编码电路产生所需的指令编码信号,指令编码信号对载波进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定的指令编码信号。3. 设计内容 对arduino进行较为全面的了解,先进行简单模块的开发利用,了解开发板的基本硬件架构,以及开发板的各个硬件元件之间的主从或者通信的关系。从而通过对开发板的较高级应用打下坚实的

4、基础。全面了解红外接收,红外发射模块,并使用单片机代替遥控器,对彩灯进行遥控。将课堂上学到的理论知识与实际应用结合起来,对电子电路、 电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、 相关仪器设备的使用技能等方面得到较全面的锻炼和提高。在使用时应该注意以下几点,对于 arduino 部分的应用, 如果需要下载程序或者进行串口监控的时候, 需 要将 2*20 端子排的 rxu-txa、 txu-rxa 使用跳线帽连接起来,即使用 arduino 的 ide 进行下载程序之前, 需要将 rxu-txa、 txu-rxa 四个排针端子使用跳线帽 短路连接起来, 然后使用手

5、机线连接开发板和电脑, 同时电脑需要安装 ch340g 的驱动, 即常见的 arduino 串口驱动。4.设计器材 pc、keil 软件、st-link 驱动程序、单片机学习板、遥控灯,遥控灯遥控器、数字示 波器、st-link 仿真器、电源线、杜邦线若干 遥控灯与遥控器配合使用,能够实现灯亮、灯灭、亮度增强、亮度减弱、r(红光) 、g(绿光) 、b(蓝光) 、w(白光) 、flash(闪烁) 、smooth(渐变) ,以及各种颜色 光的功能。三关键程序及其注释#define add 0x00 /宏定义,用户码是不变的,所以可以在宏定义中将他定义为addint ir_led = 2; /接ar

6、duino 2号引脚 ,2号引脚是学习板连接红外发射贴片的引脚void setup() 初始化设置,本函数只执行一次 pinmode(ir_led, output);将2号引脚写成输出形式 void loop() uint8_t dat,temp=0xc8; 定义八位存储变量,dat与temp均为八位2进制变量,注意可在前面加上0x表示 16进制书写形式 send38khz square (280,1);/发送9ms的起始码 ,本起始码是38khz载波,持续时间是9ms,通过示波器 调整,9ms需要连续280次发送。 send38khz square (140,0);/发送4.5ms的结果码,

7、持续时间是4.5ms,通过示波器 调整,4.5ms需要连续140次发送。 sendcode(add);/用户识别码这里调用了 ir_sendcode(uint8_t x)函数 dat=add; sendcode(dat);/用户识别码反码,该码是对用户码的取反 sendcode(temp);/操作码 dat=temp; sendcode(dat);/操作码反码 send38khz square (21,1);/发送结束码 持续时间为560ms的载波信号 delay(200); void send38khzsquare(int x,int y) /产生38khz红外脉冲 for(int i=0;

8、ix;i+)/通过示波器调整发现该函数运行15次循环时间为386us,也就是1次为25.7ms这样,也就实现了38khz码的发送。 if(y=1) digitalwrite(ir_led,1); delaymicroseconds(9); digitalwrite(ir_led,0); delaymicroseconds(9); /当输出为1时,根据nec协议要发送载波,38khz,经过示波器连续调整发现调整延时时间为9时为实现26us最佳时间。同样,该值可以取10,11,甚至12,但大于11时表见极其不灵敏。 else digitalwrite(ir_led,0); delaymicrose

9、conds(20); 当输出为0时,根据nec协议要发送载波,38khz,经过示波器连续调整发现调整延时时间为20时为实现26us最佳时间。同样,该值可以取21,22.但大于23后变现极其不灵敏。 void sendcode(uint8_t x) /发送8位字符函数,通过此函数发送用户码,操作码及其反码。 for(int i=0;i8;i+)/ 8次循环逐位比较 if(x&0x80)=0x00)判断每位数字是否为0 ,当是0时进行以下操作 send38khz square (23,1);/560ms载波 send38khz square (21,0);/560ms低电平 这两句表示发送0码,

10、else send38khz square (23,1);/560ms载波 send38khz square (64,0);/1680ms低电平 这两句表示发送1码。 x=x,高8位用户识别码(9ms-18ms), 8 位操作码(9ms18ms)和这 8 位操作码反码( 9ms18ms),共 32 位的“0”、“1” 遥控码组成,因此, 只要了解遥控器编码标准, 就可接收、 解调红外信号, 然后编写程序由单片机解码。编码采用脉时调制方式(ptm)。遥控码的“0”和“1”二进制“0”:用脉宽为0.56ms,间隔为0.56ms,周期为 1.12ms 的组合表示; 二进制的“1”:以脉宽为 0.56

11、、间隔 1.68ms、周期为 2.24ms 的组合表示。接收器输出的信号与发射器的信号正好反向。 上述“0” 和“1” 组成的 32 位二进制码经 38khz 的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射。 (二)38khz方波生成方式1.计算周期38khz方波是通过延时函数构造出来的,而并不是由单片机的定时器分频出来的,这点需要注意,在一般arduino板上,红外led贴片会被镶嵌在第三脚上,但是在我们的学习板上,它镶在2号脚,而2号脚是不带pwm输出引脚,也就是说我们如法通过设定定时器的方法来进行在2号脚输出方波。只能通过延时函数来

12、构造。通过计算38khz方波周期是26us,则高低电平时间各位13us,则在延时函数中,我们把2号引脚置高一段时间,再置低一段时间,且都是微秒级别则会构成方波,但需要注意的是,不是简简单单的将引脚置高延时13微秒,再讲引脚置低延时13微秒。任何计算机在运行过程中都会有一定误差,单片机在低电平到高电平跳变需要一定时间,执行每一条语句也需要一定时间,比如,学习板上12mhz晶振,则每条语句执行所需要的时间是1us, 这就说明在设定延时函数时要进行微调。在此,我们选择delaymicroseconds(9)或10,11,均可作为能使灯接收到信号逻辑“1”的最佳跳变延时时间。同样,逻辑“0”电平不需要

13、跳变,我们可以选择delaymicroseconds(20),21,22,作为能使灯接收到信号的最佳延时时间。2连接方式通过循环函数可以将一个个高低电平连接起来,这样就构成了连续不断的38khz方波,560的高电平大约由21个高电平构成,所以循环次数可以写入21,22,或23,再发送22次低电平这构成了逻辑“0”,同样,先发送21个高电平再发送64个低电平可构成逻辑“0”。3字符发送方式 字符可以通过二进制的方式输入,但是在此我们为了避免书写错误,我们可以通过把字符写成0x16进制形式,而且根据所给资料,我们可知用户码是00000000而用户反码是11111111,所以在开始进行宏定义是,ad

14、d=0x00,所以在改变发射带码时,我们只需要改变用户码就可以了五具体使用到的芯片: (1)ch340通信硬件电路低端的单片机是不支持 usb 的, 只有串口, 所以 ch340 芯片的作用就是连接了单片机和上位机, 以完成通信。usb 接口上的 dm 和 dp 是通信的两个 接 口。uart-usb-dp 连 接 到 usb 总 线 的 d+ 数 据 线, uart-usb-dm 连接到 usb 总线的 d-数据线,它们是 ch340 芯片(usb 转串口芯片) 的输入。 (2)电源供电电路asm1117usb串口提供5v电源,asm1117 是用于交换式电源 5v 至 3.3v 的线性稳压

15、器。通过此电路可以将 5v 的电源电压转换成 3.3v。在本电路中使用3.3v的电压对stm8 vdd引脚供电,并且在以后使用的各种芯片上也都是有3.3v电压供电的(3)反相器电路uln2003auln2003a是一个7路反向器电路,即当输入端为高电平时uln2003a输出端为低电平,当输入端为低电平时uln2003a输出端为高电平。在本电路中,我们用到的芯片被焊接在u7处,通过protel99观察pcb板结构,我们可以了解到,红外灯电路是通过芯片引脚连接到5脚上。也就通过该芯片的12脚输出到红外发射灯处。(4)arduino atmga328芯片本次设计使用的芯片为atmga328,3.3v

16、供电, 主频12mhz,主要用来提供ptm调制方波,或者使用延时函数提供方波。本次试验把2脚作为输出引脚,也就是方波信号由2引脚输出。其它电路请参照电路原理图六实习心得1这次课程设计中,我首次接触到arduino单片机,并能通过芯片功能图准确地判断哪个引脚可以执行那个功能, 有些引脚的输出功能是不相同的, 比如说3,11,9,5等可以带有定时器输出功能,然而其他引脚多数不具备这个功能,所以当需要用到这些功能时,一定要注意把这些引脚连接到应该的位置上。2学会了如何通过pcb电气连接看各个引脚的位置,比如说,红外引脚连接在了2号脚上,并且通过反相器输出。闪灯引脚是13号,可以根据pcb图看出他的位

17、置具体在哪里。3.学会了区分数字引脚和模拟引脚,有些引脚的功能可以通过digitalwrite来书写,而有些却可以通过analongwrite来书写,前者只能把引脚置高置低,而后者却可以把它按照模拟引脚去写,使电压呈现连续变化,用于做呼吸灯等实验。4.学会一种通信协议nec协议,它是建立在38khz方波为载波的情况下传输代码的方式,采用调制方式为ptm调制而非pwm调制,且发送过程一定要遵守起始码,用户码,用户反码,操作码,操作反码,结束码的方式进行书写,以38khz的方式输出是为了提高发射功率5.学会了如何使用protel软件对电路图进行处理6.认识到了理论与实际误差之间的关系,理论上延时1

18、3ms,然而在实际中必须要考虑机器周期,考虑电平上升时间,同时要考虑芯片温度偏移因数导致时间误差,而且使用时间越长,误差越大,越容易出现时间上的缩进或增长。7学会了红外解码。虽然在本次设计中没有涉及到解码程序部分,但是在灯内储存了一个红外接收管,和一个专门用来处理接受信息用的芯片,它将收到的信息吗译码即可得到相应的灯光颜色。 附录按键上的所有密码:a0 10100000 1,1变亮20 00100000 1,2变暗60 01100000 1,3offe0 11100000 1,4 on90 10010000 2,1变红50 01010000 2,3蓝色10 00010000 2,2 绿d0 11010000 2,4白色b0 10110000 3,1橙30 00

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论