Propelerje ste videli v letalih ali na morskih ladjah, če ne v resnici, pa zagotovo v filmih. V tej seji bomo oblikovali propelerjev zaslon z Arduino, LED in enosmernim motorjem. Na tem zaslonu propelerja se zdi, da se besedilo v krožni obliki vrti na propeler.
Zaslon propelerja je podoben LED matriki. Vsebuje 8 LED (svetlečih diod), ki so razporejene v obliki matrice 8 * 1 (8 vrstic in 1 stolpec). Razporejeni so v obliki lestve ena čez drugo. Teh 8 LED lahko ustvarite tako, da prikažejo kakršno koli vsebino, kot so besedilo, številke, simboli itd. To dosežemo s funkcijo Perception of Vision (POV), pri kateri se številne fotografije v zaporedju hitro premikajo ena za drugo, kar daje zaznavanje animacije ali gibljiva slika. Kako se to naredi, je razloženo v spodnji vadnici.
Potrebne komponente:
- Arduino Uno
- Enosmerni motor
- + 3.6V LI-ION baterija
- LED (8 kosov)
- 1KΩ upor (8 kosov)
Izdelava zaslona propelerja:
Najprej vzemite stabilno podlago; Uporabil sem stari PC DVD DRIVE, ki je ležal naokoli. Lahko dobite leseno desko ali kartonsko škatlo. Nato na sredini pogona DVD (osnova) naredite luknjo in vanj vstavite os enosmernega motorja. Prepričajte se, da je luknja dovolj tesna, da zadrži motor in da se motor lahko prosto vrti. S Feviquickom sem postavil os na svoje mesto.
Podprite vrh motorja, da izenačite neenakomerne izbokline. Preko njega sem uporabil pikčasto ploščo in znova uporabil hitro lepilo, da sem ga prilepil na enosmerni motor.
Na vrh pritrdite baterijo LI-ION. Če nimate LI-ION baterije enake velikosti, jo preprosto pustite. Potem vzemite vsako LED in jo preizkusite s celico gumba ali katerim koli drugim virom. Nato vzemite nekaj uporov in jih spajkajte z LED, kot je prikazano na spodnji sliki in vezju.
U
Spajene LED in upore povežite z Arduino UNO, kot je prikazano na spodnji sliki in vezju.
U
UNO namestite na vrh DC MOTORJA in ga pritrdite s pomočjo traku za violončelo, da dokončate namestitev. Torej končno nastavitev propelerja bo izgledal v nadaljevanju:
Pojasnilo vezja in dela:
Vezje zaslona POV zaslona, ki ga nadzoruje Arduino, je zelo preprosto, preprosto smo povezali 8 LED z Arduino Uno, kot je prikazano spodaj.
PORTD, PIN0 ------------------ LED8 POZITIVNI TERMINAL
PORTD, PIN1 ------------------ LED7 POZITIVNI TERMINAL
PORTD, PIN2 ------------------ LED6 POZITIVNI TERMINAL
PORTD, PIN3 ------------------ LED5 POZITIVNI TERMINAL
PORTD, PIN4 ------------------ POZITIVNI TERMINAL LED4
PORTD, PIN5 ------------------ LED3POSITIVNI TERMINAL
PORTD, PIN6 ------------------ LED2 POZITIVNI TERMINAL
PORTD, PIN7 ------------------ LED1POSITIVNI TERMINAL
Kot dodamo več stolpcev v 8x8 LED matrico za razširitev zaslona, na enak način, namesto da dodamo več LED STOLPCEV, s pomočjo gibanja DC MOTORJA premaknemo prvi LED STOLPEC na drugo mesto LED STOLPCA.
Da bi razumeli celotno situacijo, recimo, da želimo, da se na zaslonu vijaka prikaže 'A'. Upoštevajte, da je LED "igla" najprej v položaju POSITION1, kot je prikazano na spodnji sliki. LED igla je stolpec 8 LED.
Zdaj bomo napajali motor in ta bo začel delovati.
Pri t = 0ms: igla bo v položaju 1. V tem položaju je vklopljenih vseh osem LED, od TOP LED (MSB) do BOTTOM LED (LSB).
Pri t = 1ms: igla bo v POLOŽAJU 2. Enako kot pri položaju 1 je v tem položaju vklopljenih vseh osem LED, od TOP LED (MSB) do BOTTOM LED (LSB).
Pri t = 2 ms: igla bo v položaju 3. V tem položaju ostanejo samo LED7, LED6 in LED3 vklopljene, preostale LED pa ugasnejo.
Pri t = 3 ms: igla bo v POLOŽAJU 4. Enako kot v položaju 3, v tem položaju ostanejo samo LED7, LED6 in LED3 vklopljene, preostale LED pa ugasnejo.
Pri t = 4ms: igla bo v položaju 5. Enako kot v položaju 3 in 4, v tem položaju ostanejo samo LED7, LED6 in LED3 vklopljeni. Preostale LED diode so izklopljene.
Pri t = 5ms: igla bo v položaju 6. V tem položaju se vseh osem LED ponovno vklopi, TOP LED (MSB) in BOTTOM led (LSB) so vklopljene.
Pri t = 6 ms: igla bo v POLOŽAJU 7. Enako kot pri položaju 6, v tem položaju ostane osem LED diod prižganih.
Kot je razloženo zgoraj, bomo na ustreznih položajih igel vklopili ustrezne LED-diode, da prikažemo potreben znak. Če je hitrost gibanja igle počasna, lahko vidimo vsak LED stolpec posebej. Ko pa je hitrost motorja velika in se igla premika prehitro, bo zaslon prikazan kot neprekinjen znak "A".
Pojasnilo programiranja:
Arduino smo programirali tako, da ob ustreznem času med vrtenjem napaja ustrezno LED, tako da bo stolpec LED v krožnem položaju prikazoval besedilo »CIRCUIT DIGEST«.
Programiranje zaslona propelerja je lahko razumljivo. Niz Char 26x8 je bil sprejet kot hlapljiv char ALPHA. Ta matrika vsebuje 8 položajev igle za prikaz vsake od 26 abeced, zaradi česar je matrika 26x8. 26 vrstic v matriki predstavlja 26 abeced, 8 stolpcev v vsaki vrstici pa osem položajev igle za prikaz znaka med vrtenjem. Zdaj je vsaka celica sestavljena iz binarne številke, ki predstavlja stanje vklopa / izklopa 8 LED v določenem položaju Igle. Ne pozabite, da se igla tukaj nanaša na linijo 8 LED, priključenih na Arduino, kot je razloženo zgoraj.
Zdaj morate samo zasukati enosmerni motor in za prikaz znaka uporabiti for for z osmimi ponovitvami. Tako kot če želite prikazati 10 znakov, morate zagnati 10 ' for zanke' z osmimi ponovitvami v vsaki. Torej smo uporabili 13 for zanke za prikaz besedila CIRCUIT DIGEST. Spodnjo celotno programsko kodo preverite s predstavitvenim videoposnetkom.
Tako lahko tako ustvarite čudovito iluzijo obstojnosti vida (POV) z Arduinom, kot da se besedilo vrti kot propeler.