Hallo Zusammen,
auch auf die Gefahr hin das ich gleich hier gesteinigt werde. Traue ich mich mal meine Frage zu stellen. Ich habe erst vor kurzem angefangen mich mit dem Arduino auseinander zu setzte, dabei hat mir die Seite von Stefan Hermann sehr geholfen.
Momentan sitze ich an einem Projekt in dem 2 Servos eine LED und ein Puh Button verbaut wird. Wenn man den Knopf drückt sollen die Servos sich um 180 Grad bewegen und die LED zuerst kurz blinken und dann angehen. Drückt man den Knopf erneut so sollen die Servos auf den Ausgangspunkt zurück und die LED soll ausgehen.
Soweit so gut, dachte ich. Aber irgendwie will der Push Button nicht.
Ich weiß leider nicht woran es liegt, dass es nicht funktioniert. Ziehe ich das Kabel neben dem Push Button wird der gewünschte Effekt ausgelöst. Aber wenn ich auf den Push Button drücke passiert nichts.
Ich habe hier mal meine Steckzeichnung beigefügt und den Code. Wenn mir jemand dienen Tipp in die richtige Richtung geben könnte. Wäre das sehr nett.
Danke schon mal im Voraus
Das Bild:
Der Code:
#include <Servo.h>
//servo 1
Servo myservo;
Servo myservo1;
int val;
int val2;
int buttonState;
int pos = 0;
int pos1 = 180;
int servostatus = 0;
int switchPin =2;
int ledPin = 5;
int ledPin2 = 18;
void setup()
{
//servo 1
myservo.attach(9);
myservo1.attach(10);
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
buttonState = digitalRead(switchPin);
myservo.write(0);
myservo1.write(175);
pinMode(ledPin2, OUTPUT);
}
void loop()
//servo 1
{
val = digitalRead(switchPin);
delay(10);
val2 = digitalRead(switchPin);
if (val == val2) {
if (val != buttonState) {
if (val == LOW) {
if (servostatus == 0) {
servostatus = 1;
myservo.write(0);
myservo1.write(180);
delay(1000);
digitalWrite(ledPin, HIGH);
delay(50);
digitalWrite(ledPin, LOW);
delay(00);
digitalWrite(ledPin, HIGH);
delay(50);
digitalWrite(ledPin, LOW);
delay(00);
// fading
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
delay(30);
}
} else {
servostatus = 0;
digitalWrite(ledPin, LOW);
delay(15);
digitalWrite(ledPin2, LOW);
myservo.write(180);
myservo1.write(0);
}
}
}
buttonState = val;
}
}
Fasse den Code in Code-Tags, damit er scroll- und lesbar wird. Du kannst das auch nachträglich tun: Posting bearbeiten, Code markieren, Code-Tag in der Symbolleiste (ganz links) klicken, speichern.
Sonic487:
Soweit so gut, dachte ich. Aber irgendwie will der Push Button nicht.
Ich weiß leider nicht woran es liegt, dass es nicht funktioniert. Ziehe ich das Kabel neben dem Push Button wird der gewünschte Effekt ausgelöst. Aber wenn ich auf den Push Button drücke passiert nichts.
Ich habe hier mal meine Steckzeichnung beigefügt und den Code. Wenn mir jemand dienen Tipp in die richtige Richtung geben könnte. Wäre das sehr nett.
Hallo Sonic487,
ich tippe mal auf einen um 90° verdreht eingebauten Taster. Falls es das nicht ist, bitte mal ein Foto posten. Vielleicht sieht man da noch was. Vor allem wäre interessant welches Kabel neben dem Taster gezogen werden muß das es funktioniert.
Hallo und Herzlich willkommen in der Arduino Welt,
Wie Jürgen es schon gesagt hat, scheint mit dem Taster was nicht richtig zu furzen.
Mach mal ein Bild deiner Schaltung (du kannst auch Bilder hier im Forum hochladen, Bilder kann man auch Sichtbar machen mit [ img ] URL [ / img ] "Ohne die Lehrzeichen").
Da ich auch immer meine Probleme mit den Tastern habe, gibt es hier eine Nette Unterhaltung dazu Taster richtig abfragen.
Das wichtigste ist, den Kopf nicht hängen lassen, und immer eins nach dem anderen, also erst mal mit dem Taster anfangen dann den Rest.
ich habe es endlich hinbekommen.
Nachdem ich einfach alles nochmal ganz von vorne gemacht habe und ich mir nochmal andere Steckpläne von Schaltungen mit Tastern angesehen habe, habe ich die Fehler gefunden und behoben. Nun funktioniert endlich alles so wie ich es gerne haben wollte.
Vielen Danke trotzdem an alle die mir hier Tipps gegeben haben.