Bu yazımızda arduino programlama dili yani arduino komutları kullanarak arduino ile analog veri okuma işleminin nasıl yapılacağını öğreneceksiniz.
Öncelikle bilmemiz gereken, analog ve dijital(digital) olmak üzere iki sinyal vardır.
Analog sinyal aslında yaşadığımız her an duyu organlarımızla alıp işlediğimiz verilerdir. Mesela gözlerimiz sonsuz rengi ayırt edebilir, kulaklarımızın duyabileceği sonsuz ses tonu vardır, burnumuzla koklayabileceğimiz sonsuz sayıda koku olabilir. Analog sinyaller sonsuz çeşitliliktedir.
Dijital sinyal ise, belirli sınırları olan sinyal çeşididir.
Çok iyi anlaşılmadı değil mi? Şimdi görsellerle ve örneklerle ayrımı daha iyi anlayacaksınız.
Yukarıda görüldüğü üzere analog sinyal belirli aralıkta sınırlı olsa da, bu aralıkta sonsuz değer alabiliyor. Örneğin, 0-5v arasında bir analog sinyal, 1 volt, 2volt gibi değerler alabileceği gibi 3.1volt, 4.9volt, 2,333volt gibi daha ayrıntılı değerler de alabilir.
Yukarıda görüldüğü üzere dijital sinyaller sonlu olası değerler alabilir. Örneğin, yaygın olarak kullanılan 0-5v arasındaki bir dijital sinyal, ya 0 volt değeri alır ya da 5 volt değeri alır.
Analog sinyali ve dijital sinyali öğrendik. Şimdi gelelim, Arduino ile bu sinyallerin nasıl kullanığına. Örnekler üzerinden gitmek daha anlamlı olacaktır diye düşünüyorum.
Örneğin arduino ile bir led yakmak istiyorsunuz fakat potansiyometre(pot) ile ledin parlaklığını da ayarlamak istiyorsunuz. Peki potansiyometreden ayarları her değiştiğinde arduino bunu nasıl algılayacak? İşte burada yapılacak işlem, arduinonun analog pinlerinden bir tanesine potansiyometreyi bağlamak ve potansiyometredeki değeri analog olarak okumak. Okunan değere göre de lede gönderilecek voltajı değiştirerek ledin parlaklığını ayarlamak mümkün olacak.
Bir örnek daha vermek istiyorum. Otomatik bahçe sulaması yaptığımız bir projemiz olsun. Topraktaki nemi algılayıp, su pompasını çalıştıracağımız bir proje olacak. Toprak nem sensörü, topraktaki nem değerini yine bir analog pin vasıtasıyla arduinoya iletecek ve bizde arduino kodları kullanarak hangi nem değerinde sulama yapmasını istiyorsak, su pompasına çalış emri göndereceğiz.
AnalogRead Komutu
AnalogREAD() komutu Arduinonun analog pinlerinden analog sinyalleri okur. Bu sinyal 0-5v arasında değişen bir sinyaldir.
Arduino da 10-bitlik analog dijital dönüştürücü bulunmaktadır. Bu, 0 ile 5 volt arasındaki analog giriş gerilimlerini 0 ile 1023 arasında tamsayı değerlere dönüştürür. Yani arduinonun analog pinlerinden okunan değerler 0-1023 arasında olur. 5 volt değeri, 10bit dönüştürücü(2 üzeri 10 değerinden dolayı 1024 sayısı elde edilir) ile dönüştürüldüğünden 5/ 1024 birim veya birim başına 0,0049 volt (4,9 mV) okuma değerleri arasında bir çözünürlük sağlar.
AnalogRead() Kullanımı
Bu komutun anlamını en iyi örnekleyerek açıklayabiliriz. O yüzden bunun için ideal olan bir led’in parlaklığını potansiyometre ile değiştirmeye yarayan programımızı örnek olarak ekliyoruz.
Potansiyometre ile led parlaklı kontrol arduino devresi
Devreyi incelediğimizde Led’in uzun (+) bacağını arduino 3 numaralı pwm pinine, potansiyometrenin data bacağını ise arduino A0 analog pinine bağladık. Resimdeki bağlantıları inceleyerek kendi devrenizi oluşturun.
Potansiyometre ile led parlaklı kontrol arduino kodları:
const byte potPin=A0; //Potansiyometre data pini arduino bağlantı pini int potDeger; //Potansiyometreden okunacak değer değişkeni int ledPin=3; //Led'in bağlı olduğu pwm pini void setup() { // 3 numaralı pwm led pinini çıkış olarak ayarlıyoruz. pinMode(ledPin,OUTPUT); } void loop() { //map komutu ile potansiyometre değerini //pwm sinyaline dönüştürüyoruz. potDeger=map(analogRead(potPin),0,1023,0,255); analogWrite(ledPin,potDeger); }
Kodları incelersek; potansiyometreden okunan 0ile 1023 arasındaki analog değeri map komutuyla 0-255 pwm sinyaline dönüştürdükten sonra, analogWrite(ledPin,potDeger); komutu ile LED’in bağlı olduğu arduino pwm pinine gönderiyoruz. Bu sayede potansiyometre ile led parlaklığını kontrol edebiliyoruz.
Kodları arduino kartına yüklemeden önce kart ve port seçiminin doğru yapıldığından emin olun. Yükleme işlemi gerçekleştiğinde, potansiyometreyi çevirerek led parlaklık ayarını yapabilirsiniz.