1. 光立方中的uln2803,接的是共阴极吗还有单片机给它低电平时,uln2803输出的是高低平
uln2803具有较强的灌电流能力,光立方中,有大量的LED,一般采用扫描驱动电路。
扫描驱动电路中,既需要行驱动,也需要列驱动。
若行驱动采用灌电流驱动器,那么,列驱动就需要采用拉电流驱动器,反之,若行驱动采用拉电流驱动器,那么,列驱动就需要采用灌电流驱动器。因此,具体接共阴极还是共阳极,要看你的电路和选用的驱动器。
uln2803为反相集电极开路输出,单片机给高电平时,uln2803输出低电平;单片机给低电平时,uln2803输出高阻(接上拉电阻可变为高电平)。
为了保证LED的安全,最好采用限流电阻。当LED的工作电流较大,接近uln2803的驱动能力时,也可以不用限流电阻,一般不推荐这样使用。
2. 你好,作为一个单片机初学者,对光立方真心看不懂,可不可以详细点介绍一下光立方怎么工作的,求程序参考
光立方简单讲就是用单片机控制很多规则排列的LED的亮和灭。
1、先了解单个LED的控制方式,可以是将正极接电源,负极通过一个限流电阻连接至单片机的某个IO口。IO口输出低电平时,LED就亮,反之,LED灭。
2、若按照单个LED的控制方式,每个LED需要占用单片机的一个IO口,控制100个LED就需要100个IO口。那么,有没有一种方式,可以用较少的IO口,控制较多的LED呢?答案是肯定的,这种方法,就是扫描驱动电路。
3、扫描驱动电路基本原理是利用人眼的视觉停留效应。以2×2扫描驱动电路为例对其工作原理进行简述,有4LED,分为2行2列,电路如下(图中省略了限流电阻):
当:
C1=x,C2=x,L1=1,L2=1时,全灭
C1=1,C2=0,L1=0,L2=1时,D11亮
C1=1,C2=0,L1=1,L2=0时,D12亮
C1=0,C2=1,L1=1,L2=1时,全灭
C1=0,C2=1,L1=0,L2=1时,D21亮
C1=0,C2=1,L1=1,L2=0时,D22亮
可见,通过控制C1、C2、L1、L2,可以使D11、D12、D21、D22的任意一个LED的亮灭,也可以使四个LED全灭。
用上述方式轮流点亮D11和D12,一次只亮一个,但是,若将轮换速度加快,每秒之内轮换50次以上,由于人眼的视觉停留效应,视觉效果上就是两个LED同时亮。
这样,通过控制C1、C2、L1、L2,可以控制全部LED的亮灭。
上述电路用4个IO口控制4个LED,与直接控制相比,并未节约IO口,但是,若将行和列的数量加大,变为16×16时,共256个LED,控制仅需32个IO口,也就是说,行列数越多,相比越节省IO口。
仔细分析上述控制过程,可以发现,还可以进一步节约IO口的数量。
以16×16的整列为例,若限定16列中,每次只亮一列,就可以用4根IO线加一个4~16译码器替代。这样,就变为16+4只有20个IO口了。而行还是保留16根,因为这样做,可以一次控制1列中的多个LED同时亮。加快扫描进度。
以上就是光立方的基本原理。熟悉其控制过程后,编写程序并不难。
3. 单片机初学者可以做什么实践活动来提升自己的能力呢。我想自己做一个小项目,比如光立方之类的东西。
多做小设计,就有提高的。比如,做个数码管时钟,做个1602密码锁,做个12864温湿度计,做个OLED手表,等等。做的多了,自然就练出来了。
4. 最近在做3D8 光立方 用的单片机是STC89C52,可是不知道晶振要用多大的手上只有一个24M和一个11.0592M
理论上在单片机能稳定工作的前提下,晶振频率越高越好,对于这个单片机来说,24M是完全没有问题的。
5. 跪求大神!!!!!51单片机制作光立方(8*8*8LED)时用到ULN2803,在proteus中仿真时,不知道ULN2803怎么用
你好!
1、 第10脚应该接在 VCC上
2、ULN相当于反相器
3、输入高电平时,输出低电平,驱动设备工作