您肯定已经在飞机或轮船上看过螺旋桨,如果不是真实的话,肯定会在电影中看过。在本节中,我们将设计带有Arduino,LED和直流电动机的螺旋桨显示器。在此“螺旋桨显示”中,文本将看起来像螺旋桨一样以圆形旋转。
螺旋桨的显示方式类似于LED矩阵。它包含8个LED(发光二极管),它们以8 * 1矩阵(8行1列)的形式排列。它们以梯子的形式排列在一起。这8个LED可以显示任何内容,例如文本,数字,符号等。这是通过视觉感知(POV)实现的,在视觉感知中,许多静止图像依次快速移动,从而产生了动画效果或运动图像。下面的教程中说明了如何完成此操作。
所需组件:
- Arduino Uno
- 直流马达
- + 3.6V锂离子电池
- LED(8个)
- 1KΩ电阻器(8个)
螺旋桨显示器的构造:
首先取得稳定的基础; 我使用了一个旧的PC DVD驱动器。您可以获得一块木板或一个纸板箱。然后在DVD驱动器(基座)的中间打一个孔,并将DC电机轴插入其中。确保孔足够紧以固定电动机,并且电动机可以自由旋转。我使用Feviquick将轴放置到位。
支撑马达的顶部以平衡不均匀的颠簸。我在其上使用了点板,并再次使用快速胶水将其粘在直流电动机上。
将锂离子电池安装在顶部。如果您没有相同尺寸的LI-ION电池,请放下。之后,拿每个LED并用纽扣电池或任何其他光源对其进行测试。然后按照下面的图片和电路图,带一些电阻并用LED焊接它们。
如下图和电路图所示,将焊接的LED和电阻器与Arduino UNO连接。
将UNO安装在DC MOTOR的顶部,并借助大提琴胶带将其固定以完成设置。因此,最终的螺旋桨设置如下所示:
电路及工作说明:
Arduino控制的POV Display的电路非常简单,我们只需按照以下电路图将8个LED与Arduino Uno连接即可。
PORTD PIN0 ------------------ LED8正端子
PORTD,PIN1 ------------------ LED7正极端子
PORTD,PIN2 ------------------ LED6正端子
PORTD,PIN3 ------------------ LED5正极端子
PORTD,PIN4 ------------------ LED4正端子
PORTD,PIN5 ------------------ LED3正极端子
PORTD,PIN6 ------------------ LED2正端子
PORTD,PIN7 ------------------ LED1正极端子
就像我们在8x8 LED矩阵中添加更多列以扩展显示一样,以相同的方式而不是添加更多LED列,我们通过使用DC MOTOR的运动将第一个LED列移动到第二个LED列位置。
为了了解整体情况,假设我们希望螺旋桨显示器显示“ A”。如下图所示,首先考虑LED的“针”处于POSITION1。LED针是8个LED的列。
现在我们将为电动机供电,它将开始运行。
在t = 0ms时:指针将处于位置1。在该位置,从顶部LED(MSB)到底部LED(LSB)的所有八个LED均已通电。
在t = 1ms时:指针将处于位置2。与位置1相同,在该位置,从顶部LED(MSB)到底部LED(LSB)的所有八个LED均已通电。
在t = 2ms时:指针将处于位置3。在此位置,只有LED7,LED6和LED3保持点亮状态,其余的LED熄灭。
在t = 3ms时:指针将位于位置4。与位置3相同,在此位置仅LED7,LED6和LED3保持点亮,而其余LED熄灭。
在t = 4ms时:指针将处于位置5。与位置3和4相同,在此位置仅LED7,LED6和LED3保持点亮状态。其余LED熄灭。
在t = 5ms时:指针将处于位置6。在该位置,所有八个LED再次点亮,TOP指示灯(MSB)至BOTTOM指示灯(LSB)打开。
在t = 6ms时:指针将处于位置7。与位置6相同,在此位置,所有八个LED均保持点亮状态。
如上所述,我们将在适当的针位置处打开适当的LED以显示必要的字符。如果针的移动速度很慢,我们可以分别看到每个LED列。但是,当电动机的速度很高且机针移动得太快时,显示屏将被视为连续显示“ A”字符。
编程说明:
我们已将Arduino编程为在旋转的同时在适当的时间为适当的LED供电,以便LED列在圆形位置显示文本“ CIRCUIT DIGEST”。
螺旋桨显示器的编程很容易理解。已将26x8的字符数组作为 易失性字符ALPHA。 该数组由针的8个位置组成,以显示26个字母中的每个字母,从而使其成为26x8的数组。数组中的26行代表26个字母,每行8列代表旋转时显示字符的针的八个位置。现在,每个单元由一个二进制数字组成,该数字代表在Needle针的特定位置上的8个LED的开/关状态。请记住,这里的针是指连接到Arduino的8个LED线,如上所述。
现在,您只需要旋转直流电动机,并使用“ for loop ”进行八次迭代即可显示字符。就像要显示10个字符一样,则需要运行10个“ for循环” ,每个 循环 有8个迭代。因此,我们使用了13个 for循环 来显示文本CIRCUIT DIGEST。检查完整的程序代码下面的演示视频。
因此,这就是您可以像使用文本一样像螺旋桨一样旋转的方式,用Arduino创建美丽的视觉持久性(POV)幻觉的方法。