1、 毕业设计(论文) 基于 AVR 单片机的 LED 自适应调光 传感系统 姓名: 学号: 学院: 专业: 指导老师: 日期 : 北京理工大学珠海学院 2011 届本科生毕业设计(论文) II 摘要 随着 LED 照明技术的发展,对 LED 自适应调光技术的需求更加强烈。本 文以 AVR 单片机中的 ATmeage16 作为控制器,利用基于 I2C( Inter Integrated Circuit)总线的光传感芯片TSL2561 采集室内环境光照度,采用脉宽调制 (Pulse Width Modulation-PWM)方式调节 LED 恒流驱动 IC( BP2808、 LM3404HV、 LM
2、3402HV 等可根据功率需要选择 ),进而调节 LED 的发光亮度,最终维持室内环境光照度在一个设定的水平。 同时利用红外人体感应模块采集室内人体信号,实现 LED 灯开启和关断的智能控制。再利用单总线技术的 DS18B20 温度传感器采集室内温度和 使用 LCD1602 液晶屏 实现 室内照度和温度的实时显示,再加 按键实现 LED 亮度的手动控制,最后使用串口通信实现与上位 PC 的实时 通信与控制。 本文 完成了 整套 系统的硬件设计和软件编程,重点介绍了 ATmeage16 通过 I2C 总线读取光传感器芯片 TSL2561 数据、传感器数据转换为实际的室内环境照度、 PWM 信号生
3、成 和 输出、 DS18B20 的通讯。 关键词: ATmeage16 TSl2561 PWM LED 调光 北京理工大学珠海学院 2011 届本科生毕业设计(论文) III ABSTRACT With the development of LED lighting technology, adaptive LED dimming technology for the needs of even more intense. In this paper, the ATmeage16 AVR microcontroller as a controller, based I2C (Inter Int
4、egrated Circuit) bus, light sensing chip TSL2561 acquisition indoor illumination。 Using pulse width modulation (Pulse Width Modulation-PWM) LED constant current drive mode regulator IC (BP2808, LM3404HV, LM3402HV so can the power to choose), then adjust the LEDs brightness, final light intensity of
5、the indoor environment to maintain a specified level. The human body using infrared sensor module also collected indoor body signal, LED lights turn on and off the intelligent control. Reuse of single-bus technology DS18B20 temperature sensor acquisition and use of the indoor temperature LCD1602 LCD
6、 indoor illumination and temperature to achieve real-time display, together to achieve LED brightness button manual control, Together to achieve LED brightness button manual control, and finally use the Serial Communication with the host PC for real-time communication and control. This complete pack
7、age of hardware and software design, focusing on the ATmeage16 through the I2C bus to read optical sensor chip TSL2561 data, sensor data is converted to the actual illumination of the indoor environment, PWM signal generation and output, DS18B20 communications. Key Words: ATmeage16 TSl2561 PWM LED d
8、imming 北京理工大学珠海学院 2011 届本科生毕业设计(论文) 1 目 录 摘要 . II ABSTRACT. III 前 言 . 2 1 主要功能及流程说明 . 3 1.1 主要功能 . 3 1.2 系统流程图 . 3 2 LED 自适应调光温度传感系统的硬件设计 . 4 2.1 AVR 单片机的硬件连接及介绍 . 4 2.2 TSL2561 光强传感器的硬件连接及介绍 . 5 2.3 DS18B20 温度传感器的硬件连接及介绍 . 6 2.4 PWM 波形的发生及恒流 IC 的输出 . 7 PWM 波形发生 . 7 恒流 ICBP2808 . 8 2.5 LCD1602 液晶显示的
9、链接及介绍 .11 2.6 红外人体感应模块 介绍 .14 2.7 串口通讯及外部控制中断 .16 3 LED 自适应调光温度传感系统的软件设计 .18 3.1 AVR 单片机内部中断、 I/O 设置及 PWM 发生 .18 3.2 TSL2561 的 I2C 通讯及照度的计算 .24 3.3 DS18B20 的单总线连接及温度转换 .30 3.4 LCD1602 的通讯及显示 .34 3.5 串口通讯的软件设计 .38 4 系统总体设计介绍 .44 4.1 系统性能特点说明 .44 4.2 系统总体电路图 .44 5 设计总结及心得体会 .45 参考文献 .46 附 录 .47 北京理工大学
10、珠海学院 2011 届本科生毕业设计(论文) 2 前 言 随着能源危机的加剧,高效的照明技术得到人们的广泛关注 LED 以其高效率、低功耗、低电压驱动、使用寿命长等优点,被越来越多的应用在各种照明场合,在可预见的将来可能完全取代传统的白炽灯、荧光灯照明,给照明产业带来革命性的变化。 LED 与白炽灯相比有一个显著的不同点, LED 的发光亮度与流过 LED 正向电流的大小基本上成正比例关系。利用它的这个特点,通过光传感器测量周围的环境亮度,根据测量值改变 LED 的发光亮度,实现维持周围环境亮度在某个水平,构建出让人们心情愉快的工作场合。这样不仅营造出具有恒定亮度的舒适环境,而且能够充分利用自
11、然照明,大大节约能源。因此,对 LED 自适应调光技术的研究显得格外地重要 。 北京理工大学珠海学院 2011 届本科生毕业设计(论文) 3 1 主要功能及流程说明 1.1 主要功能 本系统应用 ATmeage16 单片机作为总控制器,应用 TSL2561 照度芯片和 DS18B20 温度传感器对室内的照度和温度事实检测 ,通过 LCD1602 液晶对温度和照度实时显示。当 红外人体传感器检测到室内有人体信号且室内照度低于下限值时, LED 灯会自动亮起并通过调节 LED 灯的亮度使室内的照度保持在一个人眼较为舒适的范围内, 当人体信号消失时系统在延时一段时间后如未再次检测到人体信号 LED等
12、将自动关闭。 当室内照度达到系统设定上限时不管室内是否有人体信号, LED 灯将自动关闭。 同时通过外部按键和上位 PC 可对 LED 灯的开关和亮度实现调控。 1.2 系统流程图 系统启动 系统初始化 传感器数值读取 环境条件判断 PC 串口通信 外部按键 TSL2561 照度传感器 红外人体感应 DS18B20 温度传感器 LCD1602 显示 PWM 信号输出 BP2808 恒流 IC LED 灯 室内环境 人为控制 北京理工大学珠海学院 2011 届本科生毕业设计(论文) 4 2 LED 自适应调光温度传感系统的硬件设计 2.1 AVR 单片机的硬件连接及介绍 高性能、低功耗的 8 位
13、 AVR 微处理器 。 采用 先进的 RISC 结构 ,具有 131 条指令 且 大多数指令执行时间为单个时钟周期 , 32 个 8 位通用工作寄存器 , 全静态工作 。 工作于 16 MHz 时性能高达 16 MIPS。具有 只需两个时钟周期的硬件乘法器 , 非易失性程序和数据存储器 , 16K 字节的系统内可编程 Flash 擦写寿命 10,000 次 。 具有独立锁定位的可选 Boot 代码区 , 通过片上 Boot 程序实现系统内编程 。 真正的同时读写操作 , 512 字节的 EEPROM 擦写寿命 100,000 次 。 1K 字节的片内 SRAM 可以对锁定位进行编程以实现用户程
14、序的加密 。 JTAG 接口 ( 与 IEEE 1149.1 标准兼容 )符合 JTAG 标准的边界扫描功能 , 支持扩展的 片内调试功能 , 通过 JTAG 接口实现对 Flash、 EEPROM、熔丝位和锁定位的编程 。 AVR 单片机的外设特点 。 两个具有独立预分频器和比较器功能的 8 位定时器 / 计数器 , 一个具有预分频器、比较功能和捕捉功能的 16 位定时器 / 计数器 。 具有独立振荡器的实时计数器 RTC,配备 四通道 PWM 和 8 路10 位 ADC( 8 个单端通道 , TQFP 封装的 7 个差分通道 )。 2 个具有可编程增益( 1x, 10x, 或 200x)的
15、差分通道 。 面向字节的两线接口 , 两个可编程的串行 USART。 可工作于主机 / 从机模式的 SPI 串行接口 。具有独立片内振荡器的可编程看门狗定时器 。 片内模拟比较器 。 AVR 单片机具有特殊的处理器。具有 上电复位以及可编程的掉电检测 , 片内经过标定的 RC 振荡器 ,以及 片内 / 片外中断源 。并且具有 6 种睡眠模式 : 空闲模式、 ADC 噪声抑制模式、省电模式、掉电模式、 Standby 模式以及扩展的 Standby 模式 。AVR 单片机的 具有 32 个可编程的 I/O 口 。并有 40 引脚 PDIP 封装 , 44 引脚 TQFP 封装 , 与 44 引脚
16、 MLF 封装 。 AVR 基本电路的 硬件连接如图 1 所示。 图 1 北京理工大学珠海学院 2011 届本科生毕业设计(论文) 5 2.2 TSL2561 光强传感器的硬件连接及介绍 光传感器芯片 TSL2561 是一种可编程灵活配置的光照度数字转换芯片。如下图 2 所示,芯片内部集成有两个通道:通道 0 和通道 1,每个通道有一个光敏二极管。积分式 A/D 转换器对流过 光敏二极管的电流进行积分并转换为数字量,在转换结束后将转换结果存入芯片内部通道 0 和通道 1 各自的数据寄存器中,其它设备通过 I2C 总线读取数据寄存器中的数据并且经过公式计算后可得出可见光照度值。其中通道 0 是对
17、可见光和红外光敏感,而通道 1 是指对红外光敏感, 通道 1 的数值通过固定算法对对通道 0的数值作为红外光补偿。通过算 式得出的最终数值为可见光的实际照度值。但考虑到 LED 灯的结构为蓝光 LED 灯加黄光荧光粉最终混合为可见白光,色光中红光波长最为缺失。所以在此只读取通道 0 的读书作为最终输出值。 与 AVR 的硬件连接如图( 3)所示 。 图 3 ATmega16 与 TSL2561 硬件连接 北京理工大学珠海学院 2011 届本科生毕业设计(论文) 6 2.3 DS18B20 温度传 感 器的硬件连接及介绍 DS1820 数字温度计以 9 位数字量的形式反映器件的温度值。 DS18
18、20 通过一个单线接口发送或接收信息,因此在中央微处理器和 DS1820 之间仅需一条连接线(加上地线)。用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。因为每个 DS1820 都有一个独特的片序列号,所以多只DS1820 可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在HVAC 环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。图 1 的方框图示出了 DS1820 的主要部件。 DS1820 有三个主要数字部件: 1) 64 位激光 ROM, 2)温度传感器, 3)非易失性温度报警触发器 TH 和 TL。器件用如下方式从单线通
19、讯线 上汲取能量:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。 DS1820 也可用外部 5V 电源供电。 图 4 DS18B20 方框图 DS1820 依靠一个单线端口通讯。在单线端口条件下,必须先建立 ROM 操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面 5 个 ROM 操作命令之一: 1)读 ROM, 2)匹配 ROM,3)搜索 ROM, 4)跳过 ROM, 5)报警搜索。这些命令对每个器件的激光 ROM 部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控
20、制器指明有多少器件或是什么型号的器件。成功执行完一条 ROM 操作序列后,即可进行存储器和控制操作,控制器可以提供 6 条存储器和控制操作指令中的任一条。一条控制操作命令指示 DS1820 完成一次温度测量。测量结果放在 DS1820 的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器 TH 和TL 各由一个 EEPROM 字节构成。如果没有对 DS1820 使用报警搜索命令,这些寄存器可以作为一般用途的用户存储器使用。可以用一 条存储器操作命令对 TH 和 TL 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写 。 图
21、5 DS18B20 硬件连接图 北京理工大学珠海学院 2011 届本科生毕业设计(论文) 7 2.4 PWM 波形的 发生 及 恒流 IC 的 输出 PWM 波形发生 本系统的 PWM 采用 ATmega16 的 16 位定时计数器 T1 来产生 PWM 波形。由 PD4 管脚输出。 16 位的 T/C 可以实现精确的程序定时 ( 事件管理 )、波形产生和信号测量。其主要特点如下 真正的 16 位设计 ( 即允许 16 位的 PWM) 2 个独立的输出比较单元 双缓冲的输出比较寄存器 一个输入捕捉单元 输入捕捉噪声抑制器 比较匹配发生时清除寄存器 ( 自动重载 ) 无干扰脉冲,相位正确的 PW
22、M 可变的 PWM 周期 频率发生器 外部事件计数器 4 个独立的中断源 (TOV1、 OCF1A、 OCF1B 与 ICF1) ATmega16 的 16 位定时计数器 T1 具有多种工作模式,本 系统只采用了其中 相位 与频域 修正 PWM模式,因此在此只介绍定时计数器 T1 的相位修正 PWM 模式。 相位 与频域 修正 PWM 模式 相位与频率修正 PWM 模式 (WGM13:0 = 8 或 9) - 以下简称相频 修正 PWM 模式 - 可以产生高精度的、相位与频率都准确的 PWM 波形。与相位修正模式类似,相频修正 PWM 模式基于双斜坡操作。计时器重复地从 BOTTOM 计到 T
23、OP,然后又从 TOP 倒退回到 BOTTOM。在一般的比较输出模式下,当计时器往 TOP 计数时若 TCNT1 与 OCR1x 匹配, OC1x 将清零为低电平;而在计时器往 BOTTOM 计数时 TCNT1与 OCR1x 匹配, OC1x 将置位为高电平。工作于反向输出比较时则正好相反。与单斜坡操作相比,双斜坡操作可获得的最大频率要小。但其对称特性十分适合于电机控制。相频修正 PWM 模式与相位修正PWM 模式的主要区别在于 OCR1x 寄存器的更新时间,详见 Figure 47 与 Figure 48。相频修正 PWM 模式的 PWM 分辨率可由 ICR1 或 OCR1A 定义。最小分辨
24、率为 2 比特 (ICR1 或 OCR1A 设为 0x0003),最大分辨率为 16 位 (ICR1 或 OCR1A 设为 MAX)。 PWM 分辨率位数可用下式计算: RPCPWM= log( TOP+1)log2 工作于相频修正 PWM 模式时,计数器的数值一直累加到 ICR1 (WGM13:0 = 8) 或 OCR1A (WGM13:0 = 9),然后改变计数方向。在一个定时器时钟里 TCNT1 值等于 TOP 值。具体的 时序图为图 6。图中给出了当使用 OCR1A 或 ICR1 来定义 TOP 值时的相频修正 PWM 模式。图中柱状的 TCNT1 表示这是双边斜坡操作。方框图同时包含
25、了普通的 PWM 输出以及反向 PWM 输出。 TCNT1 斜坡上的短水平线表示 OCR1x 和 TCNT1 的匹配比较。比较匹配发生时, OC1x 中断标志将被置位。在OCR1x 寄存器通过双缓冲方式得到更新的同一个时钟周期里 T/C 溢出标志 TOV1 置位。若 TOP 由OCR1A 或 ICR1 定义,则当 TCNT1 达到 TOP 值时 OC1A 或 CF1 置位。这些中断标志位可用来在每次计数器达到 TOP 或 BOTTOM 时产生中断。改变 TOP 值时必须保证新的 TOP 值不小于所有比较寄存器的数值。否则 TCNT1 与 OCR1x 不会产生比较匹配。如图 6 所示,与相位修正模式形成对照的是,相频修正 PWM 模式生成的输出在所有的周期中均为对称信号。这是由于 OCR1x 在 BOTTOM 得到更新,上升与下降斜坡长度始终相等。因此输出脉冲为对称的,确保了频率是正确的。使用固定 TOP 值时最好使