Menggunakan Sensor Inframerah Dengan Arduino
Apa itu sensor inframerah (alias IR)?
Sensor IR adalah instrumen elektronik yang memindai sinyal IR dalam rentang frekuensi tertentu yang ditentukan oleh standar dan mengubahnya menjadi sinyal listrik pada pin output (biasanya disebut pin sinyal). Sinyal IR terutama digunakan untuk mentransmisikan perintah melalui udara pada jarak pendek (biasanya beberapa meter) seperti yang telah Anda lakukan dengan remote control TV atau perangkat elektronik serupa lainnya.
Protokol komunikasi IR
Setiap sinyal mewakili kode tertentu. Sinyal listrik dapat dikonversi kembali ke data / kode aktual yang telah dikirim pengirim. Ketika Anda menekan tombol pada remote control TV Anda, itu menghasilkan sinyal yang sesuai dengan kode tombol (misalnya Nyala / Mati, Volume Naik, dll.) Dan mengirimkannya ke penerima (dalam hal ini TV Anda). Baik pengirim dan penerima menyetujui satu set kode sehingga penerima tahu apa yang harus dilakukan berdasarkan masing-masing kode. Cara kode harus dimodulasi (dimodelkan) sebagai sinyal didefinisikan dalam standar yang berbeda dan masing-masing produsen sensor biasanya mencoba untuk menghasilkan produk yang kompatibel dengannya sehingga dapat digunakan pada perangkat yang berbeda. Salah satu protokol standar yang paling dikenal adalah dari NEC. Anda dapat menemukan sejarah singkat protokol IR di Wikipedia di bawah judul Consumer IR.
Langkah 1: Bagaimana Tampilan Sensor IR?



Sensor IR tersedia pada paket yang berbeda. Di sini Anda dapat melihat beberapa kemasan khas untuk penerima IR.
Langkah 2: Papan / modul Sensor IR




Anda juga dapat membelinya sebagai modul / papan breakout IR di eBay, Aliexpress atau Amazon. Modul-modul tersebut biasanya menggabungkan salah satu sensor yang disebutkan di atas dengan paket ramah papan tempat memotong roti yang bagus bersama dengan LED yang akan berkedip ketika sensor mendeteksi sinyal. Dengan melakukan itu, Anda akan melihat jika ada data yang ditransfer. Saya sangat menyarankan memulai dengan salah satu modul ini.
Catatan: jika Anda memiliki sensor IR mentah, tidak ada yang akan berubah, kecuali bahwa Anda harus memeriksa lembar data sensor untuk memastikan Anda menghubungkannya dengan benar karena jika tidak, Anda mungkin memiliki asap biru yang indah dengan bau yang akan bertahan selama jam. Kamu tahu apa yang saya maksud ;)
Langkah 3: Komponen dan Komponen yang Diperlukan

Di sini Anda dapat menemukan daftar komponen yang Anda perlukan untuk menyelesaikan tutorial ini:
Tautan eBay:
- 1 x Arduino Uno: //rover.ebay.com/rover/1/711-53200-19255-0/1 ...
- 1 x modul sensor IR dengan remote: //rover.ebay.com/rover/1/711 ....
- 4 x 220 ohm resistor: //rover.ebay.com/rover/1/711-53200-19255-0 / ...
- 4 x LED: //rover.ebay.com/rover/1/711-53200-19255-0 / ...
- 8 x kabel Dupont: //rover.ebay.com/rover/1/711-53200-3=4&too ...
- 1 x papan tempat memotong roti tanpa solder: //rover.ebay.com/rover/1/711-53200 -...
- 1 x Mini papan tempat memotong roti (opsional): //rover.ebay.com/rover/1/711-532 ...
Tautan Amazon.com:
- 1 x Arduino Uno: //amzn.to/2uJfKy1
- 1 x modul sensor IR dengan remote: //amzn.to/2uMS1eT
- 1 x papan tempat memotong roti tanpa solder: //amzn.to/2uMC6gl
- 4 x 220 ohm resistor: //amzn.to/2hbGiDs
- 4 x LED: //amzn.to/2uMEtjy
- 8 x kabel Dupont: //amzn.to/2eXCvbT
- 1 x Mini papan tempat memotong roti (opsional): //amzn.to/2vUelmC
Tautan Amazon.co.uk:
- 1 x Arduino Uno: //amzn.to/2u8DXKD
- 1 x modul sensor IR dengan remote: //amzn.to/2wagB8Y
- 4 x 220 ohm resistor: //amzn.to/2uJCsGs
- 4 x LED: //amzn.to/2u8nNRo
- 8 x kabel Dupont: //amzn.to/2vaLDQN
- 1 x papan tempat memotong roti tanpa solder: //amzn.to/2u8nkP2
- 1 x Mini papan tempat memotong roti (opsional): //amzn.to/2vaKtoc
Langkah 4: Menghubungkan Sensor IR ke Arduino



Menyiapkan koneksi sensor IR ke Arduino sangat sederhana. Selain pin VCC dan GND, sensor hanya memiliki satu pin output yang harus dihubungkan ke salah satu pin digital Arduino. Dalam hal ini terhubung ke pin 13.
Saya mencoba menunjukkan modul sensor IR dan pengaturan sensor IR mentah. Seperti dapat dilihat pada gambar, posisi pin VCC dan GND pada modul sensor adalah kebalikan dari sensor mentah. Namun itu mungkin bukan kasus untuk sensor Anda, jadi seperti yang disebutkan dalam langkah sebelumnya, jika menggunakan sensor mentah, periksa datasheet terlebih dahulu.
Langkah 5: Temukan Kode yang Sesuai dengan Setiap Kunci pada Remote



Untuk memprogram Arduino untuk melakukan sesuatu ketika Anda menekan tombol pada remote, Anda harus memiliki kode yang sesuai dengan kunci itu. Kode kuncinya adalah angka yang biasanya disajikan sebagai heksadesimal. Setiap remote kontrol memiliki seperangkat kode kunci masing-masing sementara ada kemungkinan bahwa dua pengendali berbagi kode yang sama untuk tujuan yang berbeda. Memiliki kode kunci yang berbeda bersama dengan menggunakan rentang frekuensi yang berbeda, memastikan bahwa dua pengendali jarak jauh dari perangkat yang berbeda tidak akan mengalami gangguan. Itu sebabnya ketika Anda mengubah saluran TV Anda, pemutar DVD Anda tidak bereaksi sama sekali.
Untuk mendeteksi kode untuk remote IR Anda, Anda harus terlebih dahulu menjalankan sketsa sederhana yang mencoba membaca kode dari sensor ketika Anda menekan tombol dan mengirimkannya melalui port serial ke komputer Anda di mana Anda dapat mengaksesnya menggunakan alat Serial Monitor dari IDE Arduino. Inilah yang dilakukan sketsa pada bagian ini. Akan lebih baik untuk menekan setiap tombol untuk melihat kode dan menuliskan daftar kode di suatu tempat sehingga Anda tidak perlu menjalankan kode ini lagi di masa depan. Daftar kode kunci yang Anda lihat sebagai tabel dalam gambar sebenarnya adalah kode yang saya terima ketika menekan tombol pada remote IR murah saya.
Anda juga dapat mengakses kode sumber aktual yang dibagikan di editor web Arduino saya di ir-key-code-logger.
Catatan : Jangan takut jika Anda melihat kode seperti FFFFFF di antara keduanya. Itu berarti Anda telah menekan dan menahan tombol untuk sementara waktu. Kita akan membahasnya nanti. Untuk saat ini abaikan saja dan fokuslah pada kode lain.
Lampiran
ir-code-logger.ino Unduh
Langkah 6: Kontrol Seperangkat LED Menggunakan Remote IR



Sekarang kita memiliki kode untuk setiap tombol, saatnya untuk fokus pada cara kita dapat menggunakannya. Biasanya Anda menggunakan remote IR untuk mengirim perintah ke Arduino untuk melakukan sesuatu seperti menyalakan atau mematikan lampu, memindahkan robot ke arah tertentu, menampilkan sesuatu pada layar LCD / OLED, dll. Di sini kami mencoba untuk mendemonstrasikan proses menggunakan sederhana sirkuit terdiri dari 4 LED dalam berbagai warna. Kami ingin mengaktifkan atau menonaktifkannya dengan tombol khusus pada remote IR. Seperti yang Anda lihat pada skema, Anda harus menghubungkan Arduino dengan cara berikut ke LED dan sensor:
Arduino GND -> IR sensor GND.
Arduino VCC -> IR sensor VCC.
Arduino 13 -> output sinyal sensor IR.
Arduino 2 -> Anoda LED biru (pin pendek dari LED biru)
Arduino 3 -> Anoda LED hijau (pin lebih pendek dari LED hijau)
Arduino 4 -> Anoda LED kuning (pin lebih pendek dari LED kuning)
Arduino 5 -> Anoda LED merah (pin pendek dari LED merah)
Arduino GND -> Katoda semua LED melalui resistor 220 ohm (pin lebih panjang dari LED)
Anda dapat menemukan kode yang sesuai dengan sirkuit ini di file terlampir atau pada editor web Arduino saya di ir-led-control.
Lampiran
ir-led-control.ino Unduh
Langkah 7: Pemecahan masalah
Saat menyiapkan proyek Anda dan mengikuti langkah-langkah Anda mungkin menghadapi banyak situasi aneh. Berikut adalah daftar beberapa kesalahan umum yang mungkin Anda dapatkan ketika bekerja dengan sensor IR.
Mendapatkan FFFFFF saat menekan tombol
Saat menekan tombol, Anda mungkin memperhatikan bahwa sebagian besar waktu melaporkan kode seperti FFFFFF. Ini terjadi ketika Anda menekan tombol dan menahannya sebentar, bahkan untuk waktu yang singkat. Skenarionya adalah ketika Anda menekan tombol pada awalnya, IR remote mengirimkan kode tombol dan selama Anda menahan tombolnya, ia mengulangi pengiriman FFFFFF yang berarti bahwa pengguna masih menekan tombol yang dilaporkan baru-baru ini. Tidak apa-apa. Anda bisa menghilangkannya. Kode aktual adalah kode yang Anda dapatkan tepat sebelum FFFFFF di Serial Monitor.
Sensor IR tidak bereaksi sama sekali dan sepertinya panas!
Potong kekuatannya !!! Jika Anda yakin bahwa sketsa logger kode kunci sudah benar, maka masalahnya mungkin karena pemasangan kabel yang salah. Skenario yang terjadi pada saya adalah untuk modul IR saya (yang terpasang pada papan) saya telah menghubungkan VCC dan GND dengan cara yang berlawanan (karena tidak menggunakan warna yang tepat untuk kabel hookup saya). Dengan melakukannya komponen sensor terbakar dan asap biru yang bagus terangkat. Saya membeli sebungkus sensor IR mentah dan mencoba menggantinya dan sekarang berfungsi seperti pesona :). Sayangnya saya melakukan kesalahan yang sama ketika saya menguji dengan sensor IR mentah dan kali ini tidak ada yang terjadi kecuali bahwa sensor menjadi hangat. Jadi selalu periksa sirkuit sebelum menyalakan power!
Terkadang sensor mendeteksi kode yang belum pernah saya lihat sebelumnya
Ini adalah salah satu masalah paling umum. Kemungkinan besar karena salah satu alasan berikut:
- Anda tidak mengarahkan remote IR Anda langsung ke sensor
Ini akan menyebabkan memiliki beberapa kode baru (kebanyakan kode lebih panjang) yang belum pernah Anda terima sebelumnya dan biasanya tidak cocok dengan panjang kode yang sudah Anda miliki. Jadi ingatlah untuk selalu mengarahkan remote ke sensor Anda.
- Anda menggunakan remote IR murah (seperti yang saya gunakan dalam tutorial ini)
Alih-alih menggunakan remote murah yang tidak dapat diprediksi, Anda dapat mencoba skenario yang sama menggunakan remote control TV atau DVD Player Anda atau remote IR dari semua perangkat yang Anda miliki. Mereka biasanya memiliki kualitas sinyal / perangkat keras yang baik (dan tentu saja lebih mahal) dan berdasarkan pengalaman saya, mereka biasanya bekerja dengan baik bahkan jika Anda tidak mengarahkan remote Anda langsung ke sensor.
Bagaimana saya tahu jika kode yang dicatat bukan sampah
Kode biasanya disajikan dalam format heksadesimal. Jika Anda mengonversinya ke nilai biner yang sesuai, Anda akan melihat bahwa representasi biner dari byte terakhir adalah negasi dari byte yang datang sebelum itu. Jika Anda mengetahui hal ini, Anda dapat melakukan ini dengan memeriksa kode Anda untuk memastikan bahwa kode yang Anda terima benar-benar valid atau tidak. Sebagai contoh, jika Anda mendapatkan FF7A85 representasi binernya adalah seperti di bawah ini:
1111 1111 0111 1010 1000 0101
Dari kiri ke kanan, setiap kumpulan 4 digit adalah representasi karakter dalam angka heksadesimal asli. Seperti yang Anda lihat, bets yang sesuai dengan 7 adalah 0111 dan batch yang sesuai dengan 8 adalah 1000 yang merupakan negasi yang tepat. Dengan negasi yang saya maksud semua 0s akan menjadi 1s dan semua 1s akan digantikan oleh 0s. Hal yang sama berlaku untuk yang berikutnya yaitu A (1010) dan 5 (0101).
Langkah 8: Apa yang Harus Dilakukan Selanjutnya?
Sekarang giliranmu. Semuanya tergantung pada imajinasi Anda untuk melihat apa yang dapat Anda lakukan dengan sensor kecil sederhana ini di tangan Anda. Berikut adalah beberapa ide untuk memulai:
- Gunakan remote control IR dari salah satu perangkat yang Anda miliki di rumah (TV, Stereo, dll.) Dan cobalah untuk menggunakannya dalam proyek Arduino Anda
- Coba nyalakan semua LED sekaligus dengan menekan tombol lalu matikan menggunakan tombol lain
- Gunakan tombol Atas / Bawah pada remote untuk menghidupkan / mematikan LED satu per satu sampai semuanya menyala / mati
- Buat lampu lalu lintas menggunakan LED dan kendalikan menggunakan remote Anda
- Jika Anda memiliki motor DC kecil, cobalah untuk memulai / menghentikan atau mengubah arah putarannya melalui remote IR
- Anda dapat menggunakan remote TV Anda untuk mengontrol robot Anda atau mengaktifkan / menonaktifkan beberapa sensor / aktuator di atasnya
Beri tahu saya pada komentar, apa yang akan Anda lakukan (atau sudah Anda lakukan) menggunakan IR remote.