Program Calibrasi pada Arduino

Contoh ini menunjukkan satu techinque untuk input sensor kalibrasi. Board mengambil pembacaan sensor selama lima detik saat mulai, dan melacak nilai tertinggi dan terendah yang didapatnya. Pembacaan sensor ini selama lima detik pertama dari eksekusi sketsa menentukan nilai minimum dan maksimum yang diharapkan untuk pembacaan yang diambil selama pengulangan.

Alat dan Bahan :
  • Arduino or Genuino board
  • LED
  • analog sensor (a photoresistor will do)
  • 10k ohm resistor
  • 220 ohm resistor
  • hook-up wires
  • breadboard
Rangkaian :

Hubungkan LED ke pin digital 9 dengan resistor pembatas arus 220 ohm secara seri. Hubungkan photoresistor ke 5V dan kemudian ke analog pin 0 dengan resistor 10K ohm ke ground.

Skematik :
Listing Program :
Sebelum pengaturan, Anda menetapkan nilai awal untuk minimum dan maksimum seperti:
int sensorMin = 1023;        // minimum sensor value
int sensorMax = 0;           // maximum sensor value
Ini mungkin tampak mundur. Awalnya, Anda mengatur tinggi minimum dan membaca untuk yang lebih rendah dari itu, menyimpannya sebagai minimum baru. Demikian juga, Anda mengatur rendah maksimum dan membaca untuk sesuatu yang lebih tinggi sebagai maksimum baru, seperti:
// calibrate during the first five seconds 
 while (millis() < 5000) {
   sensorValue = analogRead(sensorPin);

   // record the maximum sensor value
   if (sensorValue > sensorMax) {
     sensorMax = sensorValue;
   }

   // record the minimum sensor value
   if (sensorValue < sensorMin) {
     sensorMin = sensorValue;
   }
 }
Dengan cara ini, setiap bacaan lebih lanjut yang Anda ambil dapat dipetakan ke kisaran antara minimum dan maksimum seperti ini:

// apply the calibration to the sensor reading
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);

Inilah seluruh programnya :

// These constants won't change:
const int sensorPin = A0;    // pin that the sensor is attached to
const int ledPin = 9;        // pin that the LED is attached to

// variables:
int sensorValue = 0;         // the sensor value
int sensorMin = 1023;        // minimum sensor value
int sensorMax = 0;           // maximum sensor value

void setup() {
  // turn on LED to signal the start of the calibration period:
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);

  // calibrate during the first five seconds
  while (millis() < 5000) {
    sensorValue = analogRead(sensorPin);

    // record the maximum sensor value
    if (sensorValue > sensorMax) {
      sensorMax = sensorValue;
    }
    // record the minimum sensor value
    if (sensorValue < sensorMin) {
      sensorMin = sensorValue;
    }
  }
  // signal the end of the calibration period
  digitalWrite(13, LOW);
}
void loop() {
  // read the sensor:
  sensorValue = analogRead(sensorPin);

  // apply the calibration to the sensor reading
  sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);

  // in case the sensor value is outside the range seen during calibration
  sensorValue = constrain(sensorValue, 0, 255);

  // fade the LED using the calibrated value:
  analogWrite(ledPin, sensorValue);
}

Semoga bermanfaat buat yang berkunjung di blog saya ini.
Terimakasih! ;)


"Jangan lupa ikuti saya disini untuk update post terbaru dari saya agar kamu tidak ketinggalan"

0 Response to "Program Calibrasi pada Arduino"

Posting Komentar

[[ Silahkan berkomentar yang sesuai dengan topik, Mohon Maaf komentar dengan nama komentator dan isi komentar yang berbau PORNOGRAFI, OBAT, HACK, JUDI dan komentar yang mengandung LINK AKTIF, Tidak akan ditampilkan. Terima Kasih! ]]