int sensorValue;
void setup() {
Serial.begin(9600);
}
void loop(){
sensorValue = analogRead(A0);
delay(1);
Serial.println(sensorValue);
}
Potansiyometreden okunan değerler sabit kalmıyor. 250 ise 249- 250-251 olarak okuduğu oluyor.
ÖRNEK: İlk okunan değer X
İkinci okunan değer X-1 || X || X+1 ise
X yaz.
Basiti
Ölç Ortalama Al.
İşlevseli
Kayar Noktalı
Kayarnoktali icin hazir bir kutuphanede vardi.
http://playground.arduino.cc/Main/RunningAverage (http://playground.arduino.cc/Main/RunningAverage)
Ortalama icin
http://arduino.cc/en/Tutorial/Smoothing (http://arduino.cc/en/Tutorial/Smoothing)
Konuyu epey konusmustuk ama bulamadim forumda
kalman vardı ama olçum stabil olmayınca anlamı kalmıyor en mantıklısı aktif filtre
Zamanında böyle bir çalışma yapmıştım belki iş görür.
https://320volt.com/smoothing-algorithms-yumusatma-algoritmalari/ (https://320volt.com/smoothing-algorithms-yumusatma-algoritmalari/)
int ANALOG_DEGER = 0;
int GECMiS_ANALOG_DEGER= 256;
void setup(){
Serial.begin(9600);
}
void loop(){
int ANALOG_DEGER = analogRead(A0)/4;
if((ANALOG_DEGER-GECMiS_ANALOG_DEGER)>1 || (ANALOG_DEGER-GECMiS_ANALOG_DEGER)<-1){
if(ANALOG_DEGER != GECMiS_ANALOG_DEGER){
Serial.println(ANALOG_DEGER);
GECMiS_ANALOG_DEGER = ANALOG_DEGER;
}
}
}
Yapmayı başardım. Kolay olsun diye 8Bit ile yaptım.
Tek isteğim;
ANALOG_DEGER 254 ise 255 olarak yaz.
ANALOG_DEGER 1 ise 0 yaz. (Potansiyometrenin Köklendiğini görmek için..)
Ben ifler ile yaptım ama iki kez yazıyordu. Bu basit işlemi nasıl yaparım?
Son iki biti atmak da bir filtre işlemidir. Hassasiyet azaltmış olur ama sonucun kararlılığı artır.
Selam,
Devrenizi bilmiyorum ama yaptığıız yöntem bence yanlış!
Siz burada +1, -1'lik bir tölerans vermişsiniz,hassasiyetiniz +-1.
ADC portunda 100nf varmı?
MCU beslemesi temizmi?
ADC conversion ayarları ne durumda?
ADC conversion işleminden sonra gecikme koyup denedizmi?
İlk ADC çevrimi bitmeden ikinci çevrime geçebilir,çevrim kararı bozulur.
ADC çevrim hızı çok yüksek ise buda çevrim kararını bozabilir.
@JOKERAS Selam.
Bence benim yaptığım yöntem doğru.
100nF koysamda fark etmiyordu. Daha önceleri denemiştim. (PIC ile)
MCU Beslemesi PC USB'si.
ADC Conversion ne bilmiyorum. Arduino kullanıyorum.
ADC için 10K Pot. kullanıyorum.