本系统是利用触摸屏控制的可调颜色的照明灯具。灯源为大功率超高亮三基色发光二极管组成。本设计最大的亮点是触摸屏上所指示的颜色与实际灯照出的颜色一致。到通过c语言程序对单片机的PWM 功能进行控制实现相应的坐标变换使灯具实现调色调亮的效果,为使用者提供一个随心调节室内气氛的良好工具。
  一、控制硬件总体设计
  系统的总体框图如图1 所示。系统可有输入,输出,控制三部分组成,当触摸屏被按下触摸屏芯片读取触摸屏上X 轴与Y 轴的值,然后通过SPI 协议传送到控制器,控制器负责信号的处理,把处理完毕的信号以PWM 方式输出驱动LED——IRF1407。
  图1 系统总体框图
  二、触摸屏的使用
  本系统选择电阻式触摸屏,它将矩形区域中触摸点(X,Y) 的物理位置转换为代表X 坐标和Y 坐标的电压其触摸屏结构如图2 所示。图3显示了四线触摸屏在两层相接触时的简化模型。对于四线触摸屏,最理想的连接方法是将偏置为VREF 的总线接ADC 的正参考输入端,并将设置为0V 的总线接ADC 的负参考输入端。
  图2 电阻触摸屏结构。
  图3 电阻触摸屏简化模型。
  三、接口电路设计
  1. 控制器与触摸屏连接
  本系统采用美国TI 公司生产的ADS7843,该芯片内置12 位AD 转换、低导通电阻模拟开关的SPI 总线接口触摸屏控制。供电电压为2.7 ~ 5.25V,参考电压VREF 为1V~+VCC,转换电压范围为0 ~ VREF,控制器可 通过内置的SPI 输出口MOSI、MISO、SCK 与触摸屏芯片进行连接,如图4 所示。
  图4 单片机与触摸屏接口电路图。
  2. LED驱动电路
  控制器输出PWM 波形作为驱动电路的驱动信号,三极管Q1 作为斩波器件。当驱动信号为高电平时三极管处于截止状态,LED 不亮;当输入信号为低电平三极管处于导通状态,LED 点亮。红色LED 的驱动电路如图5 所示,绿色与蓝色LED 的驱动电路的结构与红色的相同,单片机的PB7 端为绿色LED 的驱动信号,PD4 为蓝色LED 的驱动信号。
  图5 红色LED的驱动电路图。
  四、系统的程序设计
  1.系统总流程图
  系统硬件可以分为输入、控制、输出部分,其中控制部分是连接输入、输出。单片机程序决定输入如何影响输出,输出如何响应输入,其具体框图如图6 所示。单片机对ADS7843 进行读取后对数据进行坐标变换,最后把处理的值输出驱动LED.
  图6 系统软件流程图。
  2.触摸屏坐标读取
  所谓的触摸点坐标是指当触摸屏被按下时触摸芯片读出的X 轴与Y 轴的数值。触摸坐标的读取时非常关键的,它是触摸屏使用过程中最重要的环节,若触摸点坐标有误,将导致单片机错误处理。首先使能ADS7843,然后向ADS7843 写入测量X 坐标的控制字,延时若干毫秒后,读取ADS7843 的转换数据。读取的数据即X 的坐标值;再把测量Y 坐标控制字写入ADS7843,延时若干毫秒后,读取ADS7843 的转换数据,就得到了Y 坐标的值,然后禁止ADS7843.这样既完成了一次读取坐标值的过程。其具体流程如图7所示。
  图7 ADS7843读取框图
  3.系统坐标校准处理
  由于任意两个触摸屏上的点密度都不可能完全一致,所以要求在使用触摸屏之前,必须进行校准。校准方式有两点校准,三点校准,四点校准等。其中,校准的点数越多,触摸屏数据越精确,校准也越繁琐。本系统使用两点校准的方法对触摸屏进行校准。
  (1) 先分别测试触摸屏左下角及右上角的坐标(ads7843_xmin,ads7843_ymin);(ads7843_xmax,ads7843_ymax);
  (2) 计算水平方向的比率(ads7843_xts)和垂直方向的比率(ads7843_yts);
  (3)假设液晶屏中的当前点是液晶屏坐标(X,Y):
  当前点的触摸屏的X 坐标=X× ads7843_xts+ ads7843_xmin ;
  当前点的触摸屏的Y 坐标=Y× ads7843_yts+ ads7843_ymin ;
  系统执行校准程序后把触摸屏左下角, 右下角的坐标值与水平方向的比率存放如单片机EEPROM 中,每当系统重新启动时调用对应的数值有于对触摸位置的判别。
  4.控制器SPI通讯
  控制器ATmega48内部集成SPI通讯所需的软硬件功能,主机和从机之间的SPI 连接如图8所示。系统包括两个移位寄存器和一个主机时钟发生器,通过将从机的 SS引脚拉低,主机启动一次通讯过程。主机和从机将需要发送的数据放入相应的移位寄存器。主机在SCK引脚上产生时钟脉冲以交换数据。主机的数据从主机的MOSI移出,从从机的MOSI移入;从机的数据从从机的MISO移出,从主机的MISO移入。主机通过将从机的SS拉高实现与从机的同步。
  图8 控制器SPI通讯框图
  A D S 7 8 4 3 读写时序如图9 所示。由此可见ADS7843 SPI接口的一次完整操作需要3×8=24个DCLK时钟周期,前8个脉冲接收8位的命令,并在第6个脉冲的上升沿开始A/D转换器进入采样阶段,从第9个脉冲开始进入转换阶段,输出12位采样值,转换结束进入空闲阶段。直到24个DCLK结束,CS置高电平,一次测量结束。
  图9 单端模式的数据读写
  5.控制器PWM输出
  系统使用了控制器快速PWM 模式对驱动控制,当系统采用8MHz 晶振频率是快速PWM 模式频率最大值为31.25KHz.计数器从BOTTOM计到MAX,然后立即回到BOTTOM 重新开始。
  对于普通的比较输出模式,输出比较引脚OCRn在TCNTn 与OCRn 匹配时清零, 在BOTTOM时置位;对于反向比较输出模式,OCRn 的动作正好相反。具体的时序图如图10 所示。图中柱状的TCNTn 表示这是单边斜坡操作。方框图同时包含了普通的PWM 输出以及方向PWM 输出。
  TCNTn 斜坡上的短水平线表示OCRn 和TCNTn的比较匹配。产生PWM 波形的机理是OCRn 寄存器在OCRnX 与TCNTn 匹配时置位( 或清零),以及在计数器清零( 从TOP 变为BOTTOM)的那一个定时器时钟周期清零( 或置位)。输出的PWM 频率可以通过如下公式计算得到:
  变量N 代表分频因子(1、8、64、256 或1024)。
  五、结论
  多彩LED照明系统是一个极具开发前景的课题,随着国家对大功率LED的进一步推广LED的造价会继续下降,LED灯具的普及将会很快到来。
  LED在控制电路及控制方式的简易与颜色的多样性使其在多彩照明方面具有极大的发展,多彩LED只要配以简单的控制方可发出不同的颜色,颜色控制设备的多样性可供用户选择。无论如何LED 的上述特点都是其成为多彩照明中的光源首选,使用LED能为我们未来的生活带来缤纷的色彩。

