Arduino Analog Giriş Fonksiyonu

Analog giriş ikilik sistemde olmayan , belirli aralıklarda değişen sinyalleri okumak için kullanılır. Örneğin dijital girişleri okurken sinyal var ya da sinyal yok, 1 ya da 0, True ya da False şeklinde okuyorduk. Analog girişleri okurken 0 ile 5V arasında sinyali okuma çözünürlülüğüne göre dijital – analog çevirme işlemine tabi tutuyoruz. Örneğin bir sıcaklık sensörü düşünelim. Bize verdiği değer 0 ile 5 volt arasında herhangi bir değer olabilir. Örneğin sensörümüz 2,756V sinyal versin. Kullandığımız arduino Analog – Dijital Dönüştürme (ADC) çözünürlülüğü 10 bit olsun. 10 bit değerindeki en yüksek sayımızı 1023 olarak buluyoruz. Arduino cihazımız dönüştürme işlemini yaparken analog girişimizin maksimum giriş voltajı olan 5V değerini 1023 eşit parçaya bölüyor. Bu işleme ADC (Analog – Dijital Dönüştürme) işlemi deniyor. Gelin şimdi 2,756 değerinin analog – dijital dönüşümünü hesaplayalım.

Dönüştürme işlemi 10 bit çözünürlülüğünde olacağı için 5 voltluk değerimizi 1023 eşit parçaya bölelim;

5/1023 = 0,004887 buluyoruz.

Yani sıfırdan itibaren her 0,004887V voltaj artımında dijital değerimiz bir artacak. Şimdi analog dijital dönüşümünden sonraki değerimizi bulalım. Yukarıda bahsettiğimiz gibi sıcaklık sensörümüz 2,756V değer döndürüyordu, şimdi 2,756V değerin dijital değere dönüşümünü hesaplarsak; 2,756/0,004887 = 564 olarak bulunur.

Yukarıdaki işlemi arduinomuz bizim yerimize otomatik olarak analogRead(analog_pin_numarasi); fonksiyonu ile yapacak. Bize ise sıcaklık değerini bulma işlemi kalacak.

Peki bu dijital değer bizim ne işimize yarayacak?

Örnek olarak sıcaklık sensörü yerine herkesin kolayca bulabileceği bir potansiyometre örneği yapalım. Arduino kartımızın A0 pinine bağlı potansiyometremizin dönen kısmını çevirerek analog pine değişik sinyaller göndereceğiz ve bu sinyallerle dijital pinlere bağlı olan 5 adet ledlerimizi yakacağız.

Programımızı yazmaya başlıyoruz;

 

Yukarıdaki kodda sadece ilk iki if-else sorgusunun açıklamalarını yazdım. Diğerleri zaten aynı mantık ile çalışıyor.

Devre şemamız ise aşağıdaki şekilde olacak;

 

Yorum Yap

  • Kenan
    6 yıl ago  

    İkinci if de açıklamada 200 yerine 400 yazmalısınız

  • 6 yıl ago  

    Uyardığınız için teşekkürler 🙂