ARDUINO BUTON İLE RGB LED RENK DEĞIŞTIRME UYGULAMASI

Evet arkadaşlar, bir önceki yazımda RGB Led temelleri ve örnek uygulama yapmıştık bu yazımda da devam niteliğinde bir uygulama paylaşacağım. Bu uygulama da Buton ile RGB Led Renk Değiştirme Uygulamasıolacak. Hobi amaçlı yada odanızda dekor amaçlı yaptığınız bir aydınlatma hatta direk odanızın aydınlatmasını RGB Ledlerle yapıp farklı renklerde aydınlatma yapabilirsiniz. Bunun için renk seçimini butonlar yardımıyla yapmak basit seçeneklerden birisi olacaktır. Önceki yazımızda bahsettiğimiz gibi RGB Ledlerde Renk pinleri olan Red Green Blue değerler 0-255 arasında değişmekteydi. Bu uygulamada bu RGB led renk pinlerine gönderilecek olan değerleri butonlar yardımıyla kendimiz değiştireceğiz.  Şemamız ve gerekli malzemeler aşağıdaki gibi olacaktır.

Malzemler
1 x Arduino Uno
1 x RGB Led (Ortak Katot)
3 x Direnç 100 ohm
3 x Switch Buton
Yeteri kadar Jumper kablo


Şemadaki butonlar sırasıyla 7 nolu pindeki buton Kırmızı (Red), 6 nolu pindeki buton Yeşil (Green) ve 5 nolu pindeki buton da Mavi (Blue) renk miktarını kontrol edecek. Şimdi uygulama ile ilgili arduino kodunu paylaşalım.

   //////////////////////////////////////////////
  //          Arduino Projeleri İçin;         //
 //                                          //
//  https://ozkantastan.blogspot.com.tr/    //
/////////////////////////////////////////////
int RedPin = 11;
int GreenPin = 10;
int BluePin = 9;
int ButonGreen = 6;
int ButonRED = 7;
int RedValue=0;
int ButonBlue = 5;
void setup()
int GreenValue=0; int BlueValue=0; {
pinMode(GreenPin, OUTPUT);
pinMode(RedPin, OUTPUT); pinMode(BluePin, OUTPUT);
pinMode(ButonBlue,INPUT);
pinMode(ButonRed,INPUT); pinMode(ButonGreen,INPUT); } void loop() {
if(RedValue > 255)
if(digitalRead(ButonRed)== HIGH) { delay(15); RedValue++; { RedValue = 0; } }
GreenValue = 0;
if(digitalRead(ButonGreen)== HIGH) { delay(15); GreenValue++; if(GreenValue > 255) { }
analogWrite(RedPin,RedValue);
}if(digitalRead(ButonBlue)== HIGH) { delay(15); BlueValue++; if(BlueValue > 255) { BlueValue = 0; } }
}
analogWrite(GreenPin,GreenValue);
analogWrite(BluePin,BlueValue);





Uygulamada butona basıldıktan sonra 15 milisaniye kadar bekle kullanmamızın nedeni butona basılıp çekilene kadar geçen sürede çok hızlı saydırma yapmasını engellemektir. 

Not: uygulama Fritzing şemasında Buton Topraklama Dirençleri unutulmıştur. Sizler eklemeyi unutmayın !!

Arduino Dersleri 4:ARDUINO HC-SR04 ULTRASONIC SENSÖR KULLANIMI

Merhaba arkadaşlar, Arduino Projeleri kapsamında kullandığımız sensörlerin başında gelen bir diğer sensör de mesafe ölçen HC-SR04 Ultrasonic Sensördür.  Arduino ile yaptığımız bir çok uygulamada farklı amaçlarda kullandığımız Ultrasonic sensör ile ilgili temel bilgileri ve örnek uygulamaları bu yazıda göreceğiz.

HC-SR04 Ultrasonic Sensör , mesafe ölçmek amacıyla kullanılan bir sensördür. İsminden de anlaşılacağı gibi temel mantık "Sonic" yani ses dalgaları kullanılarak ölçüm yapılmaktadır. Bildiğimiz gibi ses dalgaları havada , deniz seviyesinde  ve 21 °C sıcaklıkta yaklaşık 343.2 m/s (343.2 metre/saniye) (yaklaşık 1235.5 km/saat) hız ile yol alır. HC-SR04 Ultrasonic Sensör, ses dalgalarının bu özelliğinden faydalanılarak, sesin bir cisme ulaşıp, çarpıp , geri dönme süresini ölçerek mesafenin hesaplandığı bir sistemdir. 