基于触摸屏的LED驱动电路设计相关推荐

  1. 内核自带的基于GPIO的LED驱动学习(一)

    为什么学习内核自带的LED驱动? 前面已经学习过了基于纯字符设备的LED驱动,也学习过了基于平台驱动的LED驱动,但是感觉都是按照教程在生搬硬套,到底我们写出来的驱动能不能拿得上台面,是否能在实际的生 ...

  2. 内核自带的基于GPIO的LED驱动学习(三)

    上篇文章讲到了gpio_leds_create函数(),其定义位于drivers/leds/leds-gpio.c,如下: static struct gpio_leds_priv *gpio_led ...

  3. 内核自带的基于GPIO的LED驱动学习(二)

    2)分析平台驱动的probe函数 好,既然这个LED驱动使用的是平台驱动框架,当设备和驱动匹配上之后,就会执行指定的probe函数,那接下来的工作就转移到分析对应的probe函数了.为了直观,我把pr ...

  4. 基于exynos4412的led驱动编程

    本文基于华清4412开发板,讲解如何从零开始编写led驱动程序和测试程序.首先介绍一下该4412开发板的led硬件原理图. 从原理图上我们可以看出,让led点亮的条件是往对应端口送高电平,熄灭的条件是 ...

  5. 基于RK3399的LED驱动开发

    1.添加设备树 在设备树 arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts 中添加 gpio-led{status = "okay& ...

  6. 三极管发射极偏置原理应用于LED驱动电路的分析

    图示为一个应用于实际的基于NPN三极管发射极偏置的LED驱动电路设计. 首先,说明一下所谓的三极管发射极偏置,即是让三极管有一个固定的发射极电流Ic,是属于共发射极电路(CE)的一种.该电路常见的应用 ...

  7. 基于单片机的LED自适应调光系统的设计与实现 - 调光电路图

    电路图简介: 本文主要介绍了基于单片机的LED自适应调光系统的设计与实现.LED自适应调光系统是一种典型的绿色照明方式,与传统照明相比,具有智能.节能.环保.寿命长.安全可靠等这些优点,这是代表着照明 ...

  8. 驱动框架5——基于驱动框架写led驱动

    以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 五.基于驱动框架写led驱动1 1.分析 (1)参考哪里?  drivers/leds/leds-s3c24xx. ...

  9. 不写一行代码(一):实现安卓基于GPIO的LED设备驱动

    文章目录 系列文章 一.前言 二.准备工作 2.1 内核版本 2.2 内核文档:bindings->leds 2.3 文档解析: leds-gpio.txt 三.编写DTS 3.1 查原理图,挑 ...

最新文章

  1. 关于p标签的嵌套问题
  2. iPhone 6 屏幕揭秘
  3. CODE FESTIVAL 2017 qual B
  4. 初学 Delphi 嵌入汇编[1] - 汇编语言与机器语言
  5. IBM 推出 Bluemix :Swift 将支持服务器端开发
  6. STM32开发 -- Ublox GPS之设置PUBX
  7. [原创] GSM/GPRS 以及CDMA区分以及相关模块选型
  8. MSP432 库函数实现 PID 电机调角度、调速
  9. Android官方开发文档Training系列课程中文版:动画视图之应用场景
  10. windows 打开exe传参_“以管理员身份运行”,这个打开软件时经常遇到的问题,有何含义...
  11. 【中台实践】华为大数据中台架构分享.pdf
  12. 2万字总结《MybatisPlus—为简化开发而生》
  13. java查看堆内对象_如何查看一个对象占用堆内存的大小
  14. ubuntu下vlc-android编译
  15. 数据新闻周报:阿尔法狗将挑战德州扑克
  16. 算法设计与分析基础 第四章谜题
  17. linux中括号 美元符号怎么打,键盘输入美元符号
  18. 如何用计算机克数和斤换算,克换算斤计算器(克转两计算器)
  19. ASIC开发流程介绍
  20. 不支持16位应用程序,%1和64位电脑不兼容问题

热门文章

  1. win10分辨率设置_Win10系统开启安全模式简介
  2. PHP是脚本语言 因此不能通过浏览器运行,SQL_基于ASP技术的Web数据库应用开发
  3. 清华计算机系学生学习方法,清华学霸的“100条学习建议”,总有适合自己的方法!...
  4. java之单例模式祥解
  5. 高等数学常用的泰勒级数
  6. Mysql8 CentOS7 Compressed TAR Archive安装
  7. 【云开发】小程序端操作数据库详解
  8. 小程序云开发获取不到数据库的记录
  9. DPDK的基本原理、学习路线总结
  10. 项目解析jsx文件_Rax 转小程序链路原理解析(一)