Ich versuche eine kontinuierliche (180 zu 0 und zurück 0 zu 180) Bewegung von einem Servo zu bekommen, wenn ich eine Taste in der Fernbedienung drücke und NUR stop wenn ich die andere Taste drücke. Bisher habe ich es kontinuierlich bewegen lassen, aber dann höre ich nicht auf, wenn ich auf den "Stop" -Button drücke. Ich weiß, dass es wegen der while-Schleife ist. Allerdings habe ich switch-case versucht, wenn Aussage, bisher hat nichts funktioniert. Bitte helfen, jeder Rat dafür, damit es funktioniert, wird geschätzt.Arduino Servo und IR Fernbedienung
#include <Servo.h>
#define code1 2534850111 //decimal value of button 1
#define code3 16724175 //decimal value of button 1
#define code 4294967295 //random value
#define code2 16738455 //decimal value of button 0
#define code4 3238126971 //decimal value of button 0
Servo myservo; // servo object
int RECV_PIN = 11; //receiveing pin IR remote
int pos = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); //start the receiver
myservo.attach(9); //servo connect to pin 9
pinMode(2, OUTPUT); //LED connect to pin 2
}
void loop() {
if(irrecv.decode(&results)){
// if(results.value == code1 || results.value == code3){
while(results.value == code1 || results.value == code3){
digitalWrite(2,HIGH); //turn the led on
for(pos = 0; pos <= 180; pos += 1){ //servo goes form 0 to 180 degrees in steps of 1 degree
myservo.write(pos);
delay(7);
}
for(pos = 180; pos >= 0; pos -= 1){ //servo goes back from 180 to 0 degrees with 1 degree step
myservo.write(pos);
delay(7);
}
}
while(results.value == code2 || results.value == code4){
digitalWrite(2, LOW); // turn the led off
myservo.write(pos);
delay(15);
break;
}
Serial.println(results.value, DEC); //show the decimal value of the pressed button
irrecv.resume(); //receive the next value
}
}
Bitte bearbeiten Sie Ihre Frage und zeigen Sie uns den Code, den Sie derzeit haben. Ohne das (und oft ein Schaltplan) können wir Ihnen wirklich nicht helfen. – stevieb
Meine Kristallkugel sagt mir nichts über Ihren Code ... :( –
Tut mir leid, ich lerne gerade dieses Feld. Ich dachte, es gibt eine bessere Möglichkeit, die Codes als die 4 Leerzeichen in jeder Zeile anzuhängen. Das ist aber nicht Das Problem, ich hoffe du kannst mir jetzt helfen :) – theagleye