Napravite Knight Rider LED skener s Arduinom

  • Brian Curtis
  • 0
  • 2166
  • 344
Oglas

Jeste li ikad poželjeli da imate svoj automobil Knight Industries Two Thousand (KITT) - znate, od Knight Ridera? Učinite svoj san jedan korak bliže stvarnosti izradom LED skenera! Evo krajnjeg rezultata:

Što trebaš

Za ovaj projekt nije potrebno mnogo dijelova, a možete ih imati već mnogo:

  • 1 x Arduino UNO ili slično
  • 1 x krušna ploča
  • 8 x crvene LED
  • Otpornici 8 x 220 ohm
  • Potenciometar 1 x 10k ohm
  • Spoji žice od muškarca do muškarca

Ako imate Arduino starter set Što je uključeno u Arduino starter kit? [MakeUseOf objašnjava] Što je uključeno u Arduino Starter Kit? [MakeUseOf objašnjava] Prethodno sam predstavio Arduino hardver otvorenog koda ovdje na MakeUseOf, ali trebat će vam više nego samo stvarni Arduino da biste iz njega nešto napravili i zapravo započeli. Arduino "starter setovi" su ... vjerojatno imate sve ove dijelove (što možete napraviti sa starter kitom? 5 jedinstvenih Arduino projekata za početnike koje možete napraviti samo pomoću Starter Kit 5 jedinstvenih Arduino projekata za početnike koje možete napraviti samo sa Starter Kit).

Gotovo svaki Arduino će raditi, pod uvjetom da ima osam dostupnih igara (nikad ranije nisam koristio Arduino? Početak ovdje Početak rada s Arduinom: Vodič za početnike Početak korištenja Arduino: Vodič za početnike Arduino je platforma za prototiranje elektronike otvorenog koda koja se temelji na fleksibilnoj , hardver i softver koji se lako koriste. Namijenjen je umjetnicima, dizajnerima, hobistima i svima koji su zainteresirani za stvaranje interaktivnih objekata ili okruženja.). Možete upotrijebiti Shift Register Arduino programiranje - Igranje sa Shift registrima (a.k.a još više LED-ova) Arduino programiranje - Igranje sa Shift registrima (a.k.a još više LED-ova) Danas ću vas pokušati naučiti malo o Shift registrima. Ovo su prilično važan dio Arduinog programiranja, u osnovi jer proširuju broj izlaza koje možete koristiti, u zamjenu za ... za upravljanje LED-ovima, mada to za ovaj projekt nije potrebno, jer Arduino ima dovoljno iglica.

Izgradite plan


Ovo je vrlo jednostavan projekt. Iako može izgledati složeno od velikog broja žica, svaki je pojedini dio vrlo jednostavan. Svaka dioda koja emitira svjetlost (LED) povezana je s vlastitim Arduino pinovom. To znači da se svaki LED može pojedinačno uključivati ​​i isključivati. Potenciometar je povezan s Arduino analogom u pinovima, koji će se koristiti za podešavanje brzine skenera.

Krug


Spojite vanjski lijevi pin (gledajući sprijeda, s klinovima na dnu) potenciometra na zemlju. Suprotni vanjski pin spojite na + 5V. Ako ne radi ispravno, preokrenite te igle. Spojite srednji pin na Arduino analog u 2.

Spojite anodu (dugu nogu) svakog LED-a na digitalne iglice jedan do osam. Spojite katode (kratka noga) na zemlju Arduino.

Kod

Stvorite novu skicu i spremite je kao “knightRider”. Evo koda:

const int led [] = 1,2,3,4,5,6,7,8; // Led pins const int totalLeds = 8; int vrijeme = 50; // Zadana postavka praznine pri brzini () // Inicijalizirajte sve izlaze za (int i = 0; i <= totalLeds; ++i)  pinMode(leds[i], OUTPUT);   void loop()  for(int i = 0; i  0; --i) // Skeniraj vrijeme udesno = analogRead (2); digitalWrite (led [i], HIGH); vrijeme odgode); digitalWrite (led [i - 1], HIGH); vrijeme odgode); digitalWrite (led [i], LOW); 

Razbijemo ga. Svaki LED pin pohranjen je u nizu:

const int led [] = 1,2,3,4,5,6,7,8;

Niz je u osnovi zbirka povezanih predmeta. Ti su elementi definirani kao konstantni (“const”), što znači da se kasnije ne mogu promijeniti. Ne morate koristiti konstantu (kôd će savršeno raditi ako uklonite “const”), iako se preporučuje.

Elementima matrice pristupa se pomoću kvadratnih zagrada (“[]”) i cijeli broj koji se zove indeks. Indeksi počinju od nule, dakle “LED [2]” vratili bi treći element u nizu - pin 3. Nizovi čine kôd bržim za pisanje i lakšim za čitanje, čine da računalo radi težak posao!

A for petlja koristi se za postavljanje svakog pina kao izlaza:

za (int i = 0; i <= totalLeds; ++i)  pinMode(leds[i], OUTPUT); 

