Arduino Ortalama Alma Uygualaması

2
4378
Okunma

Arduino Ortalama Alma

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 <[email protected]>
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

1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız 1 Oydan 5,00 Puan. Bu yazıya oy vermek ister misiniz?
Loading...
Elektronik, Bilim, Teknoloji, Müzik, Tasarım.
Paylaş

2 YORUMLAR

    • Merhaba. Normalde kodun kopyalanması gerekiyordu. Sadece içerik korumasından dolayı yazıların kopyalanması kapalı. Sanırım bir sıkıntı oluştu.

CEVAP VER

Please enter your comment!
Please enter your name here

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.