Vytvořte Knight Rider LED skener s Arduino

  • Lesley Fowler
  • 6
  • 4470
  • 1190
reklama

Přáli jste si někdy, abyste měli své vlastní auto Knight Industries Two Thousand (KITT) - víte, od Knight Rider? Vytvořte si svůj sen o krok blíže realitě vytvořením skeneru LED! Zde je konečný výsledek:

Co potřebuješ

Pro tento projekt není potřeba mnoho částí a možná už jich budete mít mnoho:

  • 1 x Arduino UNO nebo podobné
  • 1 x prkénko
  • 8 x červených LED
  • Rezistory 8 x 220 ohmů
  • 1 x 10k ohmový potenciometr
  • Dráty pro připojení samců k mužům

Pokud máte startovací sadu Arduino Co je součástí startovací sady Arduino? [MakeUseOf vysvětluje] Co je zahrnuto v Arduino Starter Kit? [MakeUseOf vysvětluje] Předtím jsem zde na MakeUseOf představil open-source hardware Arduino, ale budete potřebovat více než jen samotného Arduina, abyste z něj něco vytvořili a abyste mohli začít. Arduino "startovací soupravy" jsou ... je pravděpodobné, že máte všechny tyto části (co můžete udělat se startovací sadou? 5 jedinečných Arduino projektů pro začátečníky, které můžete udělat s pouhým startovacím kitem 5 Unikátní Arduino projekty pro začátečníky, které můžete udělat s Just Starter Kit).

Téměř jakýkoli Arduino bude fungovat, za předpokladu, že má osm dostupných kolíků (Nikdy předtím Arduino nepoužíváte? Začínáme zde Začínáme s Arduino: Průvodce pro začátečníky Začínáme s Arduino: Průvodce pro začátečníky Arduino je platforma s otevřeným zdrojovým kódem pro elektroniku založená na flexibilním , snadno použitelný hardware a software. Je určen pro umělce, designéry, fandy a kohokoli, kdo má zájem o vytváření interaktivních objektů nebo prostředí.). Dalo by se použít programování Arduino Shift Register - hraní s Shift registry (a.k.a ještě více LED) Arduino Programování - hraní s Shift Registers (a.k.a ještě více LED) Dnes se pokusím vás trochu naučit o Shift Registrech. Jedná se o docela důležitou součást programování Arduino, v podstatě proto, že rozšiřují počet výstupů, které můžete použít, výměnou za ... k ovládání LED, i když to není pro tento projekt potřeba, protože Arduino má dostatek pinů.

Sestavte plán


Jedná se o velmi jednoduchý projekt. I když to může vypadat komplexně z velkého počtu vodičů, každá jednotlivá část je velmi jednoduchá. Každá světelná dioda (LED) je připojena ke svému vlastnímu Arduino pin. To znamená, že každou LED lze jednotlivě zapínat a vypínat. Potenciometr je připojen k analogu Arduino v pinech, který bude použit k nastavení rychlosti skeneru.

Okruh


Připojte vnější levý kolík (při pohledu zepředu, s kolíky dole) potenciometru k zemi. Připojte protilehlý vnější kolík k + 5V. Pokud to nefunguje správně, otočte tyto kolíky. Připojte prostřední pin k Arduino analogu ve 2.

Připojte anodu (dlouhou nohu) každé LED k digitálním pinům jeden až osm. Připojte katody (krátká noha) k Arduino zemi.

Kód

Vytvořte novou skicu a uložte ji jako “knightRider”. Zde je kód:

ledky const int [] = 1,2,3,4,5,6,7,8; // LED kolíky const int totalLeds = 8; int čas = 50; // Výchozí nastavení rychlosti void () // Inicializace všech výstupů pro (int i = 0; i.) <= totalLeds; ++i)  pinMode(leds[i], OUTPUT);   void loop()  for(int i = 0; i  0; --i) // Skenovat zprava doleva = analogRead (2); digitalWrite (led [i], HIGH); zpoždění); digitalWrite (led [i - 1], HIGH); zpoždění); digitalWrite (LED [i], LOW); 

Pojďme to rozebrat. Každý pin LED je uložen v poli:

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

Pole je v podstatě soubor souvisejících položek. Tyto prvky jsou definovány jako konstantní (“konst”), což znamená, že je nelze později změnit. Nemusíte používat konstantu (kód bude fungovat perfektně, pokud odeberete “konst”), i když se doporučuje.

K prvkům pole se přistupuje pomocí hranatých závorek (“[]”) a celé číslo zvané index. Indexy začínají na nule, tak “leds [2]” vrátí třetí prvek v poli - pin 3. Pole usnadňují psaní a čitelnost kódu, takže počítač dělá tvrdou práci!

Smyčka for for se používá k nastavení každého pinu jako výstupu:

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

