Arduino ile potansiyometre den analog giriş seviyesi,voltaj okuma Arduino Analog input level from potentiometer, voltage reading

Arduino devreleri ve uygulamaları

Arduino ile potansiyometre den analog giriş seviyesi,voltaj okuma
Arduino Analog input level from potentiometer, voltage reading

Analog bir bilgi sinyali digital olarak ölçülecek,işlenecek veya saklanacaksa işlemcinin bu sinyali yorumlayıp işleme tabi tutabilmesi için öncelikle analog sinyalin (0-1) şeklinde digital bilgiye çevrilmesi gerekir ve bu işlem ADC (analog to digital converter) analog dan digital e çevirici lerle yapılır mesela digital müzikçalar larda mikrofondan gelen analog ses sinyalini işleyebilmek için veya sıcaklık,nem,basıç,ışık v.b analog sinyallerle sayısal işlemler yapabilmek için ADC ler kullanılır.  Arduino da ise modeline göre 10 bit lik  6 ile 16 adet arasında ADC bulunur.

Analog dan digitale çevirme işlemi tüm ADC lerde şu şekilde yapılır.

Arduino analog girişlerinde ki ADC ler 0V ile +5V arası giriş gerilim seviyesini 10 bitlik binary bir digital çıkışa çevirir ki buda 1023 çözünürlükte decimal bir digital çıkış anlamına gelir ve kod yazarken 5V un ifade edileceği yere 1023 yazılır. yani daha basit şu şekilde de ifade edilebilir ki 5V  1023 eşit parçaya bölünür ve hangi voltaj değeri yazılacaksa ona karşılık gelen decimal değer yazılır yani her bir sayı 4.9 mV a tekabül eder.

Örnek devrede pot u saat yönünde çevirdikçe potun orta ucu GND ye yaklaşır ve aynı oranda +5V dan uzaklaşır ve gerilim seviyesi düşer,saat yönünün tersine çevirdikçe potun orta ucu GND den uzaklaşıp aynı oranda +5V a yaklaşır ve  gerilim seviyesi yükselir.

Bu değişken gerilim Arduino nun pot ismine tanımlanmış A4 analog girişinden  
“potseviye=analogRead(pot);” komutuyla okunur ve okunan değer “potseviye” ismine tanımlanır.

Bir sonraki satırda “potseviye=map(potseviye, 0, 1023, 0, 255);” komutuyla analog girişin 0 ile 1023 yani 0 ile 5V arasında  okuma yapmasını ve lambayı süren PWM çıkışın 0 ile 255 yani 0 ile +5V arasında çıkış vermesi sağlanmıştır.

Bir sonraki satırda “analogWrite(led, potseviye);” komutuyla potseviye ile ledin bağlı olduğu çıkışın eşitlenmesi sağlanmıştır.

Bir sonraki satırda ise “delay(5);” komutuyla,potansiyometre çevrildiğinde devrenin buna ne kadar zaman sonra tepki vereceği ayarlanmıştır.

Örnek kod:

int led=3;
int pot=A4;
int potseviye;

void setup(){

}

void loop(){
potseviye=analogRead(pot);
potseviye=map(potseviye, 0, 1023, 0, 255);
analogWrite(led, potseviye);
delay(5);

}

Aşağıdaki şekil üzerinden değerlendirilmek istenirse kod da yazdığımız PWM çıkışı için 0 değeri sönük lamba düşük seviyeyi,255 ise parlak lamba yüksek seviyeyi ifade eder.

Şekil ve şemaların çiziminde www.easyeda.com ve www.tinkercad.com sitelerinde ki online editör ve simülasyon programlarından yararlanılmıştır.