Arduino ile HC-SR04 Ultrasonic Sensör Uygulamaları  için farklı seçenekler düşünülebilir. Bu yazıda temel arduino kodlarını görüp birkaç örnek yapalım. Öncelikle yapacak olduğumuz uygulamalar için malzemeleri şu şekilde sıralayabiliriz.

Malzemeler
1 x Arduino UNO R3
1 x HC-SR04 Ultrasonic Sensör
2 x Direnç 100 ohm
1 x Kırmızı Led
1 x Yeşil Led

 HC-SR04 Ultrasonic Sensör ile ilk uygulamamız okunan mesafe değerinin serial ekrana yazılması olacak bunun için gerekli Arduino Kodu aşağıdaki gibidir. Bu uygulamada HC-SR04 Ultrasonic Sensörden okunan değerler serial ekrana 500 mili saniye aralıklarla yazdırılmıştır. Uygulamada Ultrasonic Sensörün TRIG pini Arduino üzerindeki 8 nolu pine, ECHO pini arduino üzerindeki 9 nolu pine bağlanmıştır.

ÖRNEK KOD;

   //////////////////////////////////////////////
  //          Arduino Projeleri İçin;         //
 //                                          //
//  https://ozkantastan.blogspot.com.tr/    //

/////////////////////////////////////////////
int TrigPIN = 8;
int EchoPIN = 9;
void setup()
{
Serial.begin (9600);
pinMode(TrigPIN, OUTPUT);
pinMode(EchoPIN, INPUT);
long sure, mesafe;
} void loop() {
//alt kısımda ses dalgası gönderilip alınarak toplam süre ölçülür.
digitalWrite(TrigPIN, LOW); delayMicroseconds(2);
sure = pulseIn(EchoPIN, HIGH);
digitalWrite(TrigPIN, HIGH); delayMicroseconds(10); digitalWrite(TrigPIN, LOW);
mesafe = (sure/2) / 29.1;
//Bu kısımda da geçen süreden aradaki mesafe hesaplanır.
Serial.print("Öçlülen Mesafe : ");
//ölçülen değerin serial ekrana yazdırılma işlemi Serial.print(mesafe); Serial.println(" cm");
}
delay(500);

İkinci örnekte de HC-SR04 ultrasonic sensör ile led kontrolü yapacağımız bir uygulama olsun. Uygulama bağlantımıza biri kırmızı diğeri yeşil olmak üzere iki led ekleyelim ve ölçülen mesafe değerine göre bu ledlerin yanıp sönmelerini kontrol edelim. Sırasıyla 6 ve 7 nolu pinlere bağladığımız kırmızı ve yeşil ledler, mesafe 100 cm den küçük olunca kırmızı ledin yandığı yeşil ledin söndüğü ve mesafe 100cm den büyük olduğu durumda yeşil led yanarken kırmızı led sönük olsun.

Sensör Uygulaması Örnek Kodu;

   //////////////////////////////////////////////
  //          Arduino Projeleri İçin;         //
 //                                          //