Tento kód je uvnitř “založit()” funkce, protože stačí spustit pouze jednou na začátku programu. Pro smyčky jsou velmi užitečné. Umožňují vám znovu a znovu spouštět stejný kód s pokaždé jinou hodnotou. Jsou ideální pro práci s poli. Celé číslo “i” je deklarován a k této proměnné může přistupovat pouze kód uvnitř smyčky (tento je známý jako “rozsah”). Hodnota i začíná na nule a pro každou iteraci smyčky je i zvýšena o jednu. Jakmile je hodnota i menší nebo rovna “celkemLeds” proměnná, smyčka “přestávky” (zastávky).

Hodnota i se používá pro přístup k “led” pole. Tato smyčka přistupuje ke každému prvku v poli a konfiguruje jej jako výstup. Mohli byste psát ručně “pinMode (pin, OUTPUT)” osmkrát, ale proč napsat osm řádků, když můžete napsat tři?

Zatímco některé programovací jazyky vám mohou sdělit, kolik prvků je v poli (obvykle se syntaxí, jako je array.length), Arduino to neznamená tak jednoduchým (zahrnuje trochu více matematiky). Protože počet prvků v poli je již znám, není to problém.

Uvnitř hlavní smyčky (prázdná smyčka ()) jsou další dvě smyčky. První zapíná a vypíná LED od 1 - 8. Druhá smyčka zapíná a vypíná LED od 8 - 1. Všimněte si, jak je zapnut aktuální pin a současně je zapnut aktuální pin plus jeden. Tím je zajištěno, že jsou vždy dvě LED diody zapnuté současně, takže skener vypadá realističtěji.

Na začátku každé smyčky je hodnota potu načtena do “čas” proměnná:

time = analogRead (2);

To se provádí dvakrát, jednou uvnitř každé smyčky. To je třeba neustále kontrolovat a aktualizovat. Pokud by to bylo mimo smyčky, stále by to fungovalo, ale došlo by k malému zpoždění - spustilo by se pouze po dokončení provádění smyčky. Hrnce jsou analogové, proto proč “analogRead (pin)” se používá. Vrací hodnoty mezi nulou (minimum) a 1023 (maximum). Arduino je schopno převést tyto hodnoty na něco užitečnějšího, jsou však pro tento případ použití perfektní.

Zpoždění mezi měnícími se LED diodami (nebo rychlostí skeneru) je nastaveno v milisekundách (1/1000 sekundy), takže maximální doba je něco přes 1 sekundu.

Pokročilý skener

Nyní, když znáte základy, pojďme se podívat na něco složitějšího. Tento skener rozsvítí diody LED ve dvojicích počínaje z vnějšku a pracuje dovnitř. Poté to obrátí a přejde zevnitř na vnější páry. Zde je kód:

ledky const int [] = 1,2,3,4,5,6,7,8; // LED kolíky const int totalLeds = 8; const int halfLeds = 4; int čas = 50; // Výchozí nastavení rychlosti void () // Inicializace všech výstupů pro (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) // Čas prohledávání uvnitř párů = analogRead (2); digitalWrite (led [i], HIGH); digitalWrite (leds [(totalLeds - i) - 1], HIGH); zpoždění); digitalWrite (LED [i], LOW); digitalWrite (leds [(totalLeds - i) - 1], LOW); zpoždění); 

Tento kód je o něco složitější. Všimněte si, jak obě smyčky přecházejí z nuly na “halfLeds - 1” (3). Díky tomu je lepší skener. Pokud by obě smyčky šly ze 4 - 0 a 0 - 4, pak by stejné LED diody blikaly dvakrát ve stejné sekvenci - to by nevypadalo moc dobře.

Nyní byste měli vlastnit funkční LED skener Knight Rider! To by bylo snadné upravit tak, aby používal více nebo větší LED, nebo implementovat svůj vlastní vzor. Tento okruh je velmi snadné přenést na Raspberry Pi (nový Pi? Začněte zde Raspberry Pi: Neoficiální výuka Raspberry Pi: Neoficiální výuka Ať už jste současným majitelem Pi, který se chce dozvědět více, nebo potenciálním vlastníkem tohoto kreditu - zařízení velikosti karty, toto není průvodce, který si chcete nechat ujít.) nebo ESP8266 Seznamte se s Arduino Killer: ESP8266 Seznamte se s Arduino Killer: ESP8266 Co kdybych vám řekl, že je tu Arduino kompatibilní dev deska s vestavěným Wi- Fi za méně než 10 $? No, je. .

Stavíte repliku KITT? Rád bych viděl všechny věci Knight Ridera v komentářích.




15.03.22 06:26
<a href="https://t.me/filmfilmfilmes/9">Филомена</a>
11.03.22 19:58
http://bit.ly/legenda-destan-vse-serii
11.03.22 17:32
http://bit.ly/legenda-destan-vse-serii
11.03.22 15:17
http://bit.ly/legenda-destan-vse-serii
07.03.22 01:16
Дивитись фільм Бетмен <a href="http://bitly.com/betmen-2022-film">Дивитись онлайн Бетмен</a> Дивитись онлайн Бетмен
O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.