Ovaj je kod unutar “postaviti()” funkciju, jer se mora pokrenuti samo jednom na početku programa. Za petlje su vrlo korisne. Omogućuju vam ponavljanje istog koda iznova i iznova, s različitim vrijednostima svaki put. Savršeni su za rad s nizovima. Cijeli broj “ja” je deklariran, a samo kôd unutar petlje može pristupiti toj varijabli (ovo je poznato kao “djelokrug”). Vrijednost i počinje od nule, a za svaku ponavljanje petlje i povećava se za jedan. Jednom kada je vrijednost i manja ili jednaka “totalLeds” varijabilna, petlja “pauze” (zaustavlja).

Za pristup popisu koristi se vrijednost i “LED diode” polje. Ova petlja pristupa svakom elementu u polju i konfigurira ga kao izlaz. Možete ručno upisati “pinMode (pin, OUTPUT)” osam puta, ali zašto napisati osam redaka kad možete napisati tri?

Iako vam neki programski jezici mogu reći koliko je elemenata u nizu (obično sa sintaksom poput array.length), Arduino to ne čini tako jednostavnim (uključuje malo više matematike). Kako je već poznat broj elemenata u nizu, to nije problem.

Unutar glavne petlje (void petlja ()) su dvije daljnje za petlje. Prva uključuje LED-ove UKLJUČENE, a zatim ISKLJUČENE od 1 - 8. Druga petlja uključuje LED-ove UKLJUČENE, a zatim ISKLJUČENE od 8 - 1. Primjetite kako je uključen trenutni pin, a uključen je i trenutni pin plus jedan. To osigurava da su uvijek dva LED-a istovremeno, istovremeno skener izgleda realističnije.

Na početku svake petlje, vrijednost lonca se očitava u “vrijeme” varijabla:

vrijeme = analogno čitanje (2);

To se izvodi dva puta, jednom unutar svake petlje. To treba stalno provjeravati i ažurirati. Ako je ovo izvan petlje, i dalje bi radilo, ali bilo bi malo kašnjenja - pokrenulo bi se samo nakon što petlja završi izvršenje. Posude su analogne, otuda i zašto “analogRead (pin)” koristi se. Vraća vrijednosti između nule (minimalno) i 1023 (maksimalno). Arduino može pretvoriti te vrijednosti u nešto korisnije, no savršene su za ovaj slučaj upotrebe.

Kašnjenje između promjena LED-ova (ili brzina skenera) postavlja se u milisekundama (1/1000 sekundi), tako da je maksimalno vrijeme nešto više od 1 sekunde.

Napredni skener

Sad kad znate osnove, pogledajmo nešto složenije. Ovaj će skener upaliti LED-ove u parovima počevši od vanjske strane i radeći unutra. To će obrnuti i prelaziti iz parova iznutra i izvana. Evo koda:

const int led [] = 1,2,3,4,5,6,7,8; // Led pins const int totalLeds = 8; const int halfLeds = 4; int vrijeme = 50; // Zadana postavka praznine pri brzini () // Inicijalizirajte sve izlaze za (int i = 0; i <= totalLeds; ++i)  pinMode(leds[i], OUTPUT);   void loop()  for(int i = 0; i <(halfLeds - 1); ++i)  // Scan outside pairs in time = analogRead(2); digitalWrite(leds[i], HIGH); digitalWrite(leds[(totalLeds - i) - 1], HIGH); delay(time); digitalWrite(leds[i], LOW); digitalWrite(leds[(totalLeds - i) - 1], LOW); delay(time);  for(int i = (halfLeds - 1); i> 0; --i) // Skeniraj unutar parova out = vrijemeReadRead (2); digitalWrite (led [i], HIGH); digitalWrite (led [(totalLeds - i) - 1], HIGH); vrijeme odgode); digitalWrite (led [i], LOW); digitalWrite (led [[totalLeds - i) - 1], LOW); vrijeme odgode); 

Ovaj je kod malo složeniji. Opazite kako obje petlje idu od nule do “polovina ležaja - 1” (3). To čini bolji skener. Ako bi obje petlje imale 4 - 0 i 0 - 4, iste bi LED lampice bljesnule dvaput istim redoslijedom - to ne bi izgledalo vrlo dobro.

Sada biste trebali posjedovati radni Knight Rider LED skener! To bi bilo lako izmijeniti za upotrebu više ili većih LED-ova ili za implementaciju vlastitog uzorka. Ovaj krug je vrlo lako priključiti na Raspberry Pi (novo za Pi? Početak ovdje Raspberry Pi: Neslužbeni udžbenik Raspberry Pi: Neslužbeni vodič Bez obzira jeste li trenutni vlasnik Pi-a koji želi naučiti više ili potencijalni vlasnik ove kreditne sposobnosti uređaj veličine veličine, ovo nije vodič koji želite propustiti.) ili ESP8266 Upoznajte Arduino ubojicu: ESP8266 Upoznajte Arduino ubojicu: ESP8266 Što ako vam kažem da postoji Arduino kompatibilna dev ploča s ugrađenom Wi- Fi za manje od 10 dolara? Pa, postoji. .

Gradite li repliku KITT? Volio bih vidjeti sve stvari Knight Rider u komentarima.




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.