Ortalama analog değer

alio1984

Üye
9 Ağu 2019
51
1
0
istanbul
Cinsiyet
Erkek
Merhaba,

Aşağıda örnek bir ortalama değer alma fonksiyonu paylaştım. sistemimde bir problem yok sorunsuz bir şekilde çalışıyor.

Sormak istediğim, doğru ortalamayı almak için her seferinde Analog 0 (A0) pinini kapatıp açmak zorundayım. ( 0V,5V) Diğer türlü ortalama 2 kat değer veriyor. Bunun içinde ortalama=(toplam/10) yapınca sonuç doğru çıkıyor. Her iki şekilde de sistem çalışıyor tabii ki ilk yaptığım daha doğru bir mantık. Peki neden? Neden 5 kere okuyup toplamı yazması gerekliyken neden 10 defa okunmuş gibi davranıyor?


toplam=0;
ortalama=0
deger=0;
i=1;

digitalWrite(A0,HIGH);

for(i=1; i<=5; i++)
{
digitalWrite(A0,HIGH);
deger= analogRead(A1);
digitalWrite(A0,LOW);
toplam=toplam+deger;
delay(100);

}
digitalWrite(A0,LOW);
ortalama=(toplam/5);
.
.
etc...

Teşekkürler,
Ali
 
Moderatör tarafında düzenlendi:

amenofis

Yeni Üye
18 Tem 2019
41
9
0
Bursa
Cinsiyet
Erkek
A0 pinine bağlı birşey var mı? Başka bir analog pinden ölçünce de aynı şekilde mi davranıyor? A0 sürekli HIGH konumda kalsa doğru ölçmüyor mu?
 

birkan

Aktif Üye
Paylaşım Ekibi
16 Tem 2019
191
44
113
istanbul
Cinsiyet
Erkek
bu şekilde denermsn tel den yazdım karakter hataları olabilir :

int i;
int toplam;
float ortalama;
while (i<5) {
digitalWrite(A0, HIGH);
delay(50);
toplam += analogRead(A1);
digitalWrite(A0, LOW);
delay(50);
i++;
}
ortalama=(toplam/5);
 

alio1984

Üye
9 Ağu 2019
51
1
0
istanbul
Cinsiyet
Erkek
bu şekilde denermsn tel den yazdım karakter hataları olabilir :

int i;
int toplam;
float ortalama;
while (i<5) {
digitalWrite(A0, HIGH);
delay(50);
toplam += analogRead(A1);
digitalWrite(A0, LOW);
delay(50);
i++;
}
ortalama=(toplam/5);
While döngüsü de ile yapılabilir, daha önce denemiştim. Benim merak ettiğim neden A0 'ı döngü içerisinde kapatıp açmak zorunda kaldığım. Sizinde yazmış olduğunuz örnekte A0 açılıp kapatılmış, bunun nedeni nedir? Eğer açıp kapatmaz isek ve sadece döngüden sonra kapatırsak, girilen değerin 2 katı okuma yapıyor. Girilen değerin 2 katına bölersek te ortalama değeri bulmuş oluyoruz. Peki neden? Topraklama ile ilgili olabilir mi? Aklıma başka bir şey gelmiyor. Ölçtüğüm değer yaklaşık 2,5V 'a tekabül ediyor, sanırım iki kat ölçüm bu değerle ilişkili. Daha düşük bir değer ölçseydim, sanırım 1,5 kat vs yada daha düşük olacaktı.

Teşekkürler,
Ali
 

birkan

Aktif Üye
Paylaşım Ekibi
16 Tem 2019
191
44
113
istanbul
Cinsiyet
Erkek
ben senin örnekten gittim o yüzden high low yaptım normalde gerek yok ( sensörle ilgili açıp kapatarak bi işlem olduğunu düşündüm )

arduino +5 den besle

istediğin zaman okursun sorun olmadan

pinleri besleme olarak kullanmak doğru değil zaten
 

Robotikforum.net Nedir?

  • Robotikforum.net 2020 yılında kurulup yayın hayatına başlayan ve Türkiye’de robotik kodlama alanının gelişimine katkıda bulunmak için bu alan ile ilgilenen bireylerin bir birleri ile yardımlaşmaları ve fikir danışmalarını sağlayarak daha iyi öğrenmek için her bir bireyin bilgisini ve tecrübesini alarak kendini geliştirebileceği ve sorularına cevap bulabileceği bir platform olarak kurulmuştur.

Bilgilendirme!!!

İçerik sağlayıcı paylaşım sitelerinden biri olan www.robotikforum.net Adresimizde T.C.K 20.ci Madde ve 5651 Sayılı Kanun'un 4.cü maddesinin (2).ci fıkrasına göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur.

Sayfamızı beğendin mi?