Arduino: remote control dan penerima inframerah. Kami mengontrol peralatan kendali jarak jauh di rumah melalui IR dari halaman web

Biasanya kendali jarak jauh kendali jarak jauh TELEVISI, kotak kabel, Pemutar Blu-ray dan sistem stereo tidak hanya memakan ruang, tetapi juga mempersulit pengelolaan semua perangkat tersebut. Anda dapat mempertimbangkan untuk membeli kendali jarak jauh universal, namun biasanya mahal dan terkadang tidak memberikan tingkat kontrol atau antarmuka yang diperlukan. Proyek ini menciptakan perangkat yang dapat mengirim dan menerima kode kendali jarak jauh dari halaman web standar. Anda dapat memprogram fungsionalitas yang diperlukan dari ponsel cerdas atau komputer mana pun!

Proyek ini menggunakan Modul Arduino Yún, yang dirancang khusus untuk mengelola perangkat yang mendukung koneksi jaringan. Yún memiliki dua prosesor, yang pertama berjalan sistem operasi Linux dan dapat terhubung ke kabel atau jaringan nirkabel. Prosesor kedua menjalankan fungsi yang sama seperti prosesor pada modul Arduino Leonardo. Oleh karena itu ia memberikan kompatibilitas yang baik perpustakaan Arduino dan perangkat keras.

Proyek ini menggunakan cahaya inframerah dioda dan penerima. Cahaya inframerah tidak terlihat oleh mata manusia, namun mudah dideteksi oleh sensor elektronik. Untuk transmisi sinyal yang lebih andal, perangkat menggunakan cahaya inframerah termodulasi, yang menghilangkan kemungkinan menerima sinyal palsu. Penerima inframerah- Ini perangkat kecil, yang menerima sinyal inframerah yang dimodulasi pada frekuensi tertentu, biasanya 38 kHz. Dengan menggunakan receiver ini, modul Arduino menentukan bit informasi yang dikirim dari panel kontrol.

Mengirim perintah ke Anda pusat multimedia akan dilakukan menggunakan antarmuka web sederhana yang berjalan secara lokal pada modul Yún dan dapat diakses oleh sebagian besar browser web modern. Situs web memudahkan pengelolaan perangkat inframerah dan bahkan memungkinkan Anda memproses beberapa perintah secara bersamaan. Misalnya, menekan tombol 'Tonton Film' dapat mengirimkan sinyal untuk menyalakan TV, pemutar Blu-ray dan menghubungkannya ke input TV.

Proyek ini memerlukan pengalaman menjalankan sketsa Arduino dan menggunakan alat baris perintah. Komponen elektronik proyek dapat diinstal pada papan tempat memotong roti.

Langkah #1: Menghubungkan Komponen

  • Hubungkan LED inframerah ke modul Yún dengan menjalankan kabel dari anoda LED (kabel panjang) ke keluaran digital 13 modul Yun.
  • Menggunakan resistor 100 ohm, sambungkan katoda LED (kabel lebih pendek) ke pin ground sensor inframerah ( keluaran rata-rata sensor).
  • Hubungkan pin pendeteksi sensor infra merah (pin paling kiri jika dilihat dari depan sensor) ke pin digital 11 modul Yún.
  • Hubungkan pin ground sensor inframerah (pin tengah) ke pin ground modul Yún.
  • Terakhir, sambungkan kabel daya sensor (pin paling kanan jika dilihat dari depan sensor) ke pin 5 volt modul Yún.

Langkah #2: Instal Ketergantungan Perangkat Lunak

  • Saat dimasukkan Kartu MicroSD ke dalam modul Yún, nyalakan Yún dengan menghubungkan USB Mikro Kabel B ke modul Yún dan adaptor USB nutrisi.
  • Pastikan Yún sudah diatur dan terhubung ke jaringan nirkabel Anda. Mengonfigurasi modul Yún ditunjukkan di halaman ini.
  • Hubungkan ke baris perintah Anda menggunakan SSH. Proses ini dijelaskan di halaman ini.
  • Setelah terhubung ke baris perintah, Anda akan melihat versi firmware. Proyek ini diuji dengan versi BusyBox v1.19.4 dari 10-04-2014 dan lebih tinggi. Jika Anda menggunakan lebih banyak versi lama, lalu ikuti petunjuk berikut.
  • Pada prompt perintah, jalankan perintah berikut untuk memperbarui manajer paket:
