欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    arduino 无线照明开关.docx

    • 资源ID:10063038       资源大小:597.70KB        全文页数:25页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    arduino 无线照明开关.docx

    1、arduino 无线照明开关作品名称:基于arduino的无线电源控制姓 名 赵庆波 聂浩南 余坦藏 学 院 物理与电子信息学院 专 业 电子信息科学类 基于arduino的无线电源控制摘要:电力电子技术与人们的工作、生活随着时代的高速发展关系越来越密切,无线传输也就成为了越来越重要的领域。为了开关电灯的方便,卧室照明灯通常用二个开关控制,一个装在房门旁边,另一个装在靠近床头的墙上。但装修时预埋的开关盒位置往往不够准确,到安床使用时发现,躺在床上人手够不到床头墙上的那个开关,还是觉得不顺心。解决此问题的一个较好的办法是装一个无线遥控开关,当然也可用红外遥控开关。但红外线是直线传播的,有方向性,

    2、传播路线上如有阻挡,就会影响使用。而这里的无线电传播,无特殊要求,没有方向限制,易穿过障碍物,可以隔墙遥控,用起来更加方便,所以本例中选用无线遥控方式。关键词:arduino;BTA41600b;热释感应;无线传输;多路控制引言随着社会飞速前进,用电设备与日俱增。但电力输配设施的老化和发展滞后,以及设计不良和供电不足等原因造成末端用户电压的过低,而线头用户则经常电压偏高,对用电设备特别是对电压要求严格的高新科技和精密设备,独如一颗不定时炸弹。市电系统作为公共电网,上面连接了成千上万各种各样的负载,其中一些较大的感性、容性、开关电源等负载不仅从电网中获得电能,还会反过来对电网本身造成影响,恶化电

    3、网或局部电网的供电品质,造成市电电压波形畸变或频率漂移。另外意外的自然和人为事故,如地震、雷击、输变电系统断路或短路,都会危害电力的正常供应,从而影响负载的正常工作。不稳定的电压会使设备造成致命伤害或误动作,影响生产,造成交货期延误、品质不稳定等多方面损失。同时加速设备的老化、影响使用寿命甚至烧毁配件,使业主面临需要维修的困扰或短期内就要更新设备,浪费资源;严重者甚至发生安全事故,造成不可估量的损失。所以使用稳压电源,对用电设备特别是对电压要求严格的高新科技和精密设备来说是必不可少的。数控直流稳压电源是一种常见的电子仪器,广泛的用于电子电路,教学实验和科学研究等领域。目前实用的直流稳压电源大部

    4、分是线性电源。利用分离器件组成,其体积大,功率低,可靠性差,操作使用不方便,自我保护功能不够,因而故障率高。随着电子科技的飞速发展,各种电子电器设备对稳压电源的性能要求日益提高,稳压电源不断朝着小型化,高效率,低成本,高可靠性,低电磁干扰,模块化和智能化发展。以单片机系统为核心而设计制造出来的新一代稳压电源不但电路简单,结构紧凑,价格低廉,性能卓越,而且单片机具有计算和控制功能,利用它对采样技术进行各种计算,从而可排除和减少由于骚扰信号和模拟电路因起的误差,大大提高稳压电源输出电压和输出电流精度,降低了对模拟电路的要求。智能稳压电源可利用单片机设置周密的保护检测系统,确保电源运行可靠。输出电压

    5、和限制电流采用数字显示,输入采用键盘方式,电源的外表美观,操作使用方便,具有较高的使用价值。本设计欲完成设计三组稳压电源,其中一组固定输出,另两组3V-15V可调的数字控制直流稳压电源,且可实现双电源同步调节或分别调节的要求。重点是在设计中利用单片机和数字电位器实现模拟电压的数字可调。难点是在实现双电源同步调节过程中设置参考地所带来的一系列问题,包括数字电位器供电问题和电压、电流采样问题。为实现设计要求且克服难点,在交流电经过变压器变压、整流滤波后,由三片LM2596实现一组固定输出5V,两组输出可调。由于在实现双电源同步调节中,两个可调端串联时选取中间座位参考地,导致尾部的可调端的地并不是真

    6、实的GND而是-15V。此时用光耦进行隔离,让-15V移到0V,就可解决以上说的问题。以下将详细讲解设计过程。一、 总系统设计1. 设计任务与要求(1) 基本要求1 用单片机无线控制房间内的各个电灯;2 8路控制8路照明灯;3 传输距离可达30米;4 为实现程序控制,预留MCU控制接口。(2) 发挥部分1 设置热释感应器;2 设置供电电压过低警报系统;2. 系统方案设计与论证本设计主要用来实现室内的照明灯无线控制,但通过单一的无线开关控制字还是不够便利,因此我们在设计电路上还添加了热释感应部分,在有人出现的的时候不用去找遥控,然后自动打开一些照明灯,这样整个设计就更加完备,实际使用也更加便捷。

    7、单片机信号处理热释感应开关信号输出信号控制电路开关无线传输单片机信号处理图 1总系统框图(1) 单片机控制部分常用的单片机主要有:51单片机、arduino单片机,根据这两种单片机的的各方面性能采用不同方案,分析各种方案的可取之处和缺点。方案一:使用arduino单片机Arduino,是一块基于开放源代码的USB接口Simple i/o接口板(包括12通道数字GPIO,4通道PWM输出,6-8通道10bit ADC输入通道),并且具有使用类似Java,C语言的IDE集成开发环境。优点:使用Arduino 单片机可以完全不需要了解其内部硬件结构和寄存器设置,软件语言仅仅需掌握少数几个指令,而且指

    8、令的可读性也强,稍微懂一点C语言即可编写程序,Arduino 及周边产品相对质廉价优,学习或创作成本低,重要一点是:烧录代码不需要烧录器,直接用USB线就可以完成下载。缺点:数字口数量较少,只有13个。方案二:51单片机51单片机属于比较传统的一款单片机优点:价格相对其他单片机便宜,I/O接口多,性能稳定。 缺点:运行速度很慢,(因为是CISC(集中指令)结构,而且芯片为了抗干扰采用了12分频的方法),功耗比较高,抗干扰能力也不是很强,所有的I/0口都是准双向口,I/0口的驱动能力弱。(但是AT89的灌电流比较大,大概有20mA左右)。 方案论证与选择:本设计方案只需用到8个数字端口,Ardu

    9、ino 单片机比较合适,51单片机端口太多没有作用,且本设计是无线控制,控制器的体积小比较好,Arduino 单片机的体积相比51单片机小的多,另外Arduino 单片机的运行速度也比较快,相比之下Arduino 单片机综合性能比较合适本设计,即选择方案二。(2) 无线传输部分 无线传输部分我们直接应用nRF24.L01无线传输模块。nRF24.L01是一款新型单片射频收发器件,工作于2.4GHz2.5GHzISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dB

    10、m的功率发射时,工作电流也只有9mA;接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置

    11、高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便再次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。接收数据时,首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高

    12、,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。图 2 nRF24L01应用原理框图(3) 显示部分 方案一:采用LCD显示采用液晶显示驱动电压高、功耗大、可靠性高、显示信息量大、无闪烁、对人体无危害、成本高。 方案二:LED灯显示LED灯驱动电压低,功耗小、可靠性高、显示信息量少、有闪烁、对人体无危害、成本低。 方案论证与选择:综上所述,基于该系统设计要求,采用方案二的方法,且使用红色LED灯作为显示部分。(4) 热释感应部分本系统考虑到更便捷控制照明,因此采用热释感应来自动打

    13、开照明灯,该传感器采用热释电材料极化随温度变化的特性探测红外辐射,采用双灵敏元互补方法抑制温度变化产生的干扰,提高了传感器的工作稳定性。且次传感器本身不发任何类型的辐射,器件功耗很小,隐蔽性好,价格低廉。(5) 低电警报部分 当给单片机供电的的电池,电压过低不能正常供电时,会把低电压信号从单片机A3输出口输出,经一个PNP三极管进行信号放大,然后通过蜂鸣器发出声音报警。 图 3低电警报系统框图(6) 开关控制输出部分 发射端开关信号输入如下,用八个独立自锁开关。图 4发射端开关信号输入原理框图输出端控制电路开关采用双向导通可控硅BTA41600b,当控制极有触发电压1.5V时候管子导通,管子工

    14、作电流是40A600V,应用电路图如下:图 5输出端控制电路开关图3. 总系统电路原理图图 9发射部分图 10接受部分二、 软件设计1. 设计思想(1) 单片机使用arduino mini pro328p选择理由是: 高性能、低功耗AVR 8位微控制器先进的RISC体系结构高耐力非易失性内存段微控制器的特殊功能上电复位和可编程布朗出检测内部校准的振荡器外部和内部中断源六个睡眠模式:空闲,ADC降噪、电源保存、关闭、待机状态,和待机扩展(2) 接收部分:通过arduino mini pro328p 传递发送命令给NRF24L01+ 无线模块,NRF24L01+ 通过传递规则,发送信息。(3) 接

    15、收部分:接受端的NRF24L01+接收到信息,并传递给arduino mini pro328p 进行处理,程序通过switch 语句判断传递过来的数字,根据相应的数字,作出相应的反应,点亮灯。2. 测试设备1 直流电压测试采用数字万用表,型号:Fluke/289,测试精度:0.01V;2 直流电流测试采用数字万用表,型号:Fluke/289,测试精度:0.01A;3 白炽灯8个,型号:220V/100W,4 220V电源.3. 数据测试与分析(1) 基本要求测试:(1) 单片机可以无线控制房间内的各个电灯;(2) 8路开关控制8路照明灯;(3) 传输距离可达50米以上;(4) 用程序控制,留M

    16、CU控制接口。(2) 发挥部分测试:设置了热释感应器,当人进入感应区域会自动打开一部分照明灯,设有供电电压过低警报系统,给单片机供电的电池电压不足的时候会自动报警,提示我们给电池充电。4. 结果分析由上述测试结果可知,基本的设计功能都能够实现,但此设计中整个系统的功耗太大,如果投入实际应用还需把功耗降低,显示部分也不够完备,如果用LCD12864显示,就可以把系统的功能进一步强化,可以设置上室内环境的检测,让液晶显示屏幕显示更多的信息。三、 设计总结经过一个星期的努力,我们已经完成了基本要求,实现了多路无线照明灯控制,而且发挥部分也基本达到要求了。 经过此次训练,我们加深了对无线控制的学习,深

    17、刻认识到无线控制不仅需要对硬件有较深的理解,还要对软件有很好的掌握。四、 附录附录1:实物图原理图接受模块:发送模块:PCB图接受模块:发送模块:附录2:程序/ 接受模块/MISO - D12 / * MOSI -D11 / * SCK -D13 /* CE -D10 /* CSN -D9#include Wire.h /24L01库文件#include Mirf.h#include nRF24L01.h#include MirfHardwareSpiDriver.hboolean state1 = false ;boolean state2 = false ;boolean state3 =

    18、 false ;boolean state4 = false ;boolean state5 = false ;boolean state6 = false ;boolean state7 = false ;boolean state8 = false ;char temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8;int data;unsigned int num;const int led1 = 1; const int led2 = 2; const int led3 = 3; const int led4 = 4; const

    19、int led5 = 5; const int led6 = 6; const int led7 = 7; const int led8 = 8; void setup() pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); pinMode(led7, OUTPUT); pinMode(led8, OUTPUT); digitalWrite(led1,HIGH); digi

    20、talWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); digitalWrite(led6,HIGH); digitalWrite(led7,HIGH); digitalWrite(led8,HIGH); Mirf.spi = &MirfHardwareSpi; /加载24L01 SPI Mirf.init(); Mirf.setRADDR(byte *)serv1);/接收到接收地址 Mirf.payload = sizeof(unsigned int);

    21、/接收类型(整数) / mirf.channel = (); /Mirf.configRegister(EN_AA,0x00); /Disable auto ack Mirf.config(); void loop() if(Mirf.dataReady() /如果接收到数据则执行 Mirf.getData(byte *) & data); /接收数据 num=data; switch (num) case 1: state1 = !state1; temp1 = state1; if (temp1 = true) digitalWrite(led1,LOW); break; if (temp

    22、1 = false) digitalWrite(led1, HIGH); break; case 2: state2 = !state2; temp2 = state2; if (state2 = true) digitalWrite(led2,LOW);break; if (temp2 = false ) digitalWrite(led2, HIGH); break; case 3: state3 = !state3; temp3 = state3; if (temp3 = true) digitalWrite(led3,LOW); break; if (temp3 = false ) d

    23、igitalWrite(led3, HIGH); break; case 4 : state4 = !state4; temp4 = state4; if (temp4 = true) digitalWrite(led4,LOW); break; if (temp4 = false ) digitalWrite(led4, HIGH); break; case 5: state5 = !state5; temp5 = state5; if (temp5 = true) digitalWrite(led5,LOW); break; if (temp5 = false ) digitalWrite

    24、(led5, HIGH); break; case 6: state6 = !state6; temp6 = state6; if (temp6 = true) digitalWrite(led6,LOW); break; if (temp6 = false ) digitalWrite(led6, HIGH); break; case 7: state7 = !state7; temp7 = state7; if (temp7 = true) digitalWrite(led7,LOW); break; if (temp7 = false ) digitalWrite(led7, HIGH)

    25、; break; case 8: state8 = !state8; temp8 = state8; if (temp8 = true) digitalWrite(led8,LOW); break; if (temp8 = false) digitalWrite(led8, HIGH); break; default : break; /接受模块#include SPI.h /24L01库文件#include Mirf.h#include nRF24L01.h#include MirfHardwareSpiDriver.h / 暫存執行狀態 int key1, key2, key3, key4

    26、, key5, key6, key7, key8,i;/int ledstat8 = 1, 2, 3, 4, 5, 6, 7, 8;void setup() digitalWrite(0,LOW); pinMode (2,OUTPUT); pinMode (3,OUTPUT); pinMode (4,OUTPUT); pinMode (5,OUTPUT); pinMode (6,OUTPUT); pinMode (7,OUTPUT); pinMode (8,OUTPUT); / Serial.begin(9600); Mirf.spi = &MirfHardwareSpi; /加载24L01

    27、SPI Mirf.init(); /开始 /Mirf.setRADDR(byte *)clie1); Mirf.setTADDR(byte *)serv1);/发送到接收地址 Mirf.payload = sizeof(int); /发送类型(整数) Mirf.config(); /发送通道? Serial.println(Beginning . ); void loop() /* for (i=1; i=8; i+) if (digitalRead(i) = HIGH) delay (500); if (digitalRead(i) = LOW) ledstati-1 = (!ledstat

    28、i-1); */ if (digitalRead(1) = HIGH) delay (500); if (digitalRead(1) = LOW) key1 = 1; Mirf.send(byte *) & key1); /发送X向电平 while(Mirf.isSending() /等待或继续发送? /Serial.println (Finshed sending high); delay(10); if (digitalRead(2) = HIGH) delay (500); if (digitalRead(2) = LOW) key2 = 2; Mirf.send(byte *) &

    29、key2); /发送X向电平 while(Mirf.isSending() /等待或继续发送? / Serial.println (Finshed sending high); delay(10); if (digitalRead(3) = HIGH) delay (500); if (digitalRead(3) = LOW) key3 = 3; Mirf.send(byte *) & key3 ); /发送X向电平 while(Mirf.isSending() /等待或继续发送? / Serial.println (Finshed sending high); delay(10); if (digitalRead(4) = HIGH) delay (500); if (digitalRead(4) = LOW) key4 = 4; Mirf.send(byte *) & key4); /发送X向电平 while(Mirf.isSending() /等待或继续发送? / Serial.println (Finshed sending high); delay(10); if (digitalRead(5) = HIG


    注意事项

    本文(arduino 无线照明开关.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开