0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机的LED灯光立方设计

王子变青蛙_35400519 来源:王子变青蛙_35400519 作者:王子变青蛙_35400 2022-06-12 08:52 次阅读

一、前言

光立方顾名思义就是会发光的立方体,光立方的基本原理是利用人眼的暂留效应,利用单片机控制LED灯快速的闪烁,显示出一个完整的图案。光立方原理相对简单只是制作过程较为耗时。

二、OLED模块介绍

1、介绍

本设计的光立方采用的是循环点亮的方法,通过循环将LED灯层层点亮,从而达到想要的效果。这个和数码管的动态扫描一个道理,当点亮第一层时对应一个图形,第二层对应一个图形,当扫描速度加快时,看上去就成为一个图形了。

2、驱动

本设计由于光立方小所以使用9013 NPN三极管进行驱动,目的是为LED灯提供足够大的电压电流,NPN三极管作为驱动电路使用时,在基极需串联电阻以保护三极管不被烧坏。三极管集电极与发射极一端接LED灯的负极一端接GND。

三、硬件连接

1、实物图

正面

poYBAGKkkfuAQEayAASpp7ci75k011.png

侧面

poYBAGKkkhGANbLSAAQ967a1hGY333.png

背面

pYYBAGKkkhyAWmqDAAQeGHCoeGA230.png

2、 原理图

最小单片机系统

poYBAGKkkiqADMetAACEPOTzlaI864.png

驱动电路

poYBAGKkkjaAWHvMAABfX67Nj-w407.png

LED灯连接

poYBAGKkkkWAfFO_AAB8Tn0rPIs156.png

P0、P1控制每一层点亮的LED灯,连接控制LED灯三极管的基级。

P24、P25、P26、P27控制点亮的层数,同样使用三极管进行控制。

四、软件代码

main主函数

调用想要的灯光,可以根据根据自己的想法进行不同的创意。我是直接调用方便大家学习使用。

void main()
{

  while(1)
  {  
    and1();	
		and2();
		and3();
		and4();
		and5();
		and6();
		and7();
  }
}

BMP.c

存储不同的灯光效果,程序中我设计了九个供大家学习。全亮、全灭、平面从最左面到最右面、平面从最下面到最上面、旋转点亮、旋转全亮、平面旋转、波浪、斜面。每个效果的程序结构基本相同。

void end()	 //全灭
void begin()  //全亮
void and1()//平面最左边到最右边
void and2()//平面最下面到最上面
void and3()//旋转点亮
void and4()//旋转亮
void and5()//平面旋转
void and6()//波浪
void and7()//斜面1

大致讲解:由于使用P0、P1两个端口,所以使用A、B分别控制,AB的第一行为光立方每一层的第一个状态,第二行为第二个状态。循环中j为状态的个数,根据实际情况进行改写,k为每个状态的时长,时长过短时影响效果,i为层数的选择,不需要更改。

void and6()//波浪
{
	unsigned char code A[2][4]=
    {
      {0x5a,0xa5,0x5a,0xa5},	//状态1		
      {0xa5,0x5a,0xa5,0x5a},  	//状态2	 	
		};
	unsigned char code B[2][4]=
    {
			{0x5a,0xa5,0x5a,0xa5},//状态1
			{0xa5,0x5a,0xa5,0x5a},//状态2			
    };
  int i,j,k;
		for(j=0;j<2;j++)
		{
			for(k=0;k<60;k++)
			{
				for(i=0;i<4;i++)
			    {
				     switch(i)	 
		           {
			            case(0):
				            b1=1;b2=0;b3=0;b4=0; break;//显示第0层
			            case(1):
				            b1=0;b2=1;b3=0;b4=0; break;//显示第1层
			            case(2):
				            b1=0;b2=0;b3=1;b4=0; break;//显示第2层
			            case(3):
				            b1=0;b2=0;b3=0;b4=1; break;//显示第3层
									default:break;
		           }
				     a=A[j][i];
				     b=B[j][i];
				     DelayMs(1);
			    }			
			 }		
		 }
}

delay.c

根据不同的效果进行添加。

#include "delay.h"
/*------------------------------------------------
 uS延时函数 
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   
 while(--t);
}
/*------------------------------------------------
 mS延时函数
------------------------------------------------*/
void DelayMs(unsigned char t)
{
     
 while(t--)
 {
     //大致延时1mS
     DelayUs2x(245);
	 DelayUs2x(245);
 }
}

五、效果展示

视频演示 https://live.csdn.net/v/215727

六、代码链接

关注公众号“小小创客者”回复“4*4光立方”获得代码,如有错误欢迎指正。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 三极管
    +关注

    关注

    142

    文章

    3599

    浏览量

    121635
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632868
  • led灯
    +关注

    关注

    22

    文章

    1592

    浏览量

    107828
  • 光立方
    +关注

    关注

    23

    文章

    164

    浏览量

    60524
收藏 人收藏

    评论

    相关推荐

    单片机音频光立方

    单片机AD转换音频信号,再进行快速傅里叶变换出来的是什么,怎样点亮4*4*4的LED立方。求解
    发表于 10-30 01:05

    基于单片机的光立方设计

    这是我做的基于单片机的光立方设计光立方源程序 动画 频谱 595 573.zip
    发表于 07-19 04:38

    LED冰条灯单片机方案—英锐恩与你打造高端灯光

    深圳英锐恩推出LED冰条灯单片机—EN8F154,与您共同打造高端灯光视觉效果。基于单片机EN8F154的节能LED冰条灯流星雨灯
    发表于 01-19 11:22

    如何去实现一种基于单片机LED灯光立方设计呢

    基于单片机LED灯光立方的硬件部分该如何去设计呢?基于单片机LED
    发表于 11-12 07:52

    单片机痴狂者的DIY:LED立方制作

    本内容为大家带来了LED立方制作的全过程,现在只完成了立方体部分,后期会推出”USB在线编辑”功能的立方体和”触摸编辑动画的”立方
    发表于 08-16 11:23 7.1w次阅读
    <b class='flag-5'>单片机</b>痴狂者的DIY:<b class='flag-5'>LED</b>光<b class='flag-5'>立方</b>制作

    基于51单片机的光立方设计毕业设计

    很基本的光立方设计,应用最基本的单片机知识
    发表于 12-09 15:33 15次下载

    cube_led立方程序

    cube:led立方程序,运用单片机开发
    发表于 02-19 17:50 7次下载

    51单片机驱动光立方程序

    51单片机驱动8*8光立方,或许有不正确的地方,仅供参考。
    发表于 03-23 16:07 36次下载

    立方设计

    基于单片机的光立方设计,3D LED
    发表于 02-28 22:32 60次下载

    基于单片机的光立方设计

    基于单片机的光立方设计 目 录 摘要1 Abstract2 前言3 第1章 绪论4 第1.1节 开发背景4 第1.2节 本文所作的工作4 第2章 系统总体方案设计5 第2.1节 光立方控制原理5 第
    发表于 11-23 13:35 1988次阅读

    立方的工作原理_基于74hc573的8*8*8光立方LED的控制方式

    立方由若干个二极管led灯以立方体形式搭建,4*4*4、8*8*8、16*16*16甚至更多,又由单片机、锁存器、译码器等电器元件驱动,形成立体动画效果。其中8*8*8光
    发表于 11-27 14:40 3.5w次阅读

    怎样不用单片机做一个led立方

    我也是DIY新手,开始就被大师的led立方着迷了,各位新手一定像我一样,被单片机搞到头痛,。这次,我们不用单片机,不用编程,自制一个4*4*4光
    的头像 发表于 09-13 14:14 6874次阅读

    基于51单片机的8x8x8LED立方设计

    1.简介本设计是以STC89C52单片机的8x8x8的LED立方。本设计将LED立方分成8层,分别由
    发表于 11-11 09:51 35次下载
    基于51<b class='flag-5'>单片机</b>的8x8x8<b class='flag-5'>LED</b>光<b class='flag-5'>立方</b>设计

    基于单片机LED照明系统的设计

    本设计是基于单片机LED照明系统的设计,主要实现以下功能:可实现LCD1602显示光照强度,灯的状态; 可实现通过按键控制LED的开关; 可实现通过光照强度控制灯光的亮度; 可实现通
    发表于 12-23 19:31 17次下载
    基于<b class='flag-5'>单片机</b>的<b class='flag-5'>LED</b>照明系统的设计

    STM32WB系列STM32立方单片机封装示例

    STM32WB系列STM32立方单片机封装示例
    发表于 11-21 08:11 0次下载
    STM32WB系列STM32<b class='flag-5'>立方</b><b class='flag-5'>单片机</b>封装示例