Selamınaleyküm
Bu bölümde if – else yapısından ve seri port ekranından arduinoya veri göndermekten bahsedeceğim . Şimdiye kadar yaptığımız projelerde programın içinde tanımladığımız değişkenleri kullanarak arduinoya iş yaptırmıştık, bu projede klavyeden girdiğimiz değişken değerleri kullanarak if – else yapısını tanımaya çalışacağız.
Bu projede elektronik malzemelere ihtiyacımız olmayacak sadece arduinoyu bilgisayarımıza bağlayıp mantıksal işlemleri yaptıracağız. Arduino idemizi açıp aşağıdaki kodları yazalım.
void setup() {
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
int a = Serial.readString().toInt();
if ( a < 5 ) {
Serial.println((String)a + " sayisini girdiniz bu deger 5 'ten kucuktur");
} else if ( a > 5 ) {
Serial.println((String)a + " sayisini girdiniz bu deger 5 'ten buyuktur");
} else if ( a == 5 ) {
Serial.println((String)a + " sayisini girdiniz bu deger 5 'e Esittir");
} else {
Serial.println("tanımsız komut");
}
}
}
Fark ettiğiniz üzere kodlarımızda daha önce kullanmadığımız bazı fonksiyonlar var sırayla neler yaptığımızı ve ne işe yaradıklarını anlatayım.
Serial.begin(9600)
Serial diyerek arduino ile bilgisayarımızın seri port üzerinden haberleşeceğini begin(9600) ile de hızını belirleriz, bu hız baud adı verilen bir değerle ifade edilir. Burada yazdığımız 9600 sayısı saniyede gönderilen bit sayıdır. Seri port ekranının sol alt köşesindeki baud değeri ile koda yazdığımız değerin aynı olmasına dikkat edin zira verilerin doğru görüntülenmesini doğrudan etkiler.
Serial.available()
Bu fonksiyon seri port ekranından veri girişi olup olmadığını denetler. Programımızda if içerisinde kullanarak bir veri girişi olup olmadığını kontrol ediyoruz.
Serial.readString()
Bu fonksiyonla seri port ekranına girilen veriyi oku demiş oluyoruz, sonuna eklediğimiz toInt() fonksiyonu ile string değer olarak okuduğumuz karakteri sayısal değere çeviriyoruz çünkü döngü içerisinde sayısal bir karşılaştırma yaptık .
if ( a < 5 ) {…}
Bu kısımda a değişkenimize ekrandan girilen sayının 5 sayısından küçük olma durumunu kontrol ediyoruz . arduino da tıpkı diğer dillerde kullandığımız karşılaştırma operatörleri kullanıyoruz detaylı anlatım içinburadaki yazımda dökümanların linkini bulabilirsiniz.
Serial.print() ve Serial.println()
Bu iki fonksiyon seri port ekranına yazı yazmak için kullanılır. Her ikisi de aynı işi yapmakla beraber arada ki tek fark Serial.println() kullandığınızda yazdırdığınız değerin sonuna bir satır sonu ekler ve bir sonraki satıra iner. Her ikisi de değişkenleri direk olarak ekrana yazamazlar bunu yapabilmek için değişkenimizi string olarak dönüştürmemiz gerekir .
Yükleme ve çalıştırma
Kodlarımızı arduino ya yükledikten sonra aşağıdaki resimde işaretlenen butona tıklayıp seri port ekranını açıyoruz
Açılan pencerede dikkat etmemiz gereken bazı ayarlar var, bunlardan ilki 1 ile işaretlediğim kısım burada sizin yazdıklarınızın peşine seçtiğiniz ayara göre fazladan karakter eklenir ki bu da bizim karşılaştırma yapmamızı zorlaştırır bu sebeple burayı satır sonu yok olarak seçin. İkinci kısımda ise kodumuzun en başında belirlediğimiz iletişim hızı ayarı var bu kısımda kodda ne yazdıysak ona uygun seçmeliyiz. Son olarak pencerenin üstünde yer alan kısma bir sayı girip gönder butonuna ya da enter tuşuna basıp arduino ile ilk iletişimimizi gerçekleştirebiliriz.
Youtube playlist :
https://www.youtube.com/watch?v=4lneyUsTu7c&list=PLaEea2gDu6vVcpvw0EdwRDdJjMOR0qakn