KKM: Joystick Modul PS2

Početnik si s Croduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM! Kako Koristiti Module (KKM) je serija blog tutorijala e-radionice na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Croduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu.

Uvod

 
PS2 joystick je još jedan vrlo jednostavan ulazni modula za Croduino. Daje nam analogna očitanja X i Y smjera, ujedno i kut, te digitalno očitanje tipkala. Modul je optimalno rješenje za navigaciju izbornika, upravljanje robota ili igranje igrica. Ovaj tutorial možete koristi i s modulom kojeg ste "izvadili" iz starog PS2 joysticka.
 
KARAKTERISTIKE:
 
Napon: 5V
Dimenzije: 35 x 35 x 35mm

Osnovni princip rada

 
Modul na sebi ima dva potenciometra koji se pomiču ovisno o tome kako pomičemo gljivicu na joysticku. Jedan je povezan s osi x, a drugi s osi y. Uzmimo za primjer os x: ako gljivicu pomaknemo do kraja u lijevo, potenciometar ce nam davati očitanje bliže groundu. Ako idemo u desno, ocitanje ce biti bliže naponu na kojega smo spojili modul. Naravno, sama su očitanja analogna(dobivamo vrijednost 0-1023) te je moguće precizno odrediti poziciju gljivice. Tipkalo radi na principu da šalje HIGH (1) kada je neaktivno i LOW (0) kada je tipkalo aktivno. To znači da tipkalo ima ugrađen pull-up otpornik.
Untitled
 
Ono što stvara analogne vrijednosti su dva potenciomentra smještena ispod dijela na kojem se nalazi gljivica joysticka. Struja teče kroz oba, a izlazni napon će ovisiti o količini otpora koju daju potenciometri. Otpor se smanjuje ili povečava ovisno o položaju joysticka. Promatrajući oba potenciometra, ovaj joystick može odrediti točan kut pod kojim se nalazi.

Kako povezati modul s Croduinom?

 
Untitled Sketch_bb
 
Modul ima ukupno 9 pin-ova, ne moramo koristiti sve. Svaki smjer, tipkalo ima svoje GND i Vcc pin-ove, dovoljno je
da samo jedan Vcc i jedan GND spojimo na iste Croduina.

S-X - A0 analogni pin Croduina
S-Y - A1 analogni pin Croduina
S-k - digitalni PIN6 Croduina
Vcc - +5V
GND - gnd

Arduino kod

 

///////////////////////////////////////////////////////////////////////////////
/* */
/* */
/* (c) e-radionica.com 2015 - http://www.e-radionica.com/licenca */
/* [email protected] */
/* */
/* Kod prikazuje polozaj x i y smjera, te aktivaciju tipke */
/* PS2 JOYSTICK na CROduino - KKM tutorial */
///////////////////////////////////////////////////////////////////////////////
int x = A0; //S-X s modula na analogni pin A0 Croduina
int y = A1; //S-Y s modula na analogni pin A1 Croduina
int tipka = 6; //S-K s modula na digitalni PIN6 Croduina
//dovoljno je spojiti po jedan Vcc i GND s modula na Croduino
int pauza = 0; // pauza izmedju ocitanja u milisekundama
int pp, vrijednostX, vrijednostY;
void setup() {
pinMode(x, INPUT); //definiram varijable kao ulazne parametre
pinMode(y, INPUT); //nije nuzno analogne input pinove Croduina definirati kao INPUT u pinMode f-ji
pinMode(tipka, INPUT);
Serial.begin(9600); // zapocinjem serijsku komunikaciju
}
void loop() {
vrijednostX = analogRead(x); // citam analogne vrijednosti
vrijednostY = analogRead(y);
pp != digitalRead(tipka); // spremi LOW kao HIGH, i obratno
Serial.print("X= "); // ispisujemo analogna ocitanja Serial Monitoru
Serial.print(vrijednostX);
Serial.print(" |Y= ");
Serial.print(vrijednostY);
Serial.print(" |push= ");
Serial.println(pp);
delay(pauza);
}
Leave a Reply