//  https://ozkantastan.blogspot.com.tr/    //
/////////////////////////////////////////////
int TrigPIN = 8; int EchoPIN = 9; int KirmiziLED = 6; int YesilLED = 7; void setup() { pinMode(TrigPIN, OUTPUT); pinMode(EchoPIN, INPUT); pinMode(KirmiziLED, OUTPUT); pinMode(YesilLED, OUTPUT); } void loop() { long sure, mesafe; //alt kısımda ses dalgası gönderilip alınarak toplam süre ölçülür. digitalWrite(TrigPIN, LOW); delayMicroseconds(2); digitalWrite(TrigPIN, HIGH); delayMicroseconds(10); digitalWrite(TrigPIN, LOW); sure = pulseIn(EchoPIN, HIGH); //Bu kısımda da geçen süreden aradaki mesafe hesaplanır. mesafe = (sure/2) / 29.1; if(mesafe<100) { digitalWrite(KirmiziLED,LOW); digitalWrite(YesilLED,HIGH); } }



Arduino ile HC-SR04 Ultrosonic Sensor uygulamaları ile ilgi farklı paylaşımlar için takipte kalın kolay gelsin..

ARDUINO VE LM35 ILE SICAKLIK ÖLÇÜMÜ

Robotik uygulamalarında yaygın örneklerden birisi de sıcaklık ölçümüdür. Sıcaklık ölçümü konusunda kullanılan en basit ve yaygın sensör de LM35'dir. Bu yazımızda Arduino ile LM35 sensöründen analog okuma yaparak sıcaklık değerini ölçeceğiz.


Öncelikle LM35 sensörünü inceleyelim. LM35 sensörü -55 C ile 150 C arasında ölçüm yapabilen bir transistördür. Hassasiyeti 10mV/derece dir. Yani her bir derece için 10mV çıkış verir.

LM35 üzerinden sıcaklık ölçümü yaparak sıcaklığı Serial Monitöre yazdıralım.

ÖRNEK KOD;


   //////////////////////////////////////////////
  //          Arduino Projeleri İçin;         //
 //                                          //
//  https://ozkantastan.blogspot.com.tr/    //
/////////////////////////////////////////////
int sicaklik;
int gelen_veri;
int LM35Pin = A0; // LM35 in data pini A0 pinine bağlanacak.
void setup() {
// Analog işlemler için ilgili pinlerin setup ayarları yapılmaz.
Serial.begin(9600); // Serial haberleşmeyi açıyoruz. } void loop() {
gelen_veri = analogRead(LM35Pin); // gelen data "gelen_veri" değişkenine kaydediliyor.
sicaklik = (gelen_veri)*0.48828125;// voltajdan sıcaklık değeri dönüşümü yapılıyor Serial.print("SICAKLIK = "); //serial monitöre yazdırma işlemi
}
Serial.print(sicaklik); Serial.println("*C"); delay(1000);

Programın Serial Monitör Çıktısı ;


Arduino ile LCD kullanımı

Merhaba Arkadaşlar bu yazıda Arduino ile LCD kullanımını anlatacağız. LCD'ler bir çok sistemde kullanılan gösterge amaçlı araçlardır. Arduino'da oluşturulmuş hazır kütüphane LCD kullanımı kolaylaştırmıştır. 


     Arduino UNO LCD kullanımı için LiquidCrystal isimli bir kütüphane oluşturmuş ve bu kütüphane ile LCD de yazma, silme satır atlama gibi işlemler çok basitleştirilmiş.

     Başlıca LCD yazma komutlarını anlatalım öncelikle. Dediğimiz gibi Arduino LCD kullanımı için LiquidCrystal kütüphanesini oluşturmuş. LCD sürmek için öncelikle bu kütüphaneyi projemize dahil etmemiz gerekiyor.

     "#include < LiquidCrystal.h >"


     Arduino LCD arasındaki pin bağlantıları ayarlamak için ise;     
     LiquidCrystal lcd(12, 11, 5, 4, 3, 2) komutu kullanılır. Buradaki bağlantılar ise şu şekilde gerçekleşir. Pinleri kendiniz belirleyerek değiştirebilirsiniz.

LCD RS pini ile Arduino Dijital 12 pini
LCD Enable pini ile Arduino Dijital 11 pini
LCD D4 pini ile Arduino Dijital 5 pini
LCD D5 pini ile Arduino Dijital 4 pini
LCD D6 pini ile Arduino Dijital 3 pini
LCD D7 pini ile Arduino Dijital 2 pini  

lcd.begin(16 , 2) :  komutu lcd yazma işlemini başlatmaya ve kullanılacak olan lcd nin boyutlarını belirmek için setup() kısmında kullanılır. Yazılan kod 16x2 boyutlarındaki lcd için yazılmıştır. Farklı satır ve sütuna sahip lcdler için bu kısım değiştirilerek kullanılır.

lcd.print("Robot Projeleri") :  komutu istediğimiz yazıyı LCD ekranına yazdırmak için kullanılır. Bu komut ile char, byte, int, long, yada string değerler gönderilebilir.
    

lcd.clear() : LCD ekranında yazılı olanları siler.
   
lcd.setCursor(0 , 0) : komutu cursorun ekrandaki yerini belirlemek için kullanılır yada diğer bir değişle yazının yazılmaya başlanacağı satır sütunu ayarlamak için kullanılır.

lcd.display() / lcd.noDisplay()LCD ekranını açıp kapamak için kullanılır.
     
lcd.scrollDisplayLeft() : LCD ekranındaki yazının pozisyonunu bir hane sola kaydırır.
     
lcd.scrollDisplayRight() : LCD ekranındaki yazının pozisyonunu bir hane sağa kaydırır.

ÖRNEK KOD;
   //////////////////////////////////////////////
  //          Arduino Projeleri İçin;         //
 //                                          //
//  https://ozkantastan.blogspot.com.tr/    //
/////////////////////////////////////////////
#include < LiquidCrystal.h >
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() { lcd.begin(16,2); }
lcd.print("Hello World !");
void loop() { delay(1000); lcd.clear();
lcd.clear();
lcd.print("Robot Projeleri"); delay(1000);
}

Arduino üzerinde Serial Monitörden LCD ye mesaj göndermek ve Visual Studio C# ile bir arayüz tasarlayıp yine LCD ye mesaj gönderen uygulamlar da sonraki yazılarda paylaşılacaktır.
Herkese iyi çalışmalar. Görüşmek Üzere...