Remote kontrolleras Rubberband Gun (2 / 4 steg)
Steg 2: Programmera Arduino
1.-måste du inkludera IR biblioteket i Arduino (här är en länk)2.-satte i koden (bifogad)
3. använda knappen #1 att öppna servo och #2 för att stänga det
Här är koden-
#include < Servo.h >
#include < Ultrasonic.h >
#include "IRremote.h"
#define TRIGGER_PIN 12 / / ultraljud sensorn UTLÖSA
#define ECHO_PIN 13 / / Ultrasonic sensor eko
#define avstånd 20 / / i centimeter
#define väntar på 5000 / / i millisekunder så detta är 5: e sekund.
#define SERVO_PIN 9
#define CLOSE_POS 90 / / servo i nära/position
#define OPEN_POS 180 / / servo i öppna/BACK läge
/ *---(Deklarera konstanter)---* /
int mottagare = 11; stift 1 med IR-mottagare till Arduino digital stift 11
/ *---(Deklarera objekt)---* /
IRrecv irrecv(receiver); skapa en instans av "irrecv"
decode_results resultat. skapa en instans av "decode_results"
/ *---(Deklarera variabler)---* /
Ultraljuds ultraljud (TRIGGER_PIN, ECHO_PIN);
Servo myservo; skapa objekt för att styra PEZ servo servo
void setup()
{
Serial.BEGIN(9600);
myservo.attach(SERVO_PIN); fäster servo för att fästa
myservo.write(CLOSE_POS); Vrid servo till Stäng/upp
Serial.println ("IR-mottagare rådata + knappen avkoda Test");
irrecv.enableIRIn(); Starta mottagaren
}
void loop()
{
om (irrecv.decode (& resultat)) / / har vi fått en IR-signal?
{
Serial.println (results.value, HEX); FN: S kommentar till raw-värden
translateIR();
irrecv.Resume(); ta emot nästa värde
}
}
float cmMsec, inMsec;
långa microsec = ultrasonic.timing();
//
cmMsec = ultrasonic.convert (microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert (microsec, Ultrasonic::IN);
//
Detta är för felsökning
Serial.Print ("MS:");
Serial.Print(microsec);
Serial.Print (", CM:");
Serial.Print(cmMsec);
Serial.Print (",:");
Serial.println(inMsec);
Delay(1000);
//
void setup() / *---(SETUP: kör en gång)---* /
//
/ / Serial.begin(9600);
Serial.println ("IR-mottagare rådata + knappen avkoda Test");
irrecv.enableIRIn(); Starta mottagaren
//
} / *--(avsluta installationsprogrammet)---* /
//
void loop() / *---(LOOP: kör ständigt)---* /
// {
om (irrecv.decode (& resultat)) / / har vi fått en IR-signal?
//
// {
Serial.println (results.value, HEX); FN: S kommentar till raw-värden
translateIR();
irrecv.Resume(); ta emot nästa värde
// }
} / *--(slutet huvudloop)--* /
/ *---(Förklara användaren skrivna funktioner)---* /
void translateIR() / / tar åtgärd utifrån IR koden mottagen
som beskriver bil MP3 IR-koder
{
Switch(results.Value)
{
fall 0xFF30CF:
Serial.println ("1");
myservo.write(OPEN_POS); berätta servo att gå till öppna/tillbaka
bryta;
fall 0xFF18E7:
Serial.println ("2").
myservo.write(CLOSE_POS); berätta servo gå till Stäng/upp
bryta;
standard:
Serial.println ("andra knappen");
}
Delay(500);
}
myservo.write(CLOSE_POS); berätta servo gå till Stäng/upp
Delay(15); Waits 15 MS för servo att nå ställning
//
//
//
myservo.write(OPEN_POS); berätta servo att gå till öppna/tillbaka
Delay(Waiting); väntar någon gång att greppa godis pellet
//
//
//}