Arduino Eğitim Kiti – Tüm Yıl İçin Arduino Müfredatı: Ders 20 Joystick Modülü- 8×8 Dot Matrix – RGB LED için isterseniz sunu şeklinde alt taraftaki kutucuğu büyüterek takip edebilir, isterseniz de tüm sunu sayfalarının makale haline dönüştürülmüş versiyonu takip edebilirsiniz. İçerikler büyük oranda aynıdır. Sınıf ortamında kolaylık olması açısından sunu şeklinde de sunulmuştur.

Ders İçeriği:

Joystick Modülü- Dot Matrix – RGB LED / Projeler

Ders Kazanımları:

  • Joystick modülün nerelerde kullanılabileceğine örnekler verir.
  • RGB LEDdin çalışma mantığını açıklar.
  • 8×8 dot matrixin nerelerde kullanılabileceğini örnekler verir.
  • 8×8 dotmatrix uygulamasını yardım almadan başarılı bir şekilde yapar.

Joystick Modülü:

  • Bu modül ile oyun konsolları, robot kumandası, robotik el kontrolcüsü tasarlayabilirsiniz.
  • Modül x ve y ekseninde pozisyona bağlı olarak çıkış verir.
  • Aynı zamanda içerisinde bir adet buton bulundurur. Bu özelliği tercihe bağlı olarak kullanabiliriz.
  • Joystick modülün genel bağlantı şekli aşağıdaki gibidir. 2 numaralı digital pine bağlı bacağı tercihe göre başka bir dijital pine bağlayarak kullanabilirsiniz. Joystick modül kullanılarak geliştirilen projelerde bağlantı şemaları değişebilir. İlerideki projelerde ayrıntılı açıklamaları vardır.
Resim108

MAX7219 – 8X8 Dot Matrix Kartı:

  • 8×8 kırmızı dot matrix modülü farklı ve eğlenceli uygulamalar geliştirmek için tasarlanmıştır.
  • Üzerindeki beyaz bölümlerin her biri birer LEDdir.
  • Belirli kodlar ile bunlara sinyal göndererek eğlenceli uygulamalar geliştirebiliriz.
  • MAX7219, mikrokontrolcü projelerinde ortak katot LED paneller, 7-parçalı göstergeler, seviye göstergeleri gibi birimleri sürmek için kullanılan SPI kanalına sahip entegredir.
  • Kart üzerinde MAX7219 entegresi ve 8×8 Dot Matrix LED gösterge bulunmaktadır.
Resim109 e1570977098200

RGB LED:

  • RGB ledler 3 ana rengin birleşiminden oluşan ledlerdir. Bu ledlerin içerisinde kırmızı, yeşil ve mavi olmak üzere 3 led birbirine bağlıdır.
  • Bu birleşim genellikle ortak katot olarak adlandırılır. Katot – (eksi) demektir. Ortak anot rgb ledler de vardır.
  • Bu üç ana rengi değişik şiddetlerde ayarlayarak tüm renkleri elde etmemiz mümkündür.
  • Bu kontrol basit bir şekilde potansiyometre veya kodlar ile de yapılabilir.
  • Bacakların temsil ettiği renkler aşağıda resmedilmiştir.
Resim110

  • Her bir bacak bir Arduino dijital çıkışına bağlanır. Hangi bacağa 5V (HIGH) gönderilirse ledden o renk elde edilir. Aşağıda resmedilen led ortak anottur, ledin ortak anot bacağı Arduino’nun 5V bacağına bağlanır. Ortak katot ledlerde bulunmaktadır. Ortak katot ledler de ortak bacak Arduino’nun GND bacağına bağlanır.
  • Aşağıdaki bağlantı örnek olması amacıyla resmedilmiştir. İlerleyen derslerde rgb modül ile örnekler bulunmaktadır. Bağlantı şekilleri farklılık gösterebilir.
Resim111


Oluşabilecek Hatalar:

Aşağıda ki programları çalıştırırken bir takım hatalarla karşılaşabilirsiniz. Bu hataların kodların yazımında meydana gelen hatalar dışında başka sebeplerle ortaya çıkması muhtemeldir. Bu hatalardan sık karşılaşılanlara aşağıda değinilmiştir.

Kart Seçilmesinden Kaynaklı Hata:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru kartın seçilmesi gerekmektedir. Kart seçilmediğinde “Karta yüklenirken bir sorun oluştu.” benzeri bir hata alabilirsiniz.

USB Portun Seçilmesiyle İlgili Hatalar:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru portun seçilmesi gerekmektedir. Bu port Arduino Uno’nun bilgisayara bağlandığı usb porttur. Farklı şekilde bilgisayarınızda usb driver yüklenmemiş olabilir. Bu gibi hatalarda “Port bulunamadı.” gibi hatalar almanız muhtemeldir.


Uygulama 1: 8×8 Dot Matrix Modül İle Harf Yazma

Kullanılacak Malzemeler:

Bağlantı Şeması:

Bağlantılar şekildeki gibi yapılır.

Resim112

