博舍

基于单片机的智能灯控系统 家用智能声控系统怎么用

基于单片机的智能灯控系统

目录

实验四 简易路灯智能控制器

一、项目设计

1.了解光敏电阻电气特性。

2.学会在面包板上搭建光敏电阻电路测量环境光强度。

3.学会使用PCF8591数模转换模块将光敏电阻两端电压转换为数字信号。

4.学会使用1602液晶显示器显示字符串。

5.学会控制LED灯亮灭。

二、设计项目要求

目前大多数路灯开关均采用定时控制方法,设定统一的、固定的时间开关路灯(如:18:00开路灯,6:00关路灯),但因天气原因可能需要提前开关路灯,既能在亮度较暗时,及时开灯补充光照,也能在亮度较明亮时,提前关闭路灯,节约资源。请设计一款简易路灯智能控制器,自动采集环境光照强度,并在1602LCD上显示光强(0暗-255亮),在亮度低于指定值(100)时,自动打开路灯(用LED灯模拟),在亮度高于指定值(200)时自动关闭路灯。

1602液晶显示示例:

三、项目实现步骤

通过光敏电阻的使用来来测定外界灯光的强度,将光敏电阻测得的光强度作为判断LED灯开关的条件,根据需要设计适应的光强度条件,当测得的外界光强度满足实验要求的条件的时候,实现相应的开关灯操作。

方案实现步骤;

第一步:构思光敏电阻控制路灯的构思需要,初步设计思路;

第二步:在构思完成的前提下实现设计系统电路图,并按照需要连接各器件;

第三步:根据设计的电路编写程序来实现相应的控制功能;

第四步:将编写好的程序下载的连接灯控系统中,检验实验效果;

第五步:根据初步试验效果与实验要求作比较做出跟进一步的完善。

四、代码实现

//传感器数模转换Pcf859代码实现:#includesbitscl=P2^0;//I2C时钟sbitsda=P2^1;//I2C数据bitack;//应答标志位/*******************************************************************起动总线函数函数原型:voidStart_I2c();功能:启动I2C总线,即发送I2C起始条件.********************************************************************/voidStart_I2c(){sda=1;/*发送起始条件的数据信号*/_nop_();scl=1;_nop_();/*起始条件建立时间大于4.7us,延时*/_nop_();_nop_();_nop_();_nop_();sda=0;/*发送起始信号*/_nop_();/*起始条件锁定时间大于4μs*/_nop_();_nop_();_nop_();_nop_();scl=0;/*钳住I2C总线,准备发送或接收数据*/_nop_();_nop_();}/*******************************************************************结束总线函数函数原型:voidStop_I2c();功能:结束I2C总线,即发送I2C结束条件.********************************************************************/voidStop_I2c(){sda=0;/*发送结束条件的数据信号*/_nop_();/*发送结束条件的时钟信号*/scl=1;/*结束条件建立时间大于4μs*/_nop_();_nop_();_nop_();_nop_();_nop_();sda=1;/*发送I2C总线结束信号*/_nop_();_nop_();_nop_();_nop_();}/*******************************************************************字节数据发送函数函数原型:voidI2C_SendByte(u8c);功能:将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对此状态位进行操作.(不应答或非应答都使ack=0)发送数据正常,ack=1;ack=0表示被控器无应答或损坏。********************************************************************/voidI2C_SendByte(u8c){u8i;for(i=0;i

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