Kontrollera med hjälp av IR-fjärrkontroll-servomotor (3 / 4 steg)
Steg 3: Programmering
Först, ladda ner IRremote bibliotek för arduino från denna länk.
Kopiera biblioteket till lokal Disk(C:) > Program Files(x86) > Arduino > bibliotek
Öppna IRremote demo exempel från Arduino IDE som bild 1 och sedan ladda upp till arduino ombord.
Sedan öppnar seriell övervaka och försöker klicka på någon av knapparna på fjärrkontrollen för att skicka en signal till IR-mottagare, HEX koden för varje knapp måste visas i följetong monitor som bild 2
Identifiera HEX koden av knapparna använder för att styra servomotor, antar du två knappar för ditt val, en för Medsols rotation och en annan för counter medurs rotation.
Använd exempelvis (+) för medurs och (-) för moturs, så du måste få sina HEX koder.
(+)---> A3C8EDDB
(-)---> F076C13B
I den sista koden är funktionaliteten när du klickar på någon av två knappar motorn växla mellan rotation i huvudriktning och stopp så när först klicka på någon av två knappar motorn roterar i en knapp ledning och när andra klick på samma knapp motorn kommer att sluta som visas i videon.
Koden är:
Skrivet av: Mohamed Soliman
Denna kod är för att kontrollera servomotor med IR-fjärrkontroll
När du klickar på någon av två knappar motorn växla mellan rotation och stop
#include < IRremote.h > //must kopia IRremote bibliotek för arduino bibliotek
#include < Servo.h >
#define plus 0xA3C8EDDB //clockwise rotation knappen
#define 0xF076C13B //counter Medsols rotation minusknapp
int RECV_PIN = 2; IR-mottagare pin
Servo servo;
int val; rotationsvinkeln
bool cwRotation, ccwRotation; staterna i rotation
IRrecv irrecv(RECV_PIN);
decode_results resultat.
void setup()
{
Serial.BEGIN(9600);
irrecv.enableIRIn(); Starta mottagaren
servo.attach(9); servo pin
}
void loop()
{
om (irrecv.decode (& resultat)) {
Serial.println (results.value, HEX);
irrecv.Resume(); Ta emot nästa värde
om (results.value == plus)
{
cwRotation =! cwRotation; växla mellan rotation värdet
ccwRotation = false; ingen rotation i denna riktning
}
om (results.value == minus)
{
ccwRotation =! ccwRotation; växla mellan rotation värdet
cwRotation = false; ingen rotation i denna riktning
}
}
om (cwRotation & & (val! = 175)) {
Val ++; för colockwise knapp
}
om (ccwRotation & & (val! = 0)) {
Val--; för counter colockwise knapp
}
servo.write(val);
Delay(20); De allmänna hastighet
}