Sensor TCRT5000 adalah sensor reflective atau pantulan yang dibuat dengan sebuah Infrared sebagai pemancarnya dan potodiode/trasnsitor sebagai penerimanya. Sering digunakan sebagai sensor untuk membaca benda dengan memanfaatkan pantulan cahaya dan diterima oleh pododiode. Biasa digunakan pada mouse, robot line follower, dll. Pada tutorial kali ini akan dimanfaatkan untuk membaca 2 warna yang berbeda yaitu hitam dan putih. seperti yang kita ketahu bahwa warna puti bersifat memantulkan cahaya dan warna hitam menyerap cahaya. Berikut ini adalah cara kerjanya.
Pada artikel ini akan diberikan pemrograman interrupt arduino dengan memanfaatkan data keluaran sensor TCRT5000. namun sedikit penjelasan terkait fungsi perinttah interrupt. Perinta interrupt adalah perintah untuk menginterupsi/menyelah proses kerja suatu program dimana akan dikerjakan program yang lebih diutamakan. Pada arduino biasa fungsi interrupt dikerjakan jika terdapat input/masukan pada pin Interrupt/INT (arduino uno pin 2 dan 3). Pada tutorial ini akan ditampilkan data interrupt untuk menghitung nilai dari variable. berikut ini komponen yang dibutuhkan
Bahan
Rangkaian
Baca juga : Thermal Printer Menggunakan Arduino
Hubungkan masing-masing komponen sesuai dengan skema diatas, pastikan pin pin D0 sensor terhubung pada D2 atau D3 arduino uno karena harus terhubung pada pin interrupt. Setelah itu, upload program dibawah ini.
#define LED 13 #define Sensor 2 int data; void setup() { Serial.begin(9600); attachInterrupt(digitalPinToInterrupt(Sensor), count, RISING); pinMode(LED, OUTPUT); } void loop() { digitalWrite(LED,!digitalRead(LED)); delay(1000); } void count() { data++; Serial.print("Nilai : "); Serial.println(data); }
Dari program diatas, jika sensor mengalami perubahan data dari 0 ke 1, maka arduino akan mendahulukan program pada fungsi count(). variable data akan di increment/ ditambah 1 setiap kali tedapat perubahan data sensor. Sebagai program utama pada menu loop, saya berikan program LED kedip-kedip/blink. Berikut haril keluaran data pada serial monitoring.
Yang wajib diketahui dalam menggunakan fungsi intterupt adalah mode yang digunakan dan konfigurasinya, berikut link referensi untuk lengkapnya > Arduino AttachInterrupt
> attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);
pin adalah pin interrupt yang digunakan, disini saya menggunakan pin D2. ISR adalah program yang akan dijalankan, wajib dimasukan dalam fungsi (void), jadi anda hanya memasukan nama fungsinya seperti count diatas. Mode merupakan fungsi dari pembacaan interupsinya, berikut macam-macam dan fungsinya.
- LOW, dikerjakan jika pin intterupt berlogika LOW (0)
- CHANGE, dikerjakan jika pin intterupt mengalami perubahan logika dari 0 ke 1 atau sebaliknya.
- RISING, dikerjakan jika pin intterupt mengalami perubahan logika dari 0 ke 1.
- FALLING, dikerjakan jika pin intterupt mengalami perubahan logika dari 1 ke 0.
Pemanfaatan mode disesuaikan dengan inputan yang digunakan, contoh diatas jika sensor tidak menditeksi benda makan berlogika 0 dan jika menditeksi benda menjadi berlogika 1. Sehingga saya menggunakan mode RISING.
Pemanfaatan lain dari fungsi interrupt biasanya digunakan untuk menggukur RPM motor, karena membutuhkan tingkat keberhasilan pembacaan sensor yang tinggi, dan mengurangi terlewatnya pembacaan fungsi interrupt sangat penting.
demikian tutorial saya, semoga bermanfaat. terima kasih
No comments:
Post a Comment