Dot Matrix modülün VCC pini 5V, GND pini GND’ye, DIN pini Arduino Uno üzerinde 12 nolu pine, CS pini 11 nolu pine, CLK pini 10 nolu pine bağlanır.

Kodlar:

Uygulamanın “.ino” dosyalarını (kod dosyalarını) buradan indirebilirsiniz.

#include <LedControl.h> //LedControl.h kütüphanesinin tanımlanması
int DIN=12; //dotmatric pinlerinin tanımlanmaı
int CS=11;
int CLK=10;
LedControl lc=LedControl(DIN,CLK,CS,0); //lc değişkenini tanımlanması
void setup() {
lc.shutdown(0,false);
lc.setIntensity(0,15); //dot matrix parlaklığı
lc.clearDisplay(0); //dotmatrixin temizlenmesi
}
void loop() {
byte R[8]={0x00,0x38,0x24,0x24,0x38,0x24,0x24,0x00}; //R harfi hexadecimal
printByte(R); //R harfinin dotmatrixde gösterilmesi
delay(1000); //1000 milisaniye beklenmesi
}
void printByte(byte character[]) //printbyte adında fonksiyon oluşturulması
{ int i=0; //i değişkenine 0 atanması
for(i=0;i<8;i++) //8 adımlı bir fonksiyon tanımlanması
{lc.setRow(0,i,character[i]);
}
}
  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada Dot Matrix üzerinde “R” harfi yazdığı görülmektedir.

Uyarı:

Sıradaki uygulamada RGB ledden renk alamadığınız takdirde ortak bacağı GND yerine 5V‘a bağlayın.


Uygulama 2: Joystick ile RGB LED Kontrolü

Kullanılacak Malzemeler:

Bağlantı Şeması:

Bağlantılar şekildeki gibi yapılır.

Resim113

  1. Arduino üzerindeki 5V pini breadboard üzerinde “+” hatta, GND pini ise yine breadboard üzerinde “-” hatta bağlanır.
  2. RGB LED breadboard üzerine sabitlenir.
  3. Uzun bacağı breadboard üzerinde “-” hatta bağlanır.
  4. Uzun bacağın yanında tek olan bacak Arduino Uno üzerinde 9 nolu pine, diğer iki bacak ise soldan sağa doğru (yeşil) 10 ve (mavi) 11 nolu pinlere bağlanır.
  5. Joystick modülün VCC pini “+” hatta, GND pini “-” hatta, MS pini 2 nolu pine, VRX pini A0, VRY ise A1’e bağlanır.

Kodlar:

Uygulamanın “.ino” dosyasını (kod dosyasını) buradan indirebilirsiniz.

const int SW_pin = 2; // jy Ms pininin bağlandığı pin
const int X_pin = A0; // jy VRX bacağının bağlandığı pin
const int Y_pin = A1; // jy VRY bacağının bağlandığı pin
int redPin = 9; //RGB ledin kırmızı bacağının bağlandığı pin
int greenPin = 10; // RGB ledin yeşil bacağının bağlandığı pin
int bluePin = 11;//RGB ledin mavi bacağının bağlandığı pin
int YPIN; //int türünde değişken tanımlanması
int XPIN;
int SWPIN;
void setup() {
pinMode(SW_pin, INPUT); // MS pininden giriş bilgisi alınacağı
digitalWrite(SW_pin, HIGH); //pine 5v gönderilmesi
Serial.begin(9600); //seri ekranın başlatılması
pinMode(redPin, OUTPUT); // pinlerin çıkış olarak belirlenmesi
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void setColor(int red, int green, int blue) //renk ayarı için fonksiyon tanımlanması
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
void loop() {
int YPIN = analogRead(Y_pin); //Y_pin den okunan değerin YPIN değişkenine atanması
int XPIN = analogRead(X_pin); //Y_pin den okunan değerin YPIN değişkenine atanması
int SWPIN = digitalRead(SW_pin); //Y_pin den okunan değerin YPIN değişkenine atanması
if(YPIN == 0) {setColor(100, 80, 0); delay(100);} //eğer YPIN den okunan değer 0 ise
else {setColor(0, 0, 0);} //renk ayarı yap
if(YPIN == 1023) {setColor(225, 0, 225); delay(100);}//eğer YPIN den okunan değer 1023 ise
else {setColor(0, 0, 0);} //renk ayarı yap
if(XPIN == 0) {setColor(0, 0, 225); delay(100);} //eğer XPIN den okunan değer 0 ise
else {setColor(0, 0, 0);} //renk ayarı yap
if(XPIN == 1023) {setColor(0, 225, 0); delay(100);} //eğer XPIN den okunan değer 1023 ise
else {setColor(0, 0, 0);} //renk ayarı yap
if(SWPIN == LOW) {setColor(80, 20, 0); delay(100);} //eğer SXPIN den okunan değer 0v ise
else {setColor(0, 0, 0);} //renk ayarı yap
}
  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada joystick sağa-sola ve yukarı-aşağı hareket ettikçe RGB ledde renk değişimi gözlenecektir.
  • RGB ledin butonuna basıldığında ise ana renklerin karışımı gözlenecektir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz