Bu uygulamamızda Arduino kartımıza bağladığımız Joystick modülünü kullanacağız. Joystick modülünün 4 yöndeki hareketine bağlı olarak 4 farklı led yanacak ve Modül üzerindeki butona basıldığı zaman bütün ledler yanacaktır. Bu uygulamada kullanacağımız malzemelerimiz;
Arduino UNO
5mm Kırmızı LED
220R veya 330R Direnç
Joystick Modül
Jumper Kablolar (E-E,D-E)
Breadboard
Devremizi bu şemaya göre kurup bağlantılarımızı yapıyoruz.
Joystick modülü, iki eksende hareketi sağlayan iki tane potansiyometre ve bir tane buton bulundurur. Joystickler genelde oyun konsollarında, kumandalarda vb. görülür. Bizim kullancak olduğumuz joystick modül ile birçok farklı projeler yapılabilir. Led Kontrolü,robot kol, uzaktan kontrol edilen robot bunlara örnek gösterilebilir.
Joystick modül çıkışı olarak ; VRx : X eksenindeki potansiyometrenin data pini VRy : Y eksenindeki potansiyometrenin datapini SW : Modül üzerindeki butonun data pini ,
Modülün çalışabilmesi için 5V ve GND bağlantısının yapılması gerekmektedir.
Devre bağlantısını yaptıktan sonra kodlama kısmına geçebiliriz.
#define Xpin A0 // X,Y pinleri tanımlandı.
#define Ypin A1
#define SW_pin 8 //Modül üzerindeki buton pini tanımlandı.
#define LED_+X 5 // Koordinat düzlemini temsilen +X,-X,+Y,-Y Ledleri tanımlandı.
#define LED_-X 3
#define LED_+Y 4
#define LED_-Y 2
int x_pos = 0 ; // Modülün x ekseni ve y ekseni üzerindeki pozisyonları için değişken tanımlandı.
int y_pos = 0 ;
int buton_durum ;
void setup() {
pinMode(SW_pin,INPUT); //Ledler ve Buton I/O pini olarak ayarlandı.
pinMode(LED_-X,OUTPUT);
pinMode(LED_+X,OUTPUT);
pinMode(LED_-Y,OUTPUT);
pinMode(LED_+Y,OUTPUT);
}
void loop() {
x_pos = analogRead(Xpin); //Modülün x ve y eksenindeki değerleri analog olarak okunup değişkenlere atandı.
y_pos = analogRead(Ypin);
buton_durum = digitalRead(SW_pin);
if(x_pos < 100) {digitalWrite(LED_+X,HIGH);} // X pozisyon değeri 100'ün altındaysa +X Ledini yak değilse söndür.
else {digitalWrite(LED_+X,LOW); }
if(x_pos > 900) {digitalWrite(LED_-X,HIGH);} //X pozisyon değeri 900'ün üzerindeyse -X Ledini yak değilse söndür.
else {digitalWrite(LED_-X,LOW); }
if(y_pos < 100) {digitalWrite(LED_+Y,HIGH);} //Y pozisyon değeri 100'ün altındaysa +Y Ledini yak değilse söndür.
else {digitalWrite(LED_+Y,LOW); }
if(y_pos > 900) {digitalWrite(LED_-Y,HIGH);} //Y pozisyon değeri 900'ün üzerindeyse -Y Ledini yak değilse söndür.
else {digitalWrite(LED_-Y,LOW); }
if(butondurum == 0) // Butona basıldıysa bağlı olan bütün ledleri yak.
{
digitalWrite(LED_-X,HIGH);
digitalWrite(LED_+X,HIGH);
digitalWrite(LED_-Y,HIGH);
digitalWrite(LED_+Y,HIGH);
}
}
Projenizi yaparken karşılaştığınız problemleri yorumlar kısmında belirtirseniz ekibimiz en kısa sürede size yardımcı olacaktır
تعليقات