Pemberi Makan Hewan Pintar Berbasis Arduino: Kit DIY & Panduan Pembuatan
Komponen dan Perlengkapan
Arduino UNO
Anda dapat menggunakan papan serupa lainnya
×
1
Micro-servo motor SG90
Anda dapat menggunakan servo motor apa pun, tidak perlu sangat kuat
×
1
Penerima IR (generic)
Penerima IR(TSOP1738)
×
1
JustBoom IR Remote
Anda dapat menggunakan remote control (IR) apa pun
×
1
Kabel Jumper (generic)
×
1
Breadboard (generic)
×
1
Alat dan Mesin yang Diperlukan
Gunting
Pistol litur panas (generic)
Aplikasi dan Layanan Online
Arduino IDE
Tentang Proyek Ini
Dengan proyek Arduino sederhana ini, Anda dapat memberi makan hewan peliharaan Anda menggunakan remote control. Yang Anda butuhkan adalah papan Arduino Uno (atau sejenisnya), botol plastik, servo motor (tidak perlu sangat kuat), remote TV, penerima IR (TSOP1738) dan selembar karton kecil.
Mari kita mulai!
Memasang Perpustakaan IR:
Hal pertama yang perlu kita lakukan terkait dengan Arduino adalah mengunduh perpustakaan IR.
Unduh perpustakaan IR dari link di bawah dan instal: https://github.com/z3t0/Arduino-IRremote
Jika Anda tidak tahu cara menginstal perpustakaan, ikuti link di bawah: https://www.arduino.cc/en/guide/libraries
Mendekode Sinyal IR:
Pertama, Anda perlu menghubungkan bagian-bagian sesuai dengan diagram rangkaian yang diberikan:
Anda dapat melihat Pin out TSOP1738 di bawah:
Gunakan kode berikut untuk mendekode remote IR:
/* The IR sensor's pins are attached to Arduino as so: Pin 1 to Vout (pin 11 on Arduino) Pin 2 to GND Pin 3 to Vcc (+5v from Arduino) */ #include <IRremote.h> int IRpin = 11; IRrecv irrecv(IRpin); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, DEC); // Print the Serial 'results.value' irrecv.resume(); // Receive the next value } }
Buka Arduino IDE dan Unggah kode
Buka Serial Monitor
Aim remote Anda ke sensor dan tekan setiap tombol
Anda dapat melihat angka berbeda untuk setiap tombol
Pertimbangkan dua tombol apa pun, dan catat nilai yang didekode. Dalam kasus saya, saya telah memilih tombol Power dan Mode.
Saya mendapatkan nilai berikut:
Tombol Power=33441975
Tombol Mode =33446055
Kami akan menggunakan dua nilai ini untuk mengontrol rotasi servo motor. Anda perlu menambahkan dua nilai ini dalam program yang diberikan pada langkah berikutnya:
Mari kita siapkan perangkat keras akhir!
Rangkaian Akhir!
Hubungkan pin sinyal servo ke pin#9 pada Arduino
Hubungkan pin VCC dan GND servo ke 5V VCC dan GND pada Arduino
Servo akan ditempel di satu ujung botol plastik, dan memutar selembar karton yang cukup kecil untuk menutup pembukaan botol sehingga makanan terhalang.
Jika semua pengaturan perangkat keras terhubung dengan benar, Anda dapat langsung mengkompilasi dan mengunggah sketsa berikut ke papan.
#include <IRremote.h> #include <Servo.h> int IRpin = 11; // pin for the IR sensor IRrecv irrecv(IRpin); decode_results results; Servo myservo; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { if (irrecv.decode(&results)) { irrecv.resume(); // Receive the next value } if (results.value == 33441975) // change according to your IR remote button number { myservo.write(0); delay(15); } if (results.value == 33446055) // change according to your IR remote button number { myservo.write(30); delay(15); } }
Sekarang Anda dapat mengontrol pembukaan pemberi makanan hewan peliharaan Anda dengan remote control dengan proyek sederhana ini. :-)
Selamat membuat!
Kode
Decode_IR
IRremote_Servo_Control
Decode_IR
Gunakan kode ini untuk mendekode remote IR
/* The IR sensor's pins are attached to Arduino as so: Pin 1 to Vout (pin 11 on Arduino) Pin 2 to GND Pin 3 to Vcc (+5v from Arduino) */ #include <IRremote.h> int IRpin = 11; IRrecv irrecv(IRpin); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, DEC); // Print the Serial 'results.value' irrecv.resume(); // Receive the next value } }
IRremote_Servo_Control
Tambahkan nilai yang didekode dari remote Anda dalam kode ini
#include <IRremote.h> #include <Servo.h> int IRpin = 11; // pin for the IR sensor IRrecv irrecv(IRpin); decode_results results; Servo myservo; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { if (irrecv.decode(&results)) { irrecv.resume(); // Receive the next value } if (results.value == 33441975) // change according to your IR remote button number { myservo.write(0); delay(15); } if (results.value == 33446055) // change according to your IR remote button number { myservo.write(30); delay(15); } }