pembaruan opkg opkg install distribusikan && opkg install python-openssl && opkg install python-expat && easy_install pip

Proses ini memakan waktu beberapa menit. Anda mungkin melihat beberapa pesan peringatan, namun Anda dapat mengabaikannya.

  • Buat direktori di kartu SD Anda untuk menyimpan paket Python:
mkdir /mnt/sda1/python-packages
  • Instal kerangka Flask Python:
pip install --target /mnt/sda1/python-packages labu

Anda mungkin melihat beberapa pesan peringatan, namun Anda dapat mengabaikannya.

  • Perbarui jalur pencarian untuk file paket Python:
echo "ekspor PYTHONPATH=/mnt/sda1/python-packages" >> /etc/profile
  • Buat direktori tempat Arduino IDE akan mengunggah file server web:
mkdir /mnt/sda1/Arduino mkdir /mnt/sda1/arduino/www
  • Nyalakan ulang Arduino Yún Anda untuk memperbarui jalur pencarian file Python.

  • Unduh perpustakaan IR. (Arduino IRremote, perpustakaan yang dibuat oleh Ken Shirriff.)
    Buka zip arsip, ganti nama folder dengan Arduino_ IR jarak jauh- menguasai pada Arduino_ IR jarak jauh, dan impor folder Arduino_IRremote sebagai perpustakaan ke dalam Arduino IDE. Informasi rinci ditunjukkan
  • Unggah sketsa Cerdas Kendali Jarak Jauh Arduino dari arsip zip dari sini.
    Buka zip arsip dan seret foldernya Kontrol Jarak Jauh Cerdas ke folder dengan Sketsa Arduino. Buka sketsa di Arduino IDE.
  • Kompilasi sketsa dan unggah ke modul Yún melalui WiFi dengan memilih opsi yang sesuai di daftar port Arduino Yún. Pastikan untuk mengunggah sketsa melalui WiFi sehingga skrip python yang diperlukan dapat disalin ke modul Yún! Setelah mendownload sketsa, buka Serial Monitor di lingkungan Arduino IDE (ini mungkin memakan waktu beberapa menit).
  • Arahkan remote control ke sensor infra merah dan tekan beberapa tombol pada remote control. Anda akan melihat kode di Serial Monitor. Jika kode tidak ditampilkan, maka periksa sambungan rangkaian sensor.

Langkah #4: Konfigurasikan Kode Remote Control

  • Anda sekarang dapat mengonfigurasi aktivitas dan kode kendali jarak jauh dengan mengaitkannya berkas XML konfigurasi. Menggunakan editor teks, buka filenya kegiatan. xml dalam subdirektori www folder sketsa di PC Anda. (Dari Arduino IDE, klik menu Sketsa dan pilih "Tampilkan Folder Sketsa").
  • Pertimbangkan format contoh operasi dalam file. Setiap blok operasi menentukan nama atribut yang akan muncul sebagai tombol di halaman web remote. Dalam setiap operasi, blok kode berisi urutan kode inframerah yang harus dijalankan. Pada contoh, perintah Sony A90 (power on/off) dijalankan terlebih dahulu untuk menghidupkan TV, kemudian perintah Panasonic (power on/off) untuk menghidupkan pemutar Blu-ray. Setiap kode memiliki parameter string yang merupakan keluaran data langsung dari kode jarak jauh yang terdeteksi dari sketsa Arduino.
  • Tambahkan perintah Anda ke file dengan menyalin contoh dan mengubah nama dan kode. Saat remote diarahkan ke sensor inframerah, tekan tombol dan tuliskan dengan hati-hati urutan kode inframerah tertentu. Salin urutannya ke dalam konfigurasi opcode.
  • Segera setelah Anda menerima berkas yang diperlukan konfigurasi, simpan file dan unggah ulang sketsa ke modul Yún melalui WiFi. Untuk memperbarui file konfigurasi, edit file dan unggah sketsa melalui WiFi menggunakan Arduino IDE.

