- Potreban materijal
- Kružni dijagram
- Modul džojstika
- Šifra i objašnjenje
- Upravljanje LED diodama pomoću džojstika s Arduinom
Prvo što nam padne na pamet slušajući riječ džojstik je kontroler igre. Da, potpuno je isti i može se koristiti u igraće svrhe. Osim u igrama, ima i mnoge druge primjene u DIY elektronici. Ovaj džojstik nije ništa drugo do kombinacija dva potenciometra za X i Y ravninu. Očitava napon kroz potenciometar i daje analognu vrijednost Arduinu, a analogna se vrijednost mijenja dok pomičemo osovinu džojstika (što je jednostavno pokazivač potenciometra).
U ovom krugu povezujemo džojstik s Arduinom jednostavnim upravljanjem četiri LED-a prema kretanju džojstika. Postavili smo 4 LED diode na takav način da predstavlja smjer kretanja osovine upravljačke palice. Ovaj džojstik također ima tipku koja se može koristiti u razne druge svrhe ili može ostati neaktivna. Pojedinačna LED dioda također je pričvršćena na prekidač džojstika, kad se pritisne tipka džojstika, ta će se jedna LED lampica UKLJUČITI.
Potreban materijal
- Arduino UNO
- Modul džojstika
- LED-5
- Otpornik: 100ohm-3
- Spajanje žica
- Breadboard
Kružni dijagram

Modul džojstika
Joystickovi su dostupni u različitim oblicima i veličinama. Tipični modul džojstika prikazan je na donjoj slici. Ovaj modul džojstika obično daje analogne izlaze, a izlazni naponi koje pruža ovaj modul neprestano se mijenjaju u skladu sa smjerom u kojem ga pomičemo. A smjer kretanja možemo dobiti tumačenjem tih promjena napona pomoću nekog mikrokontrolera. Prije smo Joystick povezali s AVR-om i Raspberry Pi-om.

Ovaj modul joysticka ima dvije osi kao što vidite. To su osi X i Y osi. Svaka os JOYSTICK-a je postavljena na potenciometar ili lonac. Središnje točke ovih lonaca istjeruju se kao Rx i Ry. Dakle, Rx i Ry su varijabilne točke prema ovim loncima. Kad je džojstik u stanju pripravnosti, Rx i Ry djeluju kao razdjelnik napona.
Kad se džojstik pomiče po vodoravnoj osi, napon na Rx zatiču se mijenja. Slično tome, kada se pomiče duž okomite osi, mijenja se napon na Ry pinu. Tako imamo četiri smjera džojstika na dva ADC izlaza. Kad se palica pomakne, napon na svakom zatiču postaje visok ili nizak, ovisno o smjeru.
Ovdje povezujemo ovaj modul džojstika s Arduino UNO-om koji dolazi s ugrađenim ADC (Analog to Digital Converter) mehanizmom kao što je prikazano u videu na kraju. Ovdje saznajte više o korištenju Arduinovog ADC-a.
Šifra i objašnjenje
Na kraju se spominje cjeloviti Arduino kôd.
U donjem kodu definirali smo X i Y os modula Joystick za analogni pin A0 i A1.
#define joyX A0 #define joyY A1
Sada, u donjem kodu, inicijaliziramo PIN 2 Arduina za prekidač (tipkalo) modula Joystick i vrijednost buttontate i buttonstate1 na početku će biti 0.
tipka int = 2; int buttonState = 0; int buttonState1 = 0;
U donjem kodu postavljamo brzinu prijenosa na 9600 i definirali smo pin 7 kao izlazni pin, a pin kao ulazni pin. U početku će zatik gumba ostati visok dok prekidač ne pritisne.
void setup () {pinMode (7, IZLAZ); pinMode (gumb, INPUT); digitalWrite (gumb, VISOKO); Serial.begin (9600); }
Ovdje u ovom kodu čitamo vrijednosti s analognog pina A0 i A1 i serijski ispisujemo.
int xValue = analogRead (joyX); int yValue = analogRead (joyY); Serial.print (xValue); Serial.print ("\ t"); Serial.println (yValue);
Uvjeti za uključivanje i isključivanje LED-a prema kretanju osovine džojstika definirani su u donjem kodu. Ovdje samo uzimamo analogne vrijednosti napona na pinu A0 i A1 Arduina. Te analogne vrijednosti mijenjat će se dok pomičemo navigacijsku tipku, a LED će svijetliti prema kretanju joysticka.

Ovaj je uvjet za pomicanje osovine joysticka u smjeru osi Y
if (xValue> = 0 && yValue <= 10) {digitalWrite (10, HIGH); } else {digitalWrite (10, LOW);}
Ovaj je uvjet za pomicanje osovine joysticka u smjeru osi -X
if (xValue <= 10 && yValue> = 500) {digitalWrite (11, HIGH); } else {digitalWrite (11, LOW);}
Ovo je uvjet za pomicanje osovine joysticka u smjeru + X osi
if (xValue> = 1020 && yValue> = 500) {digitalWrite (9, HIGH); } else {digitalWrite (9, LOW);}
Ovaj je uvjet za pomicanje osovine joysticka u smjeru + Y osi
if (xValue> = 500 && yValue> = 1020) {digitalWrite (8, VISOKO); } else {digitalWrite (8, LOW);}
Kada dijagonalno pomičemo osovinu joysticka, dolazi jedan položaj kada će analogna vrijednost X i Y biti 1023, odnosno 1023, i LED 9 i Pin 9 i Pin 8 svijetlit će. Jer zadovoljava stanje LED-a. Dakle, za uklanjanje te neusklađenosti dali smo uvjet da, ako je vrijednost (X, Y) (1023, 1023), obje LED diode ostaju u stanju ISKLJUČENO
if (xValue> = 1020 && yValue> = 1020) {digitalWrite (9, LOW); digitalWrite (8, LOW); }
Sljedeći uvjet koristi se za upravljanje LED diodom spojenom na prekidač tipke. Kada pritisnemo prekidač za upravljanje, LED će se uključiti i zaskočiti dok se gumb ne otpusti. Neobavezno je koristiti prekidač s gumbom na modulu Joystick.
if (buttonState == LOW) {Serial.println ("Switch = High"); digitalWrite (7, VISOKO); } else {digitalWrite (7, LOW);}
Upravljanje LED diodama pomoću džojstika s Arduinom

Nakon učitavanja koda u Arduino i spajanja komponenata prema shemi sklopa, sada možemo upravljati LED-ima pomoću joysticka. Možemo UKLJUČITI četiri LED-a u svakom smjeru prema pokretu osovine joysticka. Joystick ima dva potenciometra unutar sebe, jedan je za pomicanje osi X, a drugi za kretanje osi Y. Svaki potenciometar dobiva 5v od Arduina. Kako pomičemo džojstik, vrijednost napona će se mijenjati, a analogna vrijednost na analognim pinovima A0 i A1 također će se mijenjati.
Dakle, iz Arduina čitamo analognu vrijednost za X i Y os i UKLJUČUJEMO LED diode prema pomicanju osi joysticka. Prekidač s tipkom na modulu joysticka koristi se za upravljanje pojedinačnom LED diodom u krugu, kao što je prikazano na donjem videu.
