ETİKETLER
arduino
Genel Arduino Uygulamaları
Arduino ile en çok kullanılan fonksiyon ve özellikleri önceki yazılarımızda öğrendik. Artık öğrendiklerimizle uygulamalar yapmaya başlayabiliriz. Bu bölümde yapacağımız uygulamalar kolaydan zora doğru gitmektedir. Bölümde gösterilen uygulamaların, ilk etapta incelenmesi ve denenmesi, daha sonra da üzerinde değişiklikler yapılarak yeni projelerin üretilmesi, Arduino kullanımını pekiştirecektir.
Trafik lambaları
Ortam Sıcaklığını Arduino ile Tweet Atmak
Ethernet modülümüzü başarılı bir şekilde internete bağladığımıza göre, bu modül ile yapılabilecek projelere bakalım. "ethercard-master" kütüphanesi içerisinde tweet atmak için yazılmış örnek program bulunmaktadır. Bu program üzerinde ufak değişiklikler yaparak ortam sıcaklığını tweet atan bir devre kurabiliriz. Öncelikle Twitter'a mesaj yollayabilmemiz için kişisel jetonunuzun (token) olması gerekir. Bunun için burada linki verilen Twiter uygulamasını kullanabilirsiniz.
Arduino ile Web Tarayıcı Yapımı
Ethernet modülünün internete başarıyla bağlanıp bağlanmadığını anlamak için bu uygulamada Arduino ile internet sitelerine bağlanmaya çalışacağız. Bağlandığımız sitenin HTML kodlarını seri monitöre yazdıracağız. Böylece Arduino ile basit bir web tarayıcı yapmış olacağız.
Uzaktan Kontrollü Sıcaklık Sensörü
Bu projede kullanılacak olan iki Arduino Uno'dan birinde LM35 sıcaklık sensörü bulunmaktadır. Bu, Arduino ortam sıcaklığını ölçerek, sıcaklık bilgisini nRF24L01 kablosuz haberleşme modülünü kullanarak, diğer Arduino'ya aktaracaktır. Sıcaklık bilgisini alan Arduino ,seri port üzerinden Serial Monitör'e yazdıracaktır. Bu uygulamada nRF24L01 modülünün devreye nasıl bağlandığını ve Arduino kodunun nasıl yazıldığını öğrenmiş olacağız.
SPI ile İki Arduino Arasında Haberleşme
SPI kütüphanesi, Arduino'nun her zaman master konumunda olacağı düşünülerek hazırlanmış fakat bu uygulamamızda kullanacağımız Arduino'lardan birisi master, diğeri ise slave (köle) durumunda çalışacak. Master olan Arduino için SPI kütüphanesi yeterli olacak fakat diğer Arduino için kütüphane dışında kendi komutlarımızı yazmamız gerekir.
Arduino ile IMU Kullanımı
Bu uygulamada I2C haberleşme protokolünü destekleyen MPU-6050 IMU kartının üzerinde bulunan sensörlerle sıcaklık ivme ve cayro değerlerini ölçeceğiz. Bu sensörler yerine aynı görevi yapan farklı sensörler de kullanabilirsiniz. Öncelikle kullanacağınız sensörün datasheet'ini yani belirtimini okuyarak sensörün I2C adresini ve veri isteme şeklini öğrenmelisiniz.
I2C ile iki Arduino Arasında Veri Aktarımı
I2C bağlantı şemasını ve kullanılacak fonksiyonları öğrendiğimize göre, artık küçük bir örnek ile I2C'yi daha iyi anlayabiliriz. Bu örnekte iki adet Arduino Uno kullanılacaktır. Arduino Uno'lardan birisi master birisi de slave görevinde bulunacaktır.
Master görevindeki Arduino, slave görevindeki Arduino'ya bağlı LED'leri kontrol edecek ve slave görevindeki Arduino'dan veri alacak. Slave görevindeki Arduino, master görevindeki Arduino'dan gelen veriyi yorumlayacak. Gelen veriye göre de LED'leri kontrol edecek ve diğer Arduino'ya veri yollayacak.
I2C Fonksiyonları
I2C haberleşme protokolünün çalışma şeklini ve bağlantı hatlarını öğrendiğimize göre, Arduino'nun I2C haberleşmesini yapabilmesi için kullanmamız gereken fonksiyonları tanıyalım. Bu fonksiyonlar Arduino'nun "Wire.h" kütüphanesi içerisinde bulunmaktadır. Bu yüzden öncelikle bu kütüphaneyi projemize dâhil etmeliyiz.
Dış Kesmeler (External interrupt)
Arduino projelerinde sıkça kullanılan diğer bir kesme çeşidi de dış kesmelerdir. Dış kesmeler, Arduino'nun özel pinlerinde gerçekleşen voltaj değişimlerini takip eden kesmelerdir. Örneğin Arduino'nun dış kesme pinine bağlanmış bir düğmeye basıldığında, dış kesme Arduino'ya otomatik olarak haber verir. Bu kesme sayesinde Arduino sürekli olarak düğmeye basılıp basılmadığını kontrol etmek zorunda kalmaz, bu sırada başka işlemleri yerine getirebilir.
Zaman Kesmesi (Timer Interrupt)
Zaman kesmesi (timer interrupt), belirli süre aralıklarında belirli görevlerin yapılabilmesi için kullanılır. Örneğin bir LED'in saniyede bir yakıp söndürülmesi gerekmektedir. Bu işlem için loop fonksiyonunun kullanılması yerine, zaman kesmesinin kullanılması Arduino programının rahatlamasını sağlayacaktır. Kullanılan kesme her saniyede bir Arduino'ya haber vererek, LED'in yakılıp söndürülmesini sağlayacaktır.