Analog giriş fonksiyonları ile sadece potansiyometre gibi elemanların çıkışlarını değil aynı zamanda analog çıkış veren bütün sensörlerin gerilim değerlerini Arduino'ya aktarabiliriz.Elbette ki bu değerler 5V değerini aşmamalı.
Üst taraftaki resimde sıcaklık değerini analog çıkış olarak vermekte olan LM35 sensörü ve pinlerinin ne için kullanıldığı gösterilmekte.
Vs+ Arduino'muzun 5V, Toprak pini GND'ye ve Vçıkış olarak gösterilen pin de herhangi bir analog girişe takılarak Arduino ile sıcaklık ölçümü yapabiliriz.
Bu proje ile hem sensör ölçümlerine başlamış olacağız, hem de bir önceki yazıda görmüş olduğumuz "float" kodunu da kullanmış olacağız.
< Resime gitmek için tıklayın > Analog giriş için Arduino'daki A1 pin girişini kullandım. Analog girişler sol tarafta olduğundan devre kurma işininin rahat olması için breadboard un sağ tarafının kullanılması sağlıklı olur.
Matematiksel ifadeyi kurabilmek için yani analog değeri sayısal değere çevirmek için LM35'in analog çıkış yapısını bilmemiz gerekir.
Orta bacağından verilen mV mertebesindeki gerilim her °C için 10 mV üretir. Yani 25 °C için çıkış 250 mV olur.
Arduino'daki ADC 10 bitlik olduğu için ve en yüksek değerimiz 5000 mV olduğu için bu 5000 mV'u 1024 parçaya işlemcimiz ayıracaktır. Yani 1023.değer bize 5V'u verecek ve her 10 mV bize 1 °C 'yi verecek şekilde programımızı yazıyoruz.
float sicaklik; //Analog değeri dönüştüreceğimiz sıcaklık float analoggerilim; //Ölçeceğimiz analog değer int sicaklikpin=1; //Analog değer girişi
< Resime gitmek için tıklayın > Yavaş yavaş kablosuz düzeneklere geçmenin fayda sağlayacağını düşündüm. Bunun için de aralarından en basiti olan kızılötesi haberleşmeyi seçtim. Kısaca bahsetmek gerekirse kızılötesi bizim gözümüzle göremediğimiz ışınlar ve bu ışınları görebilen alıcı ve vericiler sayesinde 2 ayrı bağımsız devre belirli kodlamalar sayesinde haberleşebiliyor.En basitinden telefonunuzun kamerası ile televizyon kumandasının önündeki lede bakarken herhangi bir tuşa bastığınızda led'in yandığını görebilirsiniz. Fakat çıplak gözle kendimiz bu ışınları göremiyoruz.
TV kumandası seçtim çünkü hem bu kumandalardaki kodları çözümlemeyi öğrenmek hem de hazır bir verici olduğu için bizi fazla uğraştan kurtarır diye düşündüm :).
Kısaca yapacağımız projeyi anlatmam gerekirse önce TV kumandamızdaki tuşların kodlarını arduinomuz sayesinde öğreneceğiz ve bu kodları kullanarak sayısal çıkışlara hükmedeceğiz.
Bunu arduino'nun kurulu olduğu klasördeki libraries içine atıyoruz. Adını sadece IR yaparsanız iyi olur. Bu kütüphane ile kullanacağımız kodları incelememiz gerekirse;
IRrecv irrecv(receivePin) ; // Adını koyabileceğimiz bir IR alıcı oluşturuyoruz.
irrecv.enableIRIn() ; // IR ile veri alma işlemini başlatıyoruz.
irrecv.decode(&results); // Alınan kodu çözme teşebbüsüne girer.
results.value ; // Verinin kodudur. (bu değeri kullanacağız)
irrecv.resume(); // Veri alımından sonra diğer kodu almak için başa döner.
Önce aşağıdaki kodları yazıyoruz ve kullandığımız kumandanın kullanmak istediğimiz herhangi 4 tuşunun kodlarını yazıyoruz..Tabi önce Sketch>Import Library > IR'yi tıklıyoruz ki kütüphanemiz eklensin.
#include <IRremote.h>
int RECV_PIN = 11; //IR'nin 3.bacağını taktığımız pin IRrecv irrecv(RECV_PIN); decode_results kod; dekode sonucu
void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Alma başlıyor
}
void loop() { if (irrecv.decode(&kod)) { Serial.println(kod.value, DEC); // Kodun Decimal Değeri irrecv.resume();} // Yeni kod alımı
Benim kumandamda bu değerler çıktı. 1 tuştan 2 farklı değer çıkabilir. Mühim değil, 2 değeri de tek bir değere indirgeyeceğiz bu sorun da ortadan kalkmış olacak. Bunu da aşağıdaki örnekteki gibi yapacağım.
if(k==1874) return 1; // 1874 değerim 1 oldu
3 Led kullandım, 3 tuş açmak için kullanacağım , 1 tuşu da kapatmak için kullanacağım.
< Resime gitmek için tıklayın >
Üst taraftaki resimde sıcaklık değerini analog çıkış olarak vermekte olan LM35 sensörü ve pinlerinin ne için kullanıldığı gösterilmekte.
Vs+ Arduino'muzun 5V, Toprak pini GND'ye ve Vçıkış olarak gösterilen pin de herhangi bir analog girişe takılarak Arduino ile sıcaklık ölçümü yapabiliriz.
Bu proje ile hem sensör ölçümlerine başlamış olacağız, hem de bir önceki yazıda görmüş olduğumuz "float" kodunu da kullanmış olacağız.
< Resime gitmek için tıklayın >
Analog giriş için Arduino'daki A1 pin girişini kullandım. Analog girişler sol tarafta olduğundan devre kurma işininin rahat olması için breadboard un sağ tarafının kullanılması sağlıklı olur.
Matematiksel ifadeyi kurabilmek için yani analog değeri sayısal değere çevirmek için LM35'in analog çıkış yapısını bilmemiz gerekir.
Orta bacağından verilen mV mertebesindeki gerilim her °C için 10 mV üretir. Yani 25 °C için çıkış 250 mV olur.
Arduino'daki ADC 10 bitlik olduğu için ve en yüksek değerimiz 5000 mV olduğu için bu 5000 mV'u 1024 parçaya işlemcimiz ayıracaktır. Yani 1023.değer bize 5V'u verecek ve her 10 mV bize 1 °C 'yi verecek şekilde programımızı yazıyoruz.
Seri Haberleşme monitörü ile okuduğumuz değerler. Sensörün etrafında ateş yakarak değeri arttırabilirsiniz. Tabi sensörü yakmayın ateşle :))).
< Resime gitmek için tıklayın >
Video :
Videoyu izlemek için tıklayınız
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.