Arduino Ortalama Alma
Arduino Ortalama Alma. Bu çizim bir analog girişten tekrar tekrar okur, bir çalışma ortalamasını hesaplar ve bilgisayara yazdırır. Bu örnek, jumpy veya düzensiz sensörlerden gelen değerleri düzeltmek için kullanışlıdır ve ayrıca veri depolamak için dizilerin kullanımını da gösterir.
Donanım
- Arduino veya Genuino
- 10k ohm potansiyometre
“Arduino UNO, elektronik ve kodlamaya başlamak için en iyi tahtadır. Bu, platformla birlikte çalıştığınız ilk deneyiminizse, Arduino UNO, denemelere başlayabileceğiniz en iyi seçimdir. UNO, tüm Arduino ailesinin en çok kullanılan ve içeriği bulunan kartıdır.
Arduino Uno, ATmega328P tabanlı bir mikro denetleyici karttır. 14 adet dijital giriş / çıkış pini (6’sı PWM çıkışı olarak kullanılabilir), 6 analog giriş, 16 MHz kristali, bir USB bağlantısı, bir güç girişi, bir ICSP başlığı ve bir sıfırlama düğmesi vardır. Mikrodenetleyiciyi desteklemek için gereken her şeyi içerir; Başlamak için bir USB kablosuyla bir bilgisayara bağlayın ya da AC-DC adaptörü ya da pille çalıştırın. UNO’yu, yanlış bir şey yapmadan çok fazla endişe etmeden tamir edebilir, en kötü durum senaryosunu değiştirebilirsiniz. Birkaç dolara çip alır ve tekrar kullanabilirsiniz.”
Devre
Bir potansiyometrenin bir pimini 5V’a, merkez pimini analog pime 0 ve son pimi toprağa(-) bağlayın.
Kod
Aşağıdaki kod, 10 okumaları analog sensörünüzden ardışık olarak tek tek dizilere kaydeder . Her yeni değerle, tüm sayıların toplamı üretilir ve bölünür, daha sonra dışarıdaki verileri düzeltmek için kullanılan bir ortalama değer üretilir. Bu ortalamalama, diziye yeni bir değer eklendiğinde (örneğin 10 yeni değer beklerken) gerçekleştiği için, bu çalışma ortalamasının hesaplanmasında gecikme süresi yoktur.
Kullanılan dizinin büyüklüğünü değiştirmek, numReadings
daha büyük bir değere değiştirmek numReadings
toplanan verileri daha da pürüzsüz hale getirir.
/* Yumuşatma Analog girişten tekrar tekrar okur, çalışma ortalamasını hesaplar ve bilgisayara basmak. Bir dizide on okuma yapar ve sürekli olarak onları ortalamalar. Devre: - Analog girişe bağlı analog sensör (potansiyometre yapacaktır) 0 oluşturuldu 22 Nis 2007 David A. Mellis tarafından <dam@mellis.org> değiştirilme tarihi 9 Nis 2012 Tom Igoe tarafından Bu örnek kod kamu malıdır. http://www.arduino.cc/en/Tutorial/Smoothing */ // İzlemek için örnek sayısını tanımlayın. Sayı ne kadar yüksekse // daha fazla okumalar düzeltilecek, ancak çıktı daha yavaş olacak // girdi. Normal değişkenden ziyade sabit kullanarak bunu kullanalım // okuma dizisinin boyutunu belirlemek için değer. const int numReadings = 10; int readings[numReadings]; // analog girişten gelen değerler int readIndex = 0; // mevcut okunmanın indeksi int total = 0; // Toplam Okuma int average = 0; // Ortalama int inputPin = A0; void setup() { // bilgisayarla seri haberleşmeyi başlat: Serial.begin(9600); // tüm değerleri 0 olarak başlat: for (int thisReading = 0; thisReading < numReadings; thisReading++) { readings[thisReading] = 0; } } void loop() { // son okumayı çıkar: total = total - readings[readIndex]; // sensörden okuduğunuz: readings[readIndex] = analogRead(inputPin); // okumayı toplama ekleyin: total = total + readings[readIndex]; // dizideki bir sonraki konuma ilerleyin: readIndex = readIndex + 1; // dizinin sonunda olursak ... if (readIndex >= numReadings) { // ... en başa sarın: readIndex = 0; } // ortalamayı hesaplayın: average = total / numReadings; // ASCII basamak olarak bilgisayara gönder Serial.println(average); delay(1); // stabilite için okumalar arasında gecikme }
Kaynak:arduino.cc