Langkah #5: Memulai server dengan antarmuka web

  • Untuk memulai server, sambungkan modul Yún melalui SSH. Untuk memulai server, jalankan perintah berikut:
python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Ketika server berhasil dimulai, Anda akan melihat pesan:
* Berjalan di http://0.0.0.0:5000/ * Restart dengan reloader
  • Jika Anda melihat kesalahan, periksa semua dependensi yang diinstal pada langkah sebelumnya.
  • Di browser web Anda, masukkan http://arduino.local:5000/. Jika browser tidak mendukung URL mDNS (seperti Windows, Android, dan lainnya Distribusi Linux) masukkan http:// Arduino_ aku p_ alamat:5000/, dimana Arduino_ aku p_ alamat adalah alamat IP Arduino Yún Anda. Alamat IP terletak di bagian bawah Arduino IDE saat menghubungkan Yún (Gambar 2).
  • Setelah halaman dimuat, Anda akan melihat daftar tindakan tombol yang dikonfigurasi. Jika Anda melihat kesalahan, periksa apakah dependensi telah diinstal dengan benar, sketsa telah dimuat, dan server berjalan tanpa kesalahan.
  • Untuk menghentikan server, tekan Ctrl-C di jendela perintah tempat server dimulai.

Langkah #6: Menggunakan Antarmuka Web

  • Untuk digunakan kendali jarak jauh yang cerdas arahkan LED ke perangkat elektronik dan tekan salah satu tombol aktif. Jika perangkat yang diperlukan tidak menyala, coba dekatkan LED ke perangkat yang diperlukan. Jangkauan LED kecil, sekitar 6 kaki. Perlu menambahkan transistor untuk meningkatkan jangkauan LED. Informasi rinci disediakan Di Sini.
  • Anda juga dapat menguji kode inframerah dengan membuka Yún Serial Monitor di Arduino IDE dan mengirimkan kode inframerah sebagai perintah. Misalnya mengirimkan kode “SONY:C A90” (tanpa tanda kutip) akan menyebabkan perangkat keras mengirimkan perintah ke menyalakan Sony A90. ("C" mewakili bit panjang perintah, 12, dikonversi ke heksadesimal).
  • Untuk mulai otomatis server saat memuat, edit file / dll./ rc. lokal di modul Yún (menggunakan editor nano atau vi) dan tambahkan baris berikut sebelum dengan baris "exit 0" di akhir:
PYTHONPATH=/mnt/sda1/paket python python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Untuk pengenalan suara, jalankan peramban Google krom. Klik tombol "Bicara" dan peramban Chrome akan meminta izin untuk menggunakan mikrofon. Kemudian ucapkan nama operasi yang aktif dan tunggu hingga dikenali. Misalnya, untuk menjalankan pengoperasian film "Film", tekan tombol "Bicara" dan ucapkan kata "Film" ke mikrofon. Frasa seperti "Putar Film" atau "Jalankan Film" tidak didukung - hanya nama jelas dari operasi aktif yang dikenali.

Ada banyak artikel di Internet tentang cara membuat remote control TV sendiri menggunakan Arduino, tetapi saya memerlukan remote control universal untuk mengontrol TV dan pemutar media saya. Kelebihan utama dari remote universal saya adalah tombol-tombol di aplikasi hp android berfungsi ganda, tapi lihat videonya.



Remote control sangat nyaman karena tombol yang hampir sama di layar digunakan untuk mengontrol TV dan pemutar. Salah satu perbedaannya adalah " AV"dalam mode kontrol TV berubah menjadi tombol" " (berhenti) saat beralih ke mode kontrol pemutar. Gambar menunjukkan dua mode, di sebelah kiri adalah mode kontrol TV, di sebelah kanan adalah mode kontrol pemutar.

Nah, sekarang saya akan bercerita sedikit tentang cara membuat remote control tersebut. Untuk perangkat saya menggunakan remote control ERGO TV dan remote control pemutar media DUNE HD TV101W.

Untuk menerima data dari remote control, saya menggunakan sensor infra merah TSOP1138 (analog dari TSOP4838) pada frekuensi operasi 38 kHz dan menghubungkannya ke papan Arduino sesuai skema:

Sketsa ini tidak diperlukan untuk menentukan pengkodean transmisi data dan membaca kode tombol remote control.

Pada sketsa di baris int RECV_PIN = 11; tunjukkan pin kami nomor 4

Setelah mengunggah sketsa, buka "port monitor" dan, dengan menekan tombol remote control, lihat data yang diterima.

Gambar menunjukkan contoh pemindaian tombol power dari remote control TV dan remote control player. Sekarang kita membuat tabel untuk kode tombol.

Saya mendapatkannya seperti pada foto di atas. Di bawah tulisan itu televisi Kode tombol remote control TV; di bawah prasasti Pemain- kode dari remote control pemutar media.

Sekarang kita lepaskan penerima sinyal inframerah dari papan Arduino dan sambungkan ke sana Modul Bluetooth HC-05 dan LED infra merah sesuai diagram di foto.

Setelah itu kita langsung lanjut ke sketsanya.

Sketsa

#termasuk aku mengirim aku tidak mengirim; ke dalam kamu = 1; void setup() ( Serial.begin(9600); ) void loop() ( if (Serial.available() > 0) ( int x = Serial.read(); if (x == 49) ( y = 1; ) if (x == 50) ( y = 2; ) if (y == 1) ( // kode tombol untuk remote TV if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40 ); ) jika (x == 98) ( irsend.sendNEC(0x807FA857, 32); tunda(40); ) jika (x == 99) ( irsend.sendNEC(0x807F708F, 32); tunda(40); ) jika (x == 100) ( irsend.sendNEC(0x807FF00F, 32); tunda(40); ) jika (x == 101) ( irsend.sendNEC(0x807F30CF, 32); tunda(40); ) jika (x == 102) ( irsend.sendNEC(0x807FB04F, 32); delay(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); delay(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); penundaan(40); jika (x == 105) (irsend.sendNEC(0x807FD827, 32); penundaan(40); , 32); penundaan(40); 107) ( irsend.sendNEC(0x807F48B7, 32); penundaan(40); ) jika (x == 108) ( irsend.sendNEC(0x807FB847, 32); penundaan(40); jika (x == 109) ( irkirim. kirimNEC(0x807F6897, 32);


penundaan(40);

) ) if (y == 2) ( //kode tombol remote control pemutar media if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); delay(40); ) if (x == 98) ( irsend.sendNEC(0xFDE01F, 32); penundaan(40); jika (x == 99) ( irsend.sendNEC(0xFD18E7, 32); penundaan(40); ) jika (x == 100) ( irsend.sendNEC( 0xFDE817, 32); penundaan(40); ) jika (x == 101) ( irsend.sendNEC(0xFDA857, 32); penundaan(40); ) jika (x == 102) ( irsend.sendNEC(0xFD6897, 32) ; tunda (40); ) jika (x == 103) ( irsend.sendNEC(0xFDA857, 32); tunda(40); ) jika (x == 104) ( irsend.sendNEC(0xFD6897, 32); tunda(40 ); ) jika (x == 105) ( irsend.sendNEC(0xFDE817, 32); tunda(40); ) jika (x == 106) ( irsend.sendNEC(0xFD18E7, 32); tunda(40); ) jika (x == 107) ( irsend.sendNEC(0xFD9867, 32); tunda(40); ) jika (x == 108) ( irsend.sendNEC(0xFD28D7, 32); tunda(40); ) jika (x == 109) ( irsend.sendNEC(0xFD20DF, 32); penundaan(40); ) ) ) )
Pada sketsa Anda perlu mengedit kode tombol, yaitu pada baris:

Jika (x == 97) ( irsend.sendNEC(0x807F08F7, 32); penundaan(40);
Ubah nilai 807F08F7 menjadi:

If (y == 1) ( //kode tombol untuk remote control TV if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); ) Dimana 12345678 adalah kode tombol anda. Setelah mengedit sketsa menggunakan kode tombol Anda, unggah sketsa tersebut ke

papan Arduino Pult di telepon.

Saat startup kita akan memiliki layar dengan warna merah ikon bluetooth di pojok kanan bawah, yang menandakan bahwa kita tidak terhubung ke perangkat kita.

Setelah itu, klik ikon ini. Kita akan melihat jendela dengan daftar semua yang tersedia perangkat bluetooth, tempat kami memilih perangkat untuk dihubungkan.

Sekarang kami kembali lagi layar beranda dan kita sudah bisa mengontrol TV:

Untuk beralih ke mode kontrol kita perlu menekan tombol berlabel "Pemain". Seperti yang saya katakan sebelumnya, tombol kita yang berlabel "AV" akan berubah menjadi tombol " ":

Untuk memutuskan sambungan dari perangkat kami, cukup tahan tombol "Daya" selama beberapa detik.

Nah, beberapa foto perangkat saya yang sudah jadi.

Ternyata hasilnya cukup baik. Saya menunggu komentar pada artikel tersebut.

Ada banyak artikel di Internet tentang cara membuat remote control TV sendiri menggunakan Arduino, tetapi saya memerlukan remote control universal untuk mengontrol TV dan pemutar media saya. Kelebihan utama dari remote universal saya adalah tombol-tombol di aplikasi hp android berfungsi ganda, tapi lihat videonya.



Remote control sangat nyaman karena tombol yang hampir sama di layar digunakan untuk mengontrol TV dan pemutar. Salah satu perbedaannya adalah " AV"dalam mode kontrol TV berubah menjadi tombol" " (berhenti) saat beralih ke mode kontrol pemutar. Gambar menunjukkan dua mode, di sebelah kiri adalah mode kontrol TV, di sebelah kanan adalah mode kontrol pemutar.

Nah, sekarang saya akan bercerita sedikit tentang cara membuat remote control tersebut. Untuk perangkat saya menggunakan remote control ERGO TV dan remote control pemutar media DUNE HD TV101W.

Untuk menerima data dari remote control, saya menggunakan sensor infra merah TSOP1138 (analog dari TSOP4838) pada frekuensi operasi 38 kHz dan menghubungkannya ke papan Arduino sesuai skema:

Sketsa ini tidak diperlukan untuk menentukan pengkodean transmisi data dan membaca kode tombol remote control.

Pada sketsa di baris int RECV_PIN = 11; tunjukkan pin kami nomor 4

Setelah mengunggah sketsa, buka "port monitor" dan, dengan menekan tombol remote control, lihat data yang diterima.

Gambar menunjukkan contoh pemindaian tombol power dari remote control TV dan remote control player. Sekarang kita membuat tabel untuk kode tombol.

Saya mendapatkannya seperti pada foto di atas. Di bawah tulisan itu televisi Kode tombol remote control TV; di bawah prasasti Pemain- kode dari remote control pemutar media.

Sekarang kita lepaskan penerima sinyal inframerah dari papan Arduino dan sambungkan modul Bluetooth HC-05 dan LED inframerah sesuai dengan diagram di foto.

Setelah itu kita langsung lanjut ke sketsanya.

Sketsa

#termasuk aku mengirim aku tidak mengirim; ke dalam kamu = 1; void setup() ( Serial.begin(9600); ) void loop() ( if (Serial.available() > 0) ( int x = Serial.read(); if (x == 49) ( y = 1; ) if (x == 50) ( y = 2; ) if (y == 1) ( // kode tombol untuk remote TV if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40 ); ) jika (x == 98) ( irsend.sendNEC(0x807FA857, 32); tunda(40); ) jika (x == 99) ( irsend.sendNEC(0x807F708F, 32); tunda(40); ) jika (x == 100) ( irsend.sendNEC(0x807FF00F, 32); tunda(40); ) jika (x == 101) ( irsend.sendNEC(0x807F30CF, 32); tunda(40); ) jika (x == 102) ( irsend.sendNEC(0x807FB04F, 32); delay(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); delay(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); penundaan(40); jika (x == 105) (irsend.sendNEC(0x807FD827, 32); penundaan(40); , 32); penundaan(40); 107) ( irsend.sendNEC(0x807F48B7, 32); penundaan(40); ) jika (x == 108) ( irsend.sendNEC(0x807FB847, 32); penundaan(40); jika (x == 109) ( irkirim. kirimNEC(0x807F6897, 32);


penundaan(40);

) ) if (y == 2) ( //kode tombol remote control pemutar media if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); delay(40); ) if (x == 98) ( irsend.sendNEC(0xFDE01F, 32); penundaan(40); jika (x == 99) ( irsend.sendNEC(0xFD18E7, 32); penundaan(40); ) jika (x == 100) ( irsend.sendNEC( 0xFDE817, 32); penundaan(40); ) jika (x == 101) ( irsend.sendNEC(0xFDA857, 32); penundaan(40); ) jika (x == 102) ( irsend.sendNEC(0xFD6897, 32) ; tunda (40); ) jika (x == 103) ( irsend.sendNEC(0xFDA857, 32); tunda(40); ) jika (x == 104) ( irsend.sendNEC(0xFD6897, 32); tunda(40 ); ) jika (x == 105) ( irsend.sendNEC(0xFDE817, 32); tunda(40); ) jika (x == 106) ( irsend.sendNEC(0xFD18E7, 32); tunda(40); ) jika (x == 107) ( irsend.sendNEC(0xFD9867, 32); tunda(40); ) jika (x == 108) ( irsend.sendNEC(0xFD28D7, 32); tunda(40); ) jika (x == 109) ( irsend.sendNEC(0xFD20DF, 32); penundaan(40); ) ) ) )
Pada sketsa Anda perlu mengedit kode tombol, yaitu pada baris:

Jika (x == 97) ( irsend.sendNEC(0x807F08F7, 32); penundaan(40);
Ubah nilai 807F08F7 menjadi:

Setelah mengedit sketsa menggunakan kode tombol Anda, unggah sketsa tersebut ke papan Arduino dan lanjutkan untuk menginstal aplikasi di ponsel.

papan Arduino Pult di telepon.

Saat startup kita akan melihat layar dengan ikon bluetooth merah di pojok kanan bawah, yang menandakan bahwa kita tidak terhubung ke perangkat kita.

Setelah itu, klik ikon ini. Kita akan melihat jendela dengan daftar semua perangkat bluetooth yang tersedia, tempat kita memilih perangkat untuk dihubungkan.

Sekarang kita kembali ke layar utama dan sudah bisa mengontrol TV:

Untuk beralih ke mode kontrol kita perlu menekan tombol berlabel "Pemain". Seperti yang saya katakan sebelumnya, tombol kita yang berlabel "AV" akan berubah menjadi tombol " ":

Untuk memutuskan sambungan dari perangkat kami, cukup tahan tombol "Daya" selama beberapa detik.

Nah, beberapa foto perangkat saya yang sudah jadi.

Ternyata hasilnya cukup baik. Saya menunggu komentar pada artikel tersebut.

Remote control inframerah adalah salah satu yang paling banyak cara sederhana interaksi dengan perangkat elektronik. Jadi, di hampir setiap rumah ada beberapa perangkat seperti itu: TV, pusat musik, pemutar video, AC. Tapi yang paling banyak aplikasi yang menarik remote control inframerah - remote control robot. Sebenarnya dalam pelajaran ini kita akan mencoba mengimplementasikan metode kontrol ini menggunakan pengontrol Arduino Uno yang populer.

1. Pengendali jarak jauh IR

Apa yang diperlukan untuk mengajarkan robot agar mematuhi kendali jarak jauh inframerah (IR)? Pertama, kita memerlukan remote control itu sendiri. Anda dapat menggunakan remote control TV biasa, atau Anda dapat membeli remote control mini untuk radio mobil Anda. Remote control jenis ini sering digunakan untuk mengendalikan robot.

Remote control ini memiliki 10 tombol digital dan 11 tombol untuk memanipulasi musik: volume, mundur, putar, berhenti, dll. Lebih dari cukup untuk tujuan kita.

2. sensor inframerah

Kedua, untuk menerima sinyal dari remote control kita memerlukan sensor IR khusus. Secara umum, kita dapat mendeteksi radiasi infra merah dengan fotodioda/fototransistor konvensional, namun berbeda dengan sensor infra merah, sensor IR kita hanya menangkap sinyal infra merah pada frekuensi 38 kHz (terkadang 40 kHz). Properti inilah yang memungkinkan sensor mengabaikan banyak kebisingan cahaya asing dari lampu penerangan dan matahari.

Untuk tutorial ini kita akan menggunakan sensor IR yang populer VS1838B, yang memiliki ciri-ciri sebagai berikut:

  • frekuensi pembawa: 38 kHz;
  • tegangan suplai: 2,7 - 5,5 V;
  • konsumsi saat ini: 50 μA.

Sensor lain dapat digunakan, misalnya: TSOP4838, TSOP1736, SFH506.

3. Koneksi

Sensor memiliki tiga sadapan (tiga kaki). Jika Anda melihat sensor dari sisi penerima sinyal IR, seperti yang ditunjukkan pada gambar,

  • lalu di sebelah kiri akan ada output ke controller,
  • di tengah - kontak daya negatif (ground),
  • dan di sebelah kanan - kontak daya positif (2,7 - 5,5V).

Diagram skema koneksi

Penampilan tata letak

4. Program

Setelah menghubungkan sensor IR, kita akan menulis program untuk Arduino Uno. Untuk ini kami akan menggunakan perpustakaan standar IR jarak jauh, yang dirancang khusus untuk menyederhanakan pekerjaan menerima dan mentransmisikan sinyal IR. Dengan menggunakan perpustakaan ini, kami akan menerima perintah dari remote control, dan untuk memulainya, cukup tampilkan di jendela monitor port serial. Program ini akan berguna bagi kita untuk memahami kode apa yang diberikan setiap tombol.

#termasuk "IRremote.h" IRrecv irrecv(2); // menunjukkan pin yang terhubung dengan penerima hasil decode_results; void setup() ( Serial.begin(9600); // atur kecepatan Pelabuhan COM irrecv.enableIRIn(); // mulai menerima ) void loop() ( if (irrecv.decode(&results)) ( // jika data sudah sampai Serial.println(results.value, HEX); // mencetak data irrecv.resume(); // menerima tim selanjutnya))

Muat program ke Arduino. Setelah itu, kami mencoba menerima perintah dari remote control. Buka monitor port serial (Ctrl+Shift+M), ambil remote control, dan arahkan ke sensor. Dengan menekan tombol yang berbeda, kami mengamati kode yang sesuai dengan tombol-tombol ini di jendela monitor.

Masalah saat memuat program

Dalam beberapa kasus, ketika mencoba memuat program ke pengontrol, kesalahan mungkin muncul:

TDK2 tidak dideklarasikan dalam ruang lingkupnya

Untuk memperbaikinya cukup hapus dua file dari folder perpustakaan. Ayo pergi ke penjelajah. Masuk ke folder tempat aplikasi Arduino IDE diinstal (kemungkinan besar “C:\Program Files (x86)\Arduino”). Kemudian ke folder perpustakaan:

…\Arduino\libraries\RobotIRremote

Dan hapus file: IRremoteTools.cpp Dan IRremoteTools.h. Kemudian, kita restart Arduino IDE dan coba memuat kembali program ke controller.

5. Kontrol LED menggunakan remote control IR

Sekarang setelah kita mengetahui kode mana yang sesuai dengan tombol remote control, kita mencoba memprogram pengontrol untuk menghidupkan dan mematikan LED ketika tombol volume ditekan. Untuk melakukan ini kita memerlukan kode (dapat bervariasi tergantung pada remote control):

  • FFA857 - meningkatkan volume;
  • FFE01F - mengurangi volume.

Sebagai LED, kami menggunakan LED built-in pada pin No. 13, sehingga diagram koneksi akan tetap sama. Jadi, programnya:

#termasuk "IRremote.h" IRrecv irrecv(2); // menunjukkan pin yang terhubung dengan penerima hasil decode_results; void setup() ( irrecv.enableIRIn(); // mulai menerima ) void loop() ( if (irrecv.decode(&results)) ( // jika data tiba, switch (results.value) ( ​​case 0xFFA857: digitalWrite( 13, TINGGI); istirahat; kasus 0xFFE01F: digitalWrite(13, RENDAH);

Kami mengunggahnya ke Arduino dan mengujinya. Klik jilid+— LED menyala. Klik vol-- padam. Sekarang, mengetahui cara kerjanya, Anda dapat mengontrol motor robot atau perangkat mikroelektronik buatan sendiri lainnya selain LED!

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat