最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

纯手工打造LED旋转显示屏

IT圈 admin 23浏览 0评论

2024年5月25日发(作者:苌鸿羲)

纯手工打造LED旋转显示屏

金杰 郑州市电子信息工程学校 450007

图1所示为LED旋转显示屏的显示效果。所谓LED旋转显示屏,是指在电路中只有一

列发光二极管,通过电动机带动发光二极管转动,当这列发光二极管转到不同位置,用单片

机控制相应的发光二极管点亮和熄灭,由于人眼的视觉暂留现象,形成图形或文字,达到漂

浮在空中似的神奇梦幻般效果。

图1 LED旋转显示屏

下面本文就带您一起DIY一个属于自己的LED旋转显示屏。由于显示屏是靠转动的发

光二极管的残留影像显示信息的,整个电路所需的发光二极管的数量很少(本电路共使用

16只发光二极管),所以电路原理图非常简单,几乎和流水灯电路无异,很适合手工制作。

但由于整个电路板处于高速旋转状态,所以我们首先要解决两问题:一是如何给运动的系统

供电;二是如何保证显示信息稳定显示。

给运动的系统供电,常用的供电方式有三种:(1)电池供电;(2)电刷供电;(3)无线

感应供电。电池供电方式简单方便,易于携带,但使系统重量增加,影响转速,尤其是成本

高,寿命短,只适用于摇摇棒等短时间使用的装置,长时间运行的装置就不适合,比如能显

示时间的LED旋转显示屏,每次电池用完,重换电池就够烦心了,换了电池还得重新调整

日期、时间,那简直可以用“痛苦”二字来形容。第二种方式——电刷供电,这种供电方式

简单有效,能传送较大电流强度的电能,但在业余制作时,很难找到合适的高质量的电刷,

高速旋转时会产生较大的噪声。第三种方式——无线感应供电,这种方式为无接触方式供电,

寿命长,无新增噪声,虽然传送电流强度有限,效率稍低,但完全可以满足单片机系统的需

要,其原理与变压器的原理相同,就是在相距很近的两个线圈中,一个线圈作为电能的发送

端,另一个线圈作为电能的接收端,通过振荡电路给发送端线圈提供交变电流,在相距很近

的接收端线圈中就可以感应出交变电流。所以考虑再三,决定用无线供电方式,无线供电方

式技术要求稍高一些,但能增加制作的挑战性和趣味性。图2所示为通过无线感应供电方式

驱动发光二极管发光的演示。

图2 通过无线感应供电方式驱动发光二极管发光

要保证LED旋转显示屏显示正常和稳定,就要求单片机控制显示屏总是从电路板转到

某一位置时开始播放所要显示的内容。通常的做法就是通过传感器来检测电路板的位置,并

通过中断的方式通知单片机进行显示。传感器可以使用霍尔元件或者光电传感器,其中光电

传感器要求工艺简单,安装方便。

综上所述,LED旋转显示屏的电路原理图如图3所示。

图3 LED旋转显示屏电路原理图

一、电路说明

本电路采用无线感应供电方式给旋转部分供电,所以电路包括无线供电部分电路和旋转

部分电路两部分。其中无线供电电路使用74HC4060产生多谐振荡波,再由大功率场效应管

IRF530给发送端线圈L1提供交变电流。74HC4060构成的振荡电路不但频率稳定,而且有

10种输出频率可供选择,当选用11.0592MHz的晶振时,QD端输出为经过16分频的频率

691.2KHz。经实验证明,工作频率在500KHz和1MHz的范围内时,可以获得较高的转换

效率和较大的输出功率。本无线供电电路的功率管在不加装任何散热片时长时间工作不会有

丝毫发热,使用效果非常好。当然读者也可以采用三极管振荡电路或者门电路构成的振荡电

路,但要注意振荡频率的选择,力争使输出功率和转换效率有好的表现。

旋转部分是由电动机带动作高速旋转,其电路非常简单,首先由接收端线圈产生感应电

动势,经二极管D19整流、电容C4滤波、稳压二极管D20稳压后得到5V电源给整个电路

供电,单片机的16个I/O口线分别控制16个发光二极管。为了修改程序的方便,在电路中

安装了ISP下载接口。

需要说明的是,在电路中并没有具体标明单片机的型号,您可以选用您最熟悉的单片机,

只要I/O口够用就可以了,当然如果在I/O口够用的情况下尽量选用体积小、重量轻的单片

机为佳。

另外,在无线供电电路板和旋转电路板之间安装一对红外光电传感器,将电路板的位置

状态送到单片机的外部中断请求输入端,用以对显示内容进行定位。

二、电路组装与调试

本系统电路不太复杂,两块电路都可以在万能实验板上插装焊接,制作时首先按照原理

图在万电路板上规划出合理的元件布局图,然后按布局图将元件依次插装并焊接,最后把需

要连接的引脚用电磁线和镀锡裸铜线连接起来,大家注意不要短路,线路连接关系不要出错。

图4所示是装配好的无线供电电路及底座实物图,图5所示是我装配好的旋转主板的实物照

片,发光二极管和限流电阻均使用贴片元件,这样像素更紧凑,显示更清晰,单片机使用

STC12C5616AD,28脚窄体DIP封装,因为在万能实验板上无法使用帖片集成电路, LED

与单片机引脚的连接均用电磁线相连,这样走线整齐、美观,还能减小整个电路板的体积。

其它引脚的连接使用镀锡裸铜线连接。全部安装好以后,需要插到电机轴上测试一下电路板

是否平衡,如果不平衡,可以通过在适当位置加焊锡进行配重。

图4 装配好的无线供电电路及底座

图5 装配好的旋转主板

电路装配好以后,需要对硬件电路进行调试,方法是通过ISP下载线接口对主板供电,

依次测试每个发光二极管是否正常发光,或者通过下载器向单片机烧入流水灯等简单程序,

观察电路整体运行情况。

三、程序设计

LED旋转显示屏的程序流程图如图6所示。

由程序流程图可知,主程序主要是对外部中断的控制寄存器进行初始化设置,外部中断

的中断请求信号来自红外光电传感器的红外接收二极管,每当电路板的红外接收二极管转到

与之对应的红外发射二极管的位置时,就会向CPU发出中断请求信号,CPU响应中断,调

用显示子函数,这样显示子函数总是在电路板转到同一个位置时被调用,保证显示的内容正

常和稳定。

显示程序在外部中断子函数中被调用。编写程序时需要注意的是,因为显示程序是逐列

扫描显示的,所以在对字符或汉字取模时要采用逐列式,正序和倒序都是可以的,在程序中

都可以调整。比如要显示5个汉字,每个汉字16列,共扫描80列,可用如下程序:

unsigned int i;

for (i=0;i<80;i++)

{

P1=tab[2*i];

P2=tab[2*i+1];

delay(70); //延时时间的长短决定了字的宽度

}

P1=0xff; //扫描完所有列后要熄灭所有LED

P2=0xff;

如果想让显示的字符如图1所示的效果,上半部是正立的,下半部也是正立的,我们可

以编写一个字节倒序的子函数,对取出的字模数据首先作倒序处理,然后,显示程序是的i

值是从80减小到的,参考程序如下:

unsigned int i;

for (i=80;i)0;i--)

{

P2=chg(tab[2*i]); //chg是对字模数据作倒序处理的子函数

P1=chg(tab[2*i+1]);

delay(70); //延时时间的长短决定了字的宽度

}

P1=0xff; //扫描完所有列后要熄灭所有LED

P2=0xff;

下面就可以慢慢欣赏自己的作品了。当然你如果想让你的LED旋转屏具有更多的功能,

需要添加相应的模块,比如带有万年历和温度显示功能,可以在此基础增加时钟芯片和温度

传感器,如果要想调整显示的信息、时间等,最佳方案当属红外遥控莫属了。

2024年5月25日发(作者:苌鸿羲)

纯手工打造LED旋转显示屏

金杰 郑州市电子信息工程学校 450007

图1所示为LED旋转显示屏的显示效果。所谓LED旋转显示屏,是指在电路中只有一

列发光二极管,通过电动机带动发光二极管转动,当这列发光二极管转到不同位置,用单片

机控制相应的发光二极管点亮和熄灭,由于人眼的视觉暂留现象,形成图形或文字,达到漂

浮在空中似的神奇梦幻般效果。

图1 LED旋转显示屏

下面本文就带您一起DIY一个属于自己的LED旋转显示屏。由于显示屏是靠转动的发

光二极管的残留影像显示信息的,整个电路所需的发光二极管的数量很少(本电路共使用

16只发光二极管),所以电路原理图非常简单,几乎和流水灯电路无异,很适合手工制作。

但由于整个电路板处于高速旋转状态,所以我们首先要解决两问题:一是如何给运动的系统

供电;二是如何保证显示信息稳定显示。

给运动的系统供电,常用的供电方式有三种:(1)电池供电;(2)电刷供电;(3)无线

感应供电。电池供电方式简单方便,易于携带,但使系统重量增加,影响转速,尤其是成本

高,寿命短,只适用于摇摇棒等短时间使用的装置,长时间运行的装置就不适合,比如能显

示时间的LED旋转显示屏,每次电池用完,重换电池就够烦心了,换了电池还得重新调整

日期、时间,那简直可以用“痛苦”二字来形容。第二种方式——电刷供电,这种供电方式

简单有效,能传送较大电流强度的电能,但在业余制作时,很难找到合适的高质量的电刷,

高速旋转时会产生较大的噪声。第三种方式——无线感应供电,这种方式为无接触方式供电,

寿命长,无新增噪声,虽然传送电流强度有限,效率稍低,但完全可以满足单片机系统的需

要,其原理与变压器的原理相同,就是在相距很近的两个线圈中,一个线圈作为电能的发送

端,另一个线圈作为电能的接收端,通过振荡电路给发送端线圈提供交变电流,在相距很近

的接收端线圈中就可以感应出交变电流。所以考虑再三,决定用无线供电方式,无线供电方

式技术要求稍高一些,但能增加制作的挑战性和趣味性。图2所示为通过无线感应供电方式

驱动发光二极管发光的演示。

图2 通过无线感应供电方式驱动发光二极管发光

要保证LED旋转显示屏显示正常和稳定,就要求单片机控制显示屏总是从电路板转到

某一位置时开始播放所要显示的内容。通常的做法就是通过传感器来检测电路板的位置,并

通过中断的方式通知单片机进行显示。传感器可以使用霍尔元件或者光电传感器,其中光电

传感器要求工艺简单,安装方便。

综上所述,LED旋转显示屏的电路原理图如图3所示。

图3 LED旋转显示屏电路原理图

一、电路说明

本电路采用无线感应供电方式给旋转部分供电,所以电路包括无线供电部分电路和旋转

部分电路两部分。其中无线供电电路使用74HC4060产生多谐振荡波,再由大功率场效应管

IRF530给发送端线圈L1提供交变电流。74HC4060构成的振荡电路不但频率稳定,而且有

10种输出频率可供选择,当选用11.0592MHz的晶振时,QD端输出为经过16分频的频率

691.2KHz。经实验证明,工作频率在500KHz和1MHz的范围内时,可以获得较高的转换

效率和较大的输出功率。本无线供电电路的功率管在不加装任何散热片时长时间工作不会有

丝毫发热,使用效果非常好。当然读者也可以采用三极管振荡电路或者门电路构成的振荡电

路,但要注意振荡频率的选择,力争使输出功率和转换效率有好的表现。

旋转部分是由电动机带动作高速旋转,其电路非常简单,首先由接收端线圈产生感应电

动势,经二极管D19整流、电容C4滤波、稳压二极管D20稳压后得到5V电源给整个电路

供电,单片机的16个I/O口线分别控制16个发光二极管。为了修改程序的方便,在电路中

安装了ISP下载接口。

需要说明的是,在电路中并没有具体标明单片机的型号,您可以选用您最熟悉的单片机,

只要I/O口够用就可以了,当然如果在I/O口够用的情况下尽量选用体积小、重量轻的单片

机为佳。

另外,在无线供电电路板和旋转电路板之间安装一对红外光电传感器,将电路板的位置

状态送到单片机的外部中断请求输入端,用以对显示内容进行定位。

二、电路组装与调试

本系统电路不太复杂,两块电路都可以在万能实验板上插装焊接,制作时首先按照原理

图在万电路板上规划出合理的元件布局图,然后按布局图将元件依次插装并焊接,最后把需

要连接的引脚用电磁线和镀锡裸铜线连接起来,大家注意不要短路,线路连接关系不要出错。

图4所示是装配好的无线供电电路及底座实物图,图5所示是我装配好的旋转主板的实物照

片,发光二极管和限流电阻均使用贴片元件,这样像素更紧凑,显示更清晰,单片机使用

STC12C5616AD,28脚窄体DIP封装,因为在万能实验板上无法使用帖片集成电路, LED

与单片机引脚的连接均用电磁线相连,这样走线整齐、美观,还能减小整个电路板的体积。

其它引脚的连接使用镀锡裸铜线连接。全部安装好以后,需要插到电机轴上测试一下电路板

是否平衡,如果不平衡,可以通过在适当位置加焊锡进行配重。

图4 装配好的无线供电电路及底座

图5 装配好的旋转主板

电路装配好以后,需要对硬件电路进行调试,方法是通过ISP下载线接口对主板供电,

依次测试每个发光二极管是否正常发光,或者通过下载器向单片机烧入流水灯等简单程序,

观察电路整体运行情况。

三、程序设计

LED旋转显示屏的程序流程图如图6所示。

由程序流程图可知,主程序主要是对外部中断的控制寄存器进行初始化设置,外部中断

的中断请求信号来自红外光电传感器的红外接收二极管,每当电路板的红外接收二极管转到

与之对应的红外发射二极管的位置时,就会向CPU发出中断请求信号,CPU响应中断,调

用显示子函数,这样显示子函数总是在电路板转到同一个位置时被调用,保证显示的内容正

常和稳定。

显示程序在外部中断子函数中被调用。编写程序时需要注意的是,因为显示程序是逐列

扫描显示的,所以在对字符或汉字取模时要采用逐列式,正序和倒序都是可以的,在程序中

都可以调整。比如要显示5个汉字,每个汉字16列,共扫描80列,可用如下程序:

unsigned int i;

for (i=0;i<80;i++)

{

P1=tab[2*i];

P2=tab[2*i+1];

delay(70); //延时时间的长短决定了字的宽度

}

P1=0xff; //扫描完所有列后要熄灭所有LED

P2=0xff;

如果想让显示的字符如图1所示的效果,上半部是正立的,下半部也是正立的,我们可

以编写一个字节倒序的子函数,对取出的字模数据首先作倒序处理,然后,显示程序是的i

值是从80减小到的,参考程序如下:

unsigned int i;

for (i=80;i)0;i--)

{

P2=chg(tab[2*i]); //chg是对字模数据作倒序处理的子函数

P1=chg(tab[2*i+1]);

delay(70); //延时时间的长短决定了字的宽度

}

P1=0xff; //扫描完所有列后要熄灭所有LED

P2=0xff;

下面就可以慢慢欣赏自己的作品了。当然你如果想让你的LED旋转屏具有更多的功能,

需要添加相应的模块,比如带有万年历和温度显示功能,可以在此基础增加时钟芯片和温度

传感器,如果要想调整显示的信息、时间等,最佳方案当属红外遥控莫属了。

发布评论

评论列表 (0)

  1. 暂无评论