Minggu, 07 Januari 2024

Tutorial Sensor Inframerah dengan Arduino dan NodeMCU

Ini adalah sensor inframerah yang sangat populer karena mudah digunakan dan sangat murah. Kebanyakan perangkat pembelajaran Arduino bahkan memiliki sensor ini. Sensor ini dapat mendeteksi objek atau rintangan yang ada di depannya. Saya telah menulis banyak tutorial tentang sensor. 

Cara Kerja Sensor Ini

Memiliki 2 buah LED, yang transparan adalah LED yang memancarkan sinar infra merah. Dan LED hitam adalah fotodioda yang dapat mendeteksi cahaya IR.
Saat dinyalakan, ia selalu memancarkan cahaya. Jadi ketika ada benda di depan LED, maka cahaya infra merah akan memantul kembali. Dan ketika fotodioda menerima cahaya infra merah maka akan memberikan sinyal ke rangkaian.


Pada rangkaian ini terdapat komparator, ketika sinyal berada diatas ambang batas maka rangkaian akan memberikan keluaran RENDAH. Ketika tidak ada sinyal atau sinyal berada di bawah ambang batas maka akan menghasilkan output TINGGI.


Kita dapat mengatur ambang batas atau sensitivitas atau jarak sensor dengan memutar trimpot atau potensiometer pada rangkaian. Untuk membuat sensor mendeteksi lebih jauh kita harus memutar ke kanan, untuk lebih dekat Anda dapat mengatur trim-pot ke kiri. Untuk menggunakannya dengan mikrokontroler seperti Arduino, kita cukup menghubungkan pin sensor ke board kita.
Ini memiliki 3 pin, VCC, GND dan juga Signal.

Pengkabelan Sensor Inframerah dengan Arduino dan Eksperimen Kecil



Sensor Inframerah dengan arduino

Setelah sedikit percobaan, saya menemukan bahwa sensor ini bergantung pada bagaimana objek memantulkan cahaya kembali ke sensor. Benda berwarna hitam cenderung menyerap lebih banyak daripada memantulkannya kembali, begitu pula kertas putih dan logam mengkilap. Ini lebih reflektif, sehingga pada jarak yang lebih jauh, sensor sudah terpantul. Jadi Anda perlu lebih berhati-hati dalam menggunakan sensor ini. Bahan dan warna yang berbeda dapat mempengaruhi jarak sensor.

Dan juga saat sensor ini berada di luar ruangan, selalu menerima sinar infra merah dari matahari, sehingga seperti selalu mendeteksi rintangan. Artinya sensor ini tidak bisa digunakan di luar ruangan. Untuk penjelasan lebih jelasnya, Anda bisa menonton videonya.

Menyesuaikan Jarak Rintangan

Jika ingin mendeteksi objek lebih jauh, Anda perlu memutar trimpot pada sensor ke kanan. Bila ingin mendeteksi pada jarak lebih dekat, Anda perlu memutar trimpot ke kiri.

Kode Sensor Inframerah dengan Arduino

Saya memodifikasi kode contoh arduion digitalRead. Kode ini akan memberi kita nilai 0 pada monitor serial ketika ada hambatan yang terdeteksi, dan akan memberi kita nilai 1 ketika tidak ada hambatan yang terdeteksi.

Kode Sensor Inframerah Dengan NodeMCU

Satu-satunya perbedaan antara kode ini dan Arduino adalah nama pinnya, dalam contoh ini saya memasang sensor ke pin D3 NodeMCU

 

/*

 Infrared Sensor Digital Read Example 

*/

 

// digital pin D3 has a Infrared attached to it.

int IR = D3;

 

// the setup routine runs once when you press reset:

void setup() {

  // initialize serial communication at 9600 bits per second:

  Serial.begin(9600);

  // make the pushbutton's pin an input:

  pinMode(IR, INPUT);

}

 

// the loop routine runs over and over again forever:

void loop() {

  // read the input pin:

  int IRState = digitalRead(IR);

  Serial.println(IRState);

  delay(1);        // delay in between reads for stability

}

Kode ini juga mencetak 0 ketika terdeteksi hambatan dan 1 jika tidak ada yang terdeteksi.

Nyalakan dan matikan Lampu dengan Sensor Inframerah

Saya membuat contoh proyek sederhana dengan sensor ini, proyek ini akan memicu relay yang memiliki lampu sebagai beban. Jadi ketika ada sesuatu di depan sensor. Lampu akan menyala.

Skema Lampu Pemicu Sensor Inframerah


Lampu Pemicu Inframerah dengan NodeMCU

/*
  DigitalReadSerial
 
  Reads a digital input on pin 2, prints the result to the Serial Monitor
 
  This example code is in the public domain.
 
  https://www.arduino.cc/en/Tutorial/BuiltInExamples/DigitalReadSerial
*/
 
// digital pin 2 has a pushbutton attached to it. Give it a name:
int IR = D3;
int relay = D4;
 
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(IR, INPUT);
  pinMode(relay, OUTPUT);
  digitalWrite(relay, HIGH);
}
 
// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int IRState = digitalRead(IR);
  Serial.println(IRState);
  if (IRState==0){
    Serial.println("Hey move out!");
    digitalWrite(relay, LOW);
  } else {
    digitalWrite(relay, HIGH);
  }
  delay(1);        // delay in between reads for stability
}

 


menangkap apel