制作旋转led_每周一推|旋转LED屏幕DIY
小海狮们大家好,又到了我们的每周一推时间。今天主题是旋转LED灯的原理,让我们一起来看看吧!
首先有请我们的LED灯登场!
指尖陀螺旋转LED灯
如果你在网上用google搜索“POV led”一词(POV即persistancd of vision),会找到世界各地的各种LED旋转屏的制作介绍。那些摇晃出的空中图案,漂浮在车轮上的动画,以及形态各异的时钟,一定给你留下深刻印象。你是否想过自己亲自动手做一个属于你自己的LED旋转屏呢?所有你看到的LED旋转屏的原理说白了就是一个晃动的流水灯。在51单片机最简系统的其中的一个端口P0接上8个LED,就是一个典型的流水灯实验电路。也就是这个样子的。
那让我们来看一下LED灯的制作过程吧!
Q&AQ1:我们需要哪些材料呢?
首先我们需要一个单片机、一个电机以及LED灯。
Q2:我们搭建硬件需要哪些步骤?
①旋转LED的核心是单片机,首先要根据单片机最小系统图,制作出控制器的最小系统。
②将单片机的P1和P2引脚用导线引出,准备用来控制LED灯。同时将电源的正极用导线引出,作为LED灯的公共端。
③将若干个个LED灯在PCB板上焊成一列,将每个灯的正极连接到一起并连接到单片机的正极的引出线上,把每个灯的负极按从上到下的顺序连接到P1P2端口上。
④找一个结实点的底座,将电机固定好,并在电机的电源线上串上可变电阻,用来调节转速。将制作好的上体固定在电机的底座上就制作完成了。
电路图真的看起来非常复杂呢。
Q3:我们软件控制需要哪些步骤呢?
接下来是程序部分,这个是比较简单的,大家只需要修改引脚和汉字的代码即可将程序烧录到单片机,让电机转起来就成功了。这里有一个源代码提供给大家,大家快来试试看吧!
下载地址:
(向上滑动获得代码)
int d = 2;
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);
}
void loop() {
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(A5, HIGH);
delay(1);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(A3, LOW);
digitalWrite(A4, LOW);
digitalWrite(A5, LOW);
digitalWrite(3, HIGH);
digitalWrite(6, HIGH);
digitalWrite(A5, HIGH);
delay(1);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(A3, LOW);
digitalWrite(A4, LOW);
digitalWrite(A5, LOW);
digitalWrite(2, HIGH);
digitalWrite(7, HIGH);
digitalWrite(A5, HIGH);
delay(1);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);