Arduino dan Remote Infrared

Pada bagian ini akan dibahas contoh penggunaan Arduino UNO dengan remote control infrared. Contoh pertama yang diberikan pada bahasan ini adalah membaca nilai dari setiap tombol yang ditekan. Nilai yang dihasilkan adalah nilai hexadecimal dan nilai tersebut akan ditampilkan ke serial monitor. Rangkaian untuk contoh proyek ini ditunjukkan pada gambar 1.1. dibawah ini.

Gambar 1.1 Arduino dengan photodioda
 

Hardware yang dibutuhkan :

1. Arduino UNO

2. Remote infrared (IR transmitter)

3. IR receiver (photodiode)

4. Kabel jumper

Keterangan Rangkaian dan Pemrograman :

1. Hubungkan pin VCC photodiode dengan pin VCC 5V Arduino.

2. Hubungkan pin GND photodiode dengan pin GND Arduino.

3. Hubungkan pin sinyal photodiode dengan pin digital 7 Arduino.

4. Setelah selesai membuat rangkaian, langkah selanjutnya adalah membuat sketch program pada software Arduino IDE. Sketch untuk rangkaian proyek ini ditunjukkan oleh contoh program Prog1.1.

5. Compile sketch yang telah dibuat.

6. Hubungkan Arduino UNO dengan komputer menggunakan kabel USB dan upload ke Arduino UNO yang digunakan.

7. Buka serial monitor pada Arduino IDE sehingga nilai yang ditampilkan berdasarkan tombol yang dibaca dari remote dapat terlihat.

Contoh Program Prog1.1. Test Hexa Tombol

Penjelasan :

1. Pada awal bagian program disertakan library IRremote.h

2. Pada baris selanjutnya dibuat objek dengan nama protokol dan nomor pin yang akan digunakan. Pada program dituliskan pin 7 yang sesuai dengan rangkaian yang kita buat.

3. Objek protokol ini akan mengatasi protokol dan memproses informasi yang diterima dari receiver.

4. Baris selanjutnya adalah pembuatan objek dengan nama hasil dari class decode_result. Objek ini akan digunakan oleh objek protokol untuk berbagi informasi yang sudah di dekode dengan aplikasi kita.

5. Di bagian awal void setup terdapat pengaturan baud rate sebesar 9600bps yang akan digunakan untuk komunikasi serial.

6. Selanjutnya, pengaturan untuk memulai IR receiver (photodiode) dengan cara mengaktifkan fungsi enableIRIn ( ).

7. Perintah protokol.blink13 (true) adalah perintah untuk mengedipkan LED built-in pada board Arduino UNO setiap kali receiver (photodiode) menerima sinyal dari remote. Hal ini berguna untuk debugging.

8. Pada bagian selanjutnya program masuk ke dalam rutin loop ( ).

9. Pada awal rutin loop ini program masuk ke dalam percabangan. Fungsi protokol.decode akan menghasilkan nilai TRUE jika kode diterima dan program akan mengeksekusi statement / kode yang berada di dalam percabangan.

10. Program akan mencetak nilai kode yang diterima ke serial monitor dalam bentuk nilai hexadecimal.

11. Fungsi protokol.resume ( ) adalah perintah untuk mereset receiver dan bersiap untuk menerima kode berikutnya.

Untuk menguji program yang sudah dibuat, tekan tombol remote kemudian perhatikan nilai hexadecimal yang akan tampil pada serial monitor. Contoh nilai hexadecimal yang ditampilkan pada serial monitor pada gambar 1.2 di bawah ini.

 

Dari percobaan penekanan setiap tombol remote, di dapat nilai hexadecimal sebagai berikut :

1. Tombol CH-        : oxFFA25D

2. Tombol CH         : oxFF629D

3. Tombol CH+       : oxFFE21D

4. Tombol | < <       : oxFFE22D

5. Tombol > > |       : oxFF02FD

6. Tombol > |          : oxFFC23D

7. Tombol -             : oxFFE01F

8. Tombol +            : oxFFA857

9. Tombol EQ         : oxFF906F

10. Tombol 0          : oxFF6897

11. Tombol 100+    : oxFF9867

12. Tombol 200+    : oxFFB04F

13. Tombol 1          : oxFF30CF

14. Tombol             : oxFF18E7

15. Tombol 3          : oxFF7A85

16. Tombol 4          : oxFF10EF

17. Tombol 5          : oxFF38C7

18. Tombol 6          : oxFF5AA5

19. Tombol 7          : oxFF42BD

20. Tombol 8          : oxFF4AB5

21. Tombol 9          : oxFF52AD

Catatan : Jika kita menekan tombol terlalu lama, maka pada serial monitor ditampilkan nilai hexa oxFFFFFFFF.

Pada bagain sebelumnya kita dapat mengetahui nilai hexadecimal dari setiap tombol, maka kita dapat membuat program untuk menampilkan nama dari tombol yang kita tekan berdasarkan nilai hexadecimal yang di dapat. Untuk memulainya, buat program yang ditunjukkan pada contoh program 1.2. di bawah ini.

Contoh Program : Prog1.2. Nama Tombol

Penjelasan :

1. Pada awal bagian program disertakan library IRremote.h

2. Pada baris selanjutnya dibuat objek dengan nama protokol dan nomor pin yang akan digunakan. Pada program dituliskan pin 7 yang sesuai dengan rangkaian yang kita buat.

3. Objek protokol ini akan mengatasi protokol dan memproses informasi yang diterima dari receiver.

4. Baris selanjutnya adalah pembuatan objek dengan nama hasil dari class decode_results. Objek ini akan digunakan oleh objek protokol untuk berbagi informasi yang sudah di dekode dengan aplikasi kita.

5. Dibagian awal void setup terdapat pengaturan baud rate sebesar 9600bps yang akan digunakan untuk komunikasi serial.

6. Selanjutnya, pengaturan untuk memulai IR receiver (photodiode) dengan cara mengaktifkan fungsi enableIRIn ( ).

7. Perintah protokol.blink13(true) adalah perintah untuk mengedipkan LED built-in pada board Arduino UNO setiap kali receiver (photodiode) menerima sinyal dari remote. Hal ini berguna untuk debugging.

8. Pada bagian selanjutnya program masuk ke dalam rutin loop ( ).

9. Pada awal rutin loop ini program masuk ke dalam percabangan. Fungsi protokol.decode akan menghasilkan nilai TRUE jika kode diterima dan program akan mengeksekusi statement / kode yang berada di dalam percabangan.

10. Statement di dalam percabangan diawali dengan seleksi kondisi dengan menggunakan switch case. Pada switch case ini value dari objek hasil seleksi. Jika pada case tertentu kondisinya terpenuhi, maka statement dari case akan dieksekusi kemudian keluar dari switch case. Statement yang dieksekusi pada kasus ini adalah pencetakan string ke serial monitor.

11. Fungsi protokol.resume( ) adalah perintah untuk mereset receiver dan bersiap untuk menerima kode berikutnya.

Hasil yang didapat pada serial monitor berdasarkan penekanan tombol yang dilakukan ditunjukkan pada gambar 1.3. di bawah ini.



Posting Komentar

0 Komentar