Rehber Arduino analog veri nedir?

realmoonlight

Hectopat
Katılım
28 Mayıs 2019
Mesajlar
4.998
Makaleler
7
Çözümler
34
Yer
45.9499962 -66.666664
Herkese selam, bu rehberimizde analog veri nedir onu işleyeceğiz. Nasıl okunduğunu öğrenecek ve nerelerde kullanılır onlara bakacağız.

Analog veri nedir?​

Analog veri, 0 ile 1023 arasında değişebilen ve analog mantık ile çalışan sensörlerden okunan veri tipidir. Dijitalden farklı olarak sadece 0 ve 1 almazlar. Kabaca düşünecek olursak 0 sinyal yok demek, 1023 tam güçte sinyal demektir. Aynı şekilde dijital veride de 0 hiç sinyal olmadığı anlamına gelirken 1 sinyal var demektir. Biz de bu sinyallerin gücüne bakarak analog veriyi işliyor ve kodlarımızda kullanarak Arduino projelerimizi çalıştırıyoruz.

Grafiğe dökecek olursak:

Dijital Sinyal​

1607081077263.png


Analog Sinyal​

1607081193358.png


Bu noktada gördüğünüz gibi analog sadece sinyal var ve sinyal yok diye veri işlemiyor, ne kadar güçlü olduğunu da anlamamızı sağlıyor. Voltajlar kafanızı karıştırmasın bu arada onlar ile işimiz yok, ben sadece mantığını anlamanız için grafik koydum.

Analog veri hangi tip sensörlerde kullanılır?​

Cevap aslında çok basit, analog veri okumamızı gerektirecek analog sensörlerde. Peki hangi örnekler verilebilir, hangi örnekler verilemez? Analog sensörlere örenek verecek olursak joystick, ses sensörü, potansiyometre örnek gösterilebilir. Örnek gösteremeyeceklerimiz ise butonlar, pir sensörler örnek gösterilebilir. Bazı sensörler ise hem analog hem de dijital çalışabilmektedir. Mesela toprak nem algılama sensörleri ile toprağın ne kadar nemli olduğunu ölçebiliriz, bunun yanında nem miktarına bakmaksızın sadece nem olup olmadığını anlamak için ise dijital veri kullanabiliriz.

Kod ve uygulanış​

Sensöre gerekli beslemeleri yapıyoruz, daha sensörü sinyal verdiği bacağı istediğimiz analog pine bağlıyoruz. (Ben A0'ı kullandım ve kod da ona göre hazırlandı.) Şunu ekliyorum analog zaten arduino IDE'de input olarak tanımlı olduğu için ekstradan input diye tanımlamamıza gerek kalmadı.
C++:
//Codes by realmoonlight

void setup() {

  // 9600Baud'da seri haberlesmeyi baslatiyoruz

  Serial.begin(9600);
}


void loop() {

  // sensor deger degiskeninin icine her donu basinda sensorden aldigimiz degeri atiyoruz.:
  int sensordeger = analogRead(A0);

  // 0-1023 arasinda giden sensordeger'i seri monitoruzuze yansıtıyoruz.
  Serial.println(sensordeger);
}

Uygulanışını daha açıklayıcı olur diye video üzerinden anlattım dostlar, iyi seyirler. Sorularınızı sosyal üzerinden yazabilirsiniz youtube üzerinden yanıt verilmeyecektir.

 

cengover_ekin

Centipat
Katılım
6 Temmuz 2020
Mesajlar
3.994
Makaleler
1
Çözümler
20
Güzel rehber ancak küçük bir hata var gibi. Analog veri dediğimiz zaman, tam değer aralığı yoktur. Ancak Arduino veya diğer mikrodenetleyiciler analog veri okurken 0-1023 arası tam değerler alırlar, yani buradaki veri dijitalleştirilmiş analog veridir diyebiliriz. Tam analog veriyi sayısal ortama aktarabilmemiz için şimdiki teknolojik şartlarda bu gerekli bir şeydir tabii ki.
 
KS
realmoonlight

realmoonlight

Hectopat
Katılım
28 Mayıs 2019
Mesajlar
4.998
Makaleler
7
Çözümler
34
Yer
45.9499962 -66.666664
Güzel rehber ancak küçük bir hata var gibi. Analog veri dediğimiz zaman, tam değer aralığı yoktur. Ancak Arduino veya diğer mikrodenetleyiciler analog veri okurken 0-1023 arası tam değerler alırlar, yani buradaki veri dijitalleştirilmiş analog veridir diyebiliriz. Tam analog veriyi sayısal ortama aktarabilmemiz için şimdiki teknolojik şartlarda bu gerekli bir şeydir tabii ki.

Ben öğretirken dilim döndüğünce açıklamaya çalıştım, bunu yazarken anlamak ile antlatmanın çok farklı şeyler olduğunu da öğrendim. Şu an en azından arduino için, 0-1023 demek yanlış olmaz diye düşünüyorum. Yoksa katlanarak da arttırılabilir.
 
Yukarı