Moin,
ich habe mir ein Arduino Mega 2560 Board gekauft und habe mein erstes Sketch hochgeladen.
Es soll ein Servo angesteuert werden. Im ersten Sketch wird der Servo an vier Positionen gefahren mit
kleinen Pausen. Alles funktioniert soweit super.
Dann habe ich ein zweites Sketch geschrieben, hier soll der Servo erst dann die Positionen anfahren, wenn
ein Taster gedrückt wird. Ich kompeliere und lade den Sketch auf das Board hoch, alles sieht soweit super aus, ausser dass der Servo mit der alten Programmierung los läuft, als hätte das Board die neue Programmierung nicht übernommen. Ich habe auch schon ein leeres Sketch geladen, und siehe da der Servo wird nicht angesteuert.
Was könnte da mein Fehler sein? Das Sketch habe ich unten mal mit eingefügt.
Danke schon mal
Gruß
Marco
#include <Servo.h> //Die Servobibliothek wird aufgerufen. Sie wird benötigt, damit die Ansteuerung des Servos vereinfacht wird.
Servo servoTor1; //Erstellt für das Programm ein Servo mit dem Namen „servoTor1“
int tasterTor1=8; //Das Wort „tasterTor1“ steht jetzt für den Wert 8.
int tasterTor1status=0; //Das Wort „tasterTor6status“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der Taster gedrückt ist oder nicht.
//-----------------------------------------
void setup()
{
servoTor1.attach(2); //Das Setup enthält die Information, dass das Servo an der Steuerleitung (gelb) mit Pin 2 verbunden wird. Hier ist natürlich auch ein anderer Pin möglich.
servoTor1.write(0); //Position 1 ansteuern mit dem Winkel 0°
pinMode(tasterTor1, INPUT_PULLUP); //Der Pin mit dem Taster (Pin 8) ist jetzt ein Eingang.
}
void loop()
{ //Im „loop“ wird über den write-Befehl „servoTorX.write(Grad)“ das Servo angesteuert. Zwischen den einzelnen Positionen gibt es eine Pause, damit das Servo genug Zeit hat, die gewünschten Positionen zu erreichen.
tasterTor1status=digitalRead(tasterTor1); //Hier wird der Pin ausgelesen (Befehl:digitalRead). Das Ergebnis wird unter der Variable „tasterstatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert.
if (tasterTor1status == HIGH)//Verarbeitung: Wenn der taster gedrückt ist (Das Spannungssignal ist hoch)
{
servoTor1.write(0); //Position 1 ansteuern mit dem Winkel 0°
delay(3000); //Das Programm stoppt für 3 Sekunden
servoTor1.write(5); //Position 2 ansteuern mit dem Winkel 5°
delay(3000); //Das Programm stoppt für 3 Sekunden
servoTor1.write(10); //Position 3 ansteuern mit dem Winkel 10°
delay(3000);//Das Programm stoppt für 3 Sekunden
servoTor1.write(15); //Position 4 ansteuern mit dem Winkel 15°
delay(3000);//Das Programm stoppt für 3 Sekunden
}
else //...ansonsten...
{
servoTor1.write(5); //Position 1 ansteuern mit dem Winkel 5°
delay(3000); //Das Programm stoppt für 3 Sekunden
servoTor1.write(0); //Position 2 ansteuern mit dem Winkel 0°
delay(3000); //Das Programm stoppt für 3 Sekunden
}
}