完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
话说此次实验说用到的Colordunio RGB是一个专门为RGB全彩点阵设计的一个Arduino 控制板模块,此模块除了能独立给RGB点阵驱动外,也是可以当作一个Arduino的控制板来使用的哦。非常的方便和实用,板载的芯片是ATmega 328的芯片,板子上面也引出了ISP接口,可以随时给328芯片烧写bootloader。目前看到的缺点是不想其他Arduino Uno 板子一样,没有引出了相应的I/0口出来,只是引出了一些IIC接口和供电接口。后续有时间会开发一个带I/0口的板子,使购买者买了这个板子就不需要买多一块Uno板子或者是MEGA 2560啥的板子了。希望大家多多支持我们!谢谢!
需要讲解这个Colordunio ,必须分两个步骤来讲。 第一, 是讲解RGB点阵的使用与工作原理。 先来看一下我们使用所需要的RGB点阵: RGB简单的说,就是R、G、B(红、绿、蓝)三种颜色的英文缩写。一开始没接触过点阵的朋友,这个最好先从单色的8X8点阵开始学习,驱动原理几乎一样的。只不过,RGB多了两种需要显示的颜色,所以会相对于比较麻烦一点。所以现在我们简单的描述一下单色的点阵的工作原理: 图(1)8×8点阵LED外观及引脚图 图(2)8×8点阵LED等效电路 汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。为了降低成本,使用了四块8×8的LED点阵发光管的模块,组成了一个16×16的LED点阵显示屏,如图(3)所示。在这里仅做了二十五个汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。 LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以16×16点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;….第16列之后,又重新燃亮第1列,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。 显示数据可通过单片机的P0,,P2口接驱动电路传输到点阵行引脚。 LED点阵显示模块进行的方法有两种: 1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该列上哪个LED亮(相当于段码)。能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。 (2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):此时用一个P口输出决定哪一行能亮(相当于位码),另一个P口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些LED灯亮(相当于段码)。能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。 本设计应用的是第一种的扫描方法,即水平方向(X方向)扫描。 每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。一般我们使用的16×16的点阵宋体字库,即所谓的16×16,是每一个汉字在纵横各16点的区域内显示的。汉字库从该位置起的32字节信息记录了该字的 字模信息。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。 我们以水平方向(x方向)扫描显示汉字的“杨”为例来说明其扫描原理,每一个字由16行16列的点阵组成显示,如图下的,如果用8位的AT89S51的单片机来控制,由于单片机的总线为8位,一个字需要拆分成两个部分。一般我们把它分解成上部分和下部分,上部分由8*16的点阵组成,下部分也由8*16的点阵组成。在本例中单片机首先显示的是左上角的第一列的部分,即第0列的P00~P07口。方向为P07到P00,显示汉字“杨”的时候,P00到P02都是灭的,P03亮,因为行接阴极,即二进制11110111,转换为16进制为F7H,如图(4)所示。 上半部分第一列完成之后,继续扫描下半部分的第一列,即从P27向P20方向扫描,从上图可以看到,这一列P2.2亮,其余全部灭,所以代码为11111011,16进制为FBH,然后单片机转向上半部的第二列,除了P03亮,其他的都不亮,即为11110111,16进制为F7H,这一列扫描完成之后继续进行下半部分的扫描,除了P20P21亮,其他的为不亮,为二进制11111100,即16进制FCH。 按照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“杨”的扫描代码为 : F7H FBH F7H FCH 37H FFH 00H 00H B7H FFH 77H FEH F5H F7H BDH DBH; 9DH ECH 2DH F7H B5H F9H 39H BEH BDH 7FH 3FH 80H FFH FFH FFH FFH; (4)显示原理图 由这个原理可以看到,无论显示何种字体或图像,都可以用这种方法来分析出它的扫描代码从而显示在屏幕上。了解汉字的显示原理之后,那如何得到汉字的字模信息呢?现在有一些现成的汉字字模生成软件,可从网上下载汉字字库提取程序直接提取字库,如图(5)所示的为一种字模生成软件,软件打开后输入汉字,点击“检取”后,十六进制数据汉字代码即可以自动生成,把我们需要的竖排数据复制到我们的程序即可。 单色的点阵驱动就是以上的工作原理来驱动显示数字或者中文的了,双色的点阵甚至RGB LED点阵工作原理也是如此。 第二, 讲解的是驱动本实验RGB点阵的主板——Colordunio V2.0 先给大家上一个图片看看: 看上图,我们可以看得出两边引出的两排RGB插座,是预留给RGB专用的插槽。使用时直接将RGB往上面插上去即可,简单,方便,使用! 板子的旁边也引出了一些与USB转TTL进行通讯的接口。这样我们需要给板子更新新的程序直接把USB转TTL模块;连接上就可以进行在线实时更新需要更新的程序了。这样省去了很多下载程序是不必要的麻烦。 现在来说一下重点,就是Arduino 控制RGB点阵的过程。 看一下我们的线路连接定义: 以上是硬件连接的描述。 下面可以看一下硬件实物连接的样子。 很方便的连接,如果没有专门配对的FT232RT模块,可以用杜邦线进行连接也是可以的哦!端口定义是一样的。 硬件连接完毕以后,就是需要进行软件的程序下载了。软件版本可以选择各种版本,我们所使用的是Arduino IDE 0023或者Arduino IDE 1.0 版本的! 测试代码是一下代码:ARDUINO 代码复制打印
我们实验中得出的结果! |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
WIO Terminal +MCP2515 实现车辆OBD的速度监控
10396 浏览 0 评论
60659 浏览 77 评论
5980 浏览 3 评论
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
36277 浏览 219 评论
10045 浏览 0 评论
510浏览 1评论
请教:esp32中用u8g2显示shtc3传感器数据到i2c液晶屏,显示不稳定的问题
1282浏览 1评论
1422浏览 1评论
628浏览 0评论
555浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 06:14 , Processed in 0.599664 second(s), Total 44, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号