Potenciometar i joystick
U današnjem dijelu radionice upoznat ćemo dva vrlo česta i zanimljiva ulazna elementa: potenciometar i joystick. Oba ova senzora omogućuju da Arduino prepozna pokrete ili promjene koje korisnik napravi te prema njima kontrolira druge elemente, poput LED dioda, motora ili serva.
Potenciometar – promjenjivi otpornik
analogRead(). Time možemo, primjerice, kontrolirati jačinu svjetlosti LED diode, brzinu motora ili glasnoću zvuka.
Vježba 1: Kontrola LED diode pomoću potenciometra
Što nam treba:
- Arduino Uno
- LED dioda i otpornik 220 Ω
- Potenciometar 10 kΩ
- Povezni kablovi
Zadatak:
- Napravi sklop prema shemi.
- Spoji potenciometar – krajnje nožice na 5 V i GND, a srednju na analogni ulaz A0.
- Spoji LED diodu na digitalni izlaz D9 (preko otpornika 220 Ω).
- U programu koristi analogRead(A0) da pročita položaj potenciometra i pomoću analogWrite(9, vrijednost) prilagodi jačinu svjetla LED diode.
// C++
int val = 0;
void setup()
{
pinMode(9, OUTPUT);
Serial.begin(9600);
}
void loop()
{
val = analogRead(A0);
Serial.println(val);
analogWrite(9, val/4); // na D9 možemo slati samo vrijednosti 0-255
delay(10);
}
Joystick – dva potenciometra i dugme u jednom
Joystick je zapravo kombinacija dvaju potenciometara (za X i Y os) te digitalnog dugmeta. Omogućuje nam da mjerimo pomak u lijevo-desno i gore-dolje, te prepoznamo pritisak na dugme.
Vježba 2: Očitavanje joysticka
Što nam treba:
- Arduino Uno
- Joystick modul
- Povezni kablovi
Zadatak:
- Poveži pinove X i Y osi joysticka na analogne ulaze A0 i A1.
- Poveži SW (switch) pin na digitalni ulaz D2.
- U programu pomoću analogRead(A0) i analogRead(A1) očitaj pomake joysticka, a pomoću digitalRead(2) provjeri je li dugme pritisnuto.
- Na serijskom monitoru ispisuj očitane vrijednosti ili upotrijebi ih za upravljanje svjetlima, motorima, ili drugom Arduino komponentom.
Dodatna pitanja i zadaci:
- Pripazi da digitalni ulaz D2 inicijaliziraš pomoću naredbe:
pinMode(2, INPUT_PULLUP);
kako bi dobio ispravno očitanje je li dugme pritisnuto. - Provjeri kakvo ćeš očitanje dobiti ako ulaz inicijaliziraš pomoću naredbe:
pinMode(2, INPUT); - Možeš li objasniti zašto?
// C++
int buttonPin = 2;
int xPin = A0;
int yPin = A1;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
int button = digitalRead(buttonPin);
double x = analogRead(xPin);
double y = analogRead(yPin);
Serial.print("x = ");
Serial.print(x);
Serial.print(", y = ");
Serial.print(y);
Serial.print(", b = ");
Serial.println(button);
delay(100);
}
Što smo naučili?
- Potenciometar mijenja otpor i omogućuje analognu kontrolu neke veličine.
- Joystick koristi dva potenciometra i dugme za višesmjernu interakciju.
- Arduino pomoću analogRead() pretvara napon (0–5 V) u digitalnu vrijednost (0–1023), što omogućuje precizno mjerenje.
- Ove komponente su odlična podloga za buduće projekte poput upravljanja robotima, igricama ili interaktivnim instalacijama.
Uz ovo znanje, sljedeći korak može biti povezivanje joysticka sa servo motorima za upravljanje robotom ili 3D modelom na ekranu!
◀ 2. Senzori, ulazi i izlazi ☸ Ultrazvučni senzor i zvuk ▶