ADC Gürültüsü Nedir ve Nasıl Azaltılır? Pratik Rehber
ADC (Analog-Dijital Çevirici), gerçek dünyadan gelen analog sinyalleri sayısal değerlere dönüştürür. Ancak bu işlem sırasında ortaya çıkan gürültü, ölçüm doğruluğunu düşürür. Gürültü iki kaynaktan gelir:
1. Kuantizasyon Gürültüsü: ADC'nin sonlu bit çözünürlüğü nedeniyle ortaya çıkar. Örneğin 8-bit ADC, 256 farklı seviye arasından seçim yapar. Aradaki değerler yuvarlanır.
2. Termal Gürültü: Elektronik bileşenlerdeki rastgele elektron hareketinden doğar. Sıcaklık arttıkça artar.
Gürültü seviyesi SNR (Signal-to-Noise Ratio) ile ifade edilir:
1SNR_dB = 20 * log10(Signal_Amplitude / Noise_Amplitude)Yüksek SNR değeri daha temiz ölçümü gösterir.
En basit yöntem: Hareketli ortalama filtresi.
1int samples[10];2int sum = 0;34void readADC() {5for(int i = 0; i < 10; i++) {6samples[i] = analogRead(A0);7sum += samples[i];8}9int filtered_value = sum / 10;10Serial.println(filtered_value);11}Çıktı örneği:
- Filtresiz: 512, 514, 510, 516, 513...
- Filtrelenmiş: 512.8, 513.1, 512.9...
- Kapasitör ekleme: ADC girişine 0.1µF kapasitör bağlayın. Yüksek frekans gürültüsünü filtreler.
- Referans gerilimi stabilize etme: Ayrı bir regülatör kullanın.
- Kablolama: Sinyal kablolarını güç kablolarından uzak tutun.
Daha yüksek ADC hızında çalışıp sonra ortalamasını alın:
1int oversampling(int samples) {2long sum = 0;3for(int i = 0; i < samples; i++) {4sum += analogRead(A0);5}6return sum / samples;7}89void setup() {10Serial.begin(9600);11}1213void loop() {14int clean_value = oversampling(16);15Serial.println(clean_value);16delay(100);17}Çıktı: 512, 511, 513, 512... (çok daha stabil)
- Hızlı çözüm: Hareketli ortalama (yazılım)
- Hassas uygulamalar: Kapasitör + oversampling (donanım + yazılım)
- Endüstriyel: Ayrı ADC çipi (ADS1115 gibi) kullan
Gürültü azaltma, sensör doğruluğunun temelini oluşturur. Uygulamana göre en uygun yöntemi seç.
0 yorum