XY Joystick ile RGB Bargraf LED Kontrolü
Merhaba arkadaşlar, bu yazımızda Trudyo Geliştirme Kartı ile XY Joystick Modülü‘nü kullanarak RGB Bargraf LED kontrolü uygulaması gerçekleştireceğiz.
XY Joystick Modülü Hakkında Kısa Bir Bilgi
XY Joystick Modülü, içerisinde iki adet 10k değerinde potansiyometre ve bir adet tact switch bulundurmaktadır. Bu sayede potansiyometreler ile X ve Y koordinat verisini elde etme imkanı sunmaktadır. Ayrıca butonun altında bulunan tact switch yardımı ile butona basma durumunun algılanmasını da sağlamaktadır.
XY Joystick Modülü’nün pinlerini ve bu pinlerin fonksiyonlarını aşağıdaki tablo üzerinden inceleyebilirsiniz.
Pin No | İsim | Açıklama |
1 | GND | GND Bağlantı Pini |
2 | +5V | +5V Bağlantı Pini |
3 | VRx | X Ekseni Analog Çıkış Pini |
4 | VRy | Y Ekseni Analog Çıkış Pini |
5 | SW | Switch Dijital Çıkış Pini |
Bargraf RGB LED Hakkında Kısa Bir Bilgi
Bargraf RGB LED, içerisinde 10 adet LED bulunduran bir display türüdür. Sadece tek renk LED’ler ile üretilebileceği gibi, farklı renkleri bir araya getirerek üretilen versiyonları da sıklıkla tercih edilmektedir.
Bargraf LED’in iç yapısı ve bağlantıları aşağıda gösterilmiştir.
Pin No | İsim | Açıklama |
1 | GND | GND Bağlantı Pini |
2 | VCC | +5V Bağlantı Pini |
3 | VRx | X Ekseni Analog Çıkış Pini |
4 | VRy | Y Ekseni Analog Çıkış Pini |
5 | SW | Switch Dijital Çıkış Pini |
XY Joystick Modülü, Bargraf RGB LED ve Trudyo Geliştirme Kartı Bağlantısı
Yukarıda görüldüğü üzere XY Joystick Modülü, Trudyo Geliştirme Kartı’nın A0(VRx), A1(VRy) ve A2(SW) pinlerine bağlanmıştır. Bargraf RGB LED ise, Trudyo Geliştirme Kartı’nın D portunun tamamı ve C6-C7 pinlerine bağlanmıştır.
Bu Uygulamada Kullanılan Malzemeler
400 Pin Orta Boy Breadboard
Trudyo Geliştirme Kartı
Başlamadan Önce
Trudyo Konfigürasyon Ayarları
Trudyo Geliştirme Kartı ile programlama yapabilmek için kartınızın konfigürasyon ayarlarını yapmanız gerekmektedir. Gerekli konfigürasyon ayarlarını yapmak için “Trudyo Konfigürasyon Ayarları” yazımızı okuyabilirsiniz.
XY Joystick ile RGB Bargraf LED Uygulama Kodları
// Connections
sbit LED at LATA4_bit; // Dahili LED
sbit SW at RA2_bit; // XY Joystick Switchi
sbit BAR_9 at LATD7_bit; // Bargraf LED 10.LED
sbit BAR_8 at LATD6_bit; // Bargraf LED 09.LED
sbit BAR_7 at LATD5_bit; // Bargraf LED 08.LED
sbit BAR_6 at LATD4_bit; // Bargraf LED 07.LED
sbit BAR_5 at LATD3_bit; // Bargraf LED 06.LED
sbit BAR_4 at LATD2_bit; // Bargraf LED 05.LED
sbit BAR_3 at LATD1_bit; // Bargraf LED 04.LED
sbit BAR_2 at LATD0_bit; // Bargraf LED 03.LED
sbit BAR_1 at LATC7_bit; // Bargraf LED 02.LED
sbit BAR_0 at LATC6_bit; // Bargraf LED 01.LED
unsigned int adcValue=0;
unsigned int adcChannel=0;
void main() {
TRISA=0b00000111;// [][][][LED][][SW][VRy][VRx]
TRISC=0b00000000;// [BAR_1][BAR_0][][][][][][]
TRISD=0b00000000;// [BAR_9][BAR_8][BAR_7][BAR_6][BAR_5][BAR_4][BAR_3][BAR_2]
ANSA0_bit=1; // RA0 - AN0 girisi analog giris olarak kullanilacak (VRx)
ANSA1_bit=1; // RA1 - AN1 girisi analog giris olarak kullanilacak (VRy)
ANSA2_bit=0; // RA2 - AN2 girisi dijital giris olarak kullanilacak (SW)
ADC_Init(); // ADC'yi hazirla
while(1){
adcValue=ADC_Read(adcChannel);
if(!SW){// Eger switche basilirsa
delay_ms(250);
adcChannel=!adcChannel; // ADC kanalini degistir. VRx ve VRy secimi
while(!SW){ // Butona basili kaldigi sürece tüm LED'leri yak, 250ms bekle ve geri söndür.
BAR_0=1; BAR_1=1; BAR_2=1; BAR_3=1; BAR_4=1; BAR_5=1; BAR_6=1; BAR_7=1; BAR_8=1; BAR_9=1;
delay_ms(250);
BAR_0=0; BAR_1=0; BAR_2=0; BAR_3=0; BAR_4=0; BAR_5=0; BAR_6=0; BAR_7=0; BAR_8=0; BAR_9=0;
delay_ms(250);
}
}
if(adcValue>512){
if(adcValue>1000) BAR_9=1; else BAR_9=0;
if(adcValue>950) BAR_8=1; else BAR_8=0;
if(adcValue>900) BAR_7=1; else BAR_7=0;
if(adcValue>850) BAR_6=1; else BAR_6=0;
if(adcValue>800) BAR_5=1; else BAR_5=0;
if(adcValue>750) BAR_4=1; else BAR_4=0;
if(adcValue>700) BAR_3=1; else BAR_3=0;
if(adcValue>650) BAR_2=1; else BAR_2=0;
if(adcValue>600) BAR_1=1; else BAR_1=0;
if(adcValue>550) BAR_0=1; else BAR_0=0;
}
else{
if(adcValue>500) BAR_9=0; else BAR_9=1;
if(adcValue>450) BAR_8=0; else BAR_8=1;
if(adcValue>400) BAR_7=0; else BAR_7=1;
if(adcValue>350) BAR_6=0; else BAR_6=1;
if(adcValue>300) BAR_5=0; else BAR_5=1;
if(adcValue>250) BAR_4=0; else BAR_4=1;
if(adcValue>200) BAR_3=0; else BAR_3=1;
if(adcValue>150) BAR_2=0; else BAR_2=1;
if(adcValue>100) BAR_1=0; else BAR_1=1;
if(adcValue> 50) BAR_0=0; else BAR_0=1;
}
}
}
Uygulamaya ait dosyaları buraya tıklayarak indirebilirsiniz. Merak ettiğiniz ve aklınıza takılan soruları aşağıda 👇 yorum olarak bize iletebilirsiniz. Yeni uygulamalar gerçekleştirirken YouTube kanalımızdaki videolarımızdan yararlanmayı unutmayın. İyi çalışmalar. 🙂 #geliştirmeyebaşla
Yorum yapmak için giriş yapmalısınız.