Arudino kullanarak, Joystick modülünü kullanarak, döndürülen eksendeki ledlerin yanmasını sağlayan devreyi yakından inceleyelim.
Proje için gerekli malzemeler:
- Arduino
- Breadboard
- Joystick modülü
- 4 Adet LED
- 4 Adet 220ohm direnç
- Jumper kablolar
İçindekiler
Proje önizleme
Joystick modülü
Joystick, biri dikey hareket (Y ekseni) ve diğeri yatay hareket (X ekseni) için olmak üzere birbirine bağlı iki potansiyometreye benzer.
Potansiyometreler değişken dirençlerdir ve bir bakıma dönüşlerine bağlı olarak değişken voltaj değeri döndüren sensörler gibi davranırlar.
Çeşitli oyun projelerinde, kontrolcülerde kullanılabilir. Örneğin yılan oyunu, pac-man oyunu gibi projeler joystick modülü ile yapılmaktadır.
Modülü incelediğimiz zaman, 2 farklı eksen potansiyometesi bulunmaktadır. (X-Y). Bu potansiyomtereler hareket ettikçe modül değeri değişerek Arduino’ya değişen değer aktarılarak istenilen sonuç elde ettirilir. Çubuğun başlangıç konumu ( x,y:511.511) konumundadır . Çubuk X ekseni üzerinde bir uçtan diğer uca hareket ettirilirse, X değerleri 0’dan 1023’e değişecektir ve Y ekseni boyunca hareket ettirildiğinde benzer olay yaşanacaktır.
Bağlantı şeması
Proje kodu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | //-----------------------------------------// //----------------KODKAMPUSU---------------// //---Arduino | Joystick ile LED Kontrolü---// //-----------------------------------------// //Joystick pin belirlemelerini yapıyoruz int VRX = A1; int VRY = A2; //Joystick eksenlerinin hareketlerini değişkenlere tanımlıyoruz int xeksen; int yeksen; void setup() { //Ledlerin tanımlamasını yapıyoruz pinMode(INPUT_PULLUP); pinMode(2,OUTPUT); //mavi pinMode(3,OUTPUT); //yeşil pinMode(4,OUTPUT); //kırmızı pinMode(5,OUTPUT); //sarı } void loop() { //Joystick üzerinden gelecek hareketleri okutarak değişkenlere tanımlıyoruz xeksen = analogRead(VRX); yeksen = analogRead(VRY); if(xeksen<10) digitalWrite(2,HIGH); //Joystick, yukarı doğru oynatınca: Mavi Ledi yakacak if(xeksen>1000) digitalWrite(4,HIGH); //Joystick, aşağı doğru oynatınca: Kırmızı ledi yakacak if(yPeksen<10) digitalWrite(3,HIGH); //Joystick, sağa doğru oynatınca: Yeşil ledi yakacak if(yeksen>1000) digitalWrite(5,HIGH); //Joystick, sola doğru oynatınca:Sarı ledi yakacak digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); } |
Bağlantı ve kodlama sırasında karşılaştığınız hataları; aşağıda ki yorum bölümünden belirtebilirsiniz 🙂