Site icon elektromanyetix

Arduino Kalibrasyon Uygulaması

Arduino Kalibrasyon Uygulaması

Arduino Kalibrasyon Uygulaması

Arduino Kalibrasyon Uygulaması. Bu örnek, sensör girişini kalibre etmek için bir teknik test göstermektedir. Kart, başlatma sırasında sensör okumalarını beş saniye sürer ve aldığı en yüksek ve en düşük değerleri izler. Çizim sensörünün ilk beş saniyesindeki bu sensör okumaları, döngü sırasında alınan okumalar için minimum ve maksimum beklenen değerleri tanımlar.

Donanım Gerekli

  • Arduino veya Genuino
  • LED
  • analog sensör (bir fotodirenç yapacak)
  • 10k ohm direnç
  • 220 ohm direnç
  • Bağlantı Kabloları
  • breadboard

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

Analog giriş üzerindeki analog sensör (örn. Potansiyometre, ışık sensörü) 2. Dijital pim 9’daki LED. Serideki 220 Ohm dirençle akım sınırlaması ile dijital pin 9’a bir LED bağlayın. Bir fotoresistörü 5V’a ve sonra toprağa 10K ohm dirençli analog pin 0’a bağlayın.

Kod

Kurulumdan önce, minimum ve maksimum için başlangıç ​​değerlerini şöyle belirlersiniz:

int sensorMin = 1023;  // minimum sensör değeri  
int sensorMax = 0;  // maksimum sensör değeri

Bunlar geriye doğru görünebilir. İlk olarak, en yüksek değeri en yüksek değere ayarlayın ve bundan daha düşük bir şey için okuyun ve yeni minimum olarak kaydedin. Aynı şekilde, maksimum azami değeri ayarlarsınız ve yeni maksimum gibi daha yüksek bir şey için okursunuz.

// ilk beş saniye boyunca kalibre
while (millis() < 5000) {
sensorValue = analogRead(sensorPin);

// maksimum sensör değerini kaydetmek
if (sensorValue > sensorMax) {
sensorMax = sensorValue;
}

// minimum sensör değerini kaydetmek
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}

Bu şekilde, aldığınız diğer okumalar, bu minimum ile maksimum arasındaki aralığa eşlenebilir:

// kalibrasyonun sensör okumasına uygulanması 
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);

İşte bütün program:

/*
Kalibrasyon

Sensör girişini kalibre etmek için bir teknik gösterir. Sensör okumaları
Çizim uygulamasının ilk beş saniyesinde minimum ve
sensör pinine bağlı maksimum değer.

Sensör minimum ve maksimum başlangıç ​​değerleri geriye doğru görünebilir. Başlangıçta,
En düşük seviyeyi ayarlar ve daha düşük bir şey dinlersiniz.
Asgari. Aynı şekilde, en düşük seviyeyi ayarlarsınız ve daha yüksek bir şey dinlersiniz.
yeni maksimum.

Devre:
- Analog girişe bağlı analog sensör (potansiyometre yapacaktır) 0
- Dijital pim 9'dan zemine bağlı LED

oluşturuldu 29 Eki 2008
David A Mellis tarafından
değiştirildi 30 Ağu 2011
Tom Igoe tarafından

Bu örnek kod kamu malıdır.
http://www.arduino.cc/en/Tutorial/Calibration
*/

// Bu sabitler değişmeyecek:
const int sensorPin = A0;    // sensörün bağlı olduğu pin
const int ledPin = 9;        // LED'in bağlı olduğu pin

// variables:
int sensorValue = 0;         // sensör değeri
int sensorMin = 1023;        // minimum sensör değeri
int sensorMax = 0;           // maximum sensör değeri


void setup() {
  // Kalibrasyon süresinin başlangıcını bildirmek için LED'i açın:
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);

  // ilk beş saniye boyunca kalibre
  while (millis() < 5000) {
    sensorValue = analogRead(sensorPin);

    // maksimum sensör değerini kaydetmek
    if (sensorValue > sensorMax) {
      sensorMax = sensorValue;
    }

    // minimum sensör değerini kaydetmek
    if (sensorValue < sensorMin) {
      sensorMin = sensorValue;
    }
  }

 // kalibrasyon periyodunun sonunu bildirme
  digitalWrite(13, LOW);
}

void loop() {
  // sensörü oku:
  sensorValue = analogRead(sensorPin);

  // kalibrasyonun sensör okumasına uygulanması
  sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);

  // sensör değeri kalibrasyon sırasında görülen aralığın dışındaysa
  sensorValue = constrain(sensorValue, 0, 255);

  // kalibre edilmiş değeri kullanarak LED'i söner:
  analogWrite(ledPin, sensorValue);
}

Kaynak:arduino.cc

Exit mobile version