Introduction: 4. Ruleta S Ř-duino

About: We are an all-embracing team of a broad spectrum of knowledge and skills which perceives the development of new machines, systems and technologies as a challenge.

Ahoj, dneska si uděláme hru, která kromě programování a zapojení bude potřebovat i špetku vaší kreativity. Řeč je o ruletě. Hlavní myšlenkou bude vytvořit kolečko LEDek, kde každá LEDka bude mít svůj význam. Po stisknutí tlačítka pak postupně začnou problikávat po sobě jdoucí LEDky, než se světlo na jedné z nich zastaví a ta zabliká. Co každá LEDka znamená, už nechám na vaší představivosti.

Supplies

  • Ř-duino - zde
  • USB-C - zde
  • LEDky - zde
  • Rezistory - zde
  • Nepájivé pole - zde
  • Vodiče - zde
  • Tlačítka

Step 1: Tlačítko

Tlačítko je pasivní elektrická součástka, která po stisknutí spojí obvod a umožní průchod elektrického proudu skrz tlačítko. Můžeme si ho představit jako lávku na laně, která přemosťuje dvě cesty. Poté, co tlačítko stiskneme, "lávka" se sníží, a "cestující" (elektřina) tak po ní mohou přejít.

Pro lepší představu se můžete podívat na obrázek s bílým pozadím, černými čarami a kruhy. Toto je způsob, jak se tlačítko zobrazuje na schématech elektrických obvodů, a přijde mi, že celkem dobře popisuje jeho fungování.

Jedna věc, na kterou si dát pozor, je, že naše tlačítka mají čtyři nožičky, z nichž dvě jsou vždy propojené v páru. Na obrázku s černou a červenou čárou je naznačeno, které dvě nožičky jsou vždy propojeny, a chceme-li, aby nám proud procházel z červené čáry na černou, pak musíme tlačítko stisknout. Pomůckou nám může být, že vždy jsou propojené nožičky, které jsou přímo naproti sobě.

V sadě vždy dodáváme pět tlačítek s hmatníky (ty barevné čepičky), jež jdou na tlačítko nasadit pro pohodlnější používání.

Step 2: Zapojení

Zapojte svoji stavebnici podle obrázku.

(šedé čáry pouze značí kudy vedou nožičky rezistorů)

Step 3: Kód

Budeme používat ArduinoIDE. Než však začneme psát kód, budeme muset nastavit některé věci.


Nyní připojte desku k počítači, klikněte na nápis "Tools" na vrchní liště aplikace, vyberte "Board" a následně klikněte na "Arduino Uno". Dále opět klikněte na "Tools", poté na "Port" a vyberte z nabízených možností port, na kterém je připojena vaše deska. Pokud nevíte na kterém portu je vaše deska připojena tak se nebojte vyzkoušet všechny možnosti :D


A nyní již pojďme psát kód:


(Vše napsáno po "//" nebo vepsané mezi "/* */" je comment. To znamená že se nejedná o kód ale o text napsaný, aby vám pomohl kódu porozumět. Zkuste si je přečíst a pokusit se pochopit co se v kódu děje.)

// Přidáme knihovnu pro ovládání Arduina pro možnost použití kódu na platformě PlatformIO
#include <Arduino.h>

// Definujeme si proměnou uchovávající na které LEDce jsme
int aktPos = 2;


/*
* Tato metoda je zahájena jako první aby vše nastavila
*/
void setup(){
// Nastavíme si PINy LEDek na výstup
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);


// Nastavíme sí PIN tlačítka na vstup
pinMode(8, INPUT);


// Rozsvítíme si první LEDku
digitalWrite(aktPos, HIGH);
}


/*
* Tato metoda je zahájena jako druhá a opakuje se do nekonečna
*/
void loop(){


// Pokud je tlačítko zmáčknuto tak se ruleta "roztočí"
if(digitalRead(8) == HIGH)
{


// Nastavíme si náhodnost
randomSeed(millis());


// Budeme se "točit" mezi LEDkami než uděláme 3 kolečka + náhodný počet LEDek menší nebo roven 3 kolečkám
for(int i = 1; i <= 18 + random(1, 19); i++)
{


// Zhasneme aktuální LEDku a rozsvítíme další v pořadí
digitalWrite(aktPos, LOW);
aktPos++;
if(aktPos > 7)
aktPos = 2;
digitalWrite(aktPos, HIGH);
delay(200);
}


// Poslední LEDka 3-krát blikne
for(int i = 1; i >= 3; i++)
{
digitalWrite(aktPos, HIGH);
delay(200);
digitalWrite(aktPos, LOW);
delay(200);
}
}
}



Nyní klikněte na "Upload" (ikona šipečky) a máte hotovo :D