[solved]Servo dreht sich von alleine zurück

Hallo,

wenn ich diesen Code auf mein Arduino lade:

#include <Servo.h> 

int ButtonServo1 = 6;
int ButtonServo1state = 0;

Servo myservo;   
 
void setup() 
{ 
  pinMode(ButtonServo1, INPUT);
  myservo.attach(10); 
} 
 void loop() 
{ 
  ButtonServo1state = digitalRead(ButtonServo1);
  if (ButtonServo1state == HIGH) {
        for(int pos2 = 0; pos2 <= 80; pos2 ++)
        {                                  
        myservo.write(pos2);               
        delay(15);
      }
   }
}

dreht sich der Servo bei Button druck schnell ein Paar Grad in eine Richtung und dann langsam wieder zurück. Den Code habe ich immer auf ein UNO geladen. Erst dachte ich, es liegt am Arduino Uno dann habe ich es auf mein Leonardo geladen, mit dem Gleichen Ergebnis. Seit dem der Code auf dem Leonardo ist, wird der Controller auf dem Leonardo warm beim anstecken an den Usb-Port, auch ohne angeschlossene Hardware. So etwa 30° bei 21° raum Temperatur.

Vielleicht fällt jemandem ja der Fehler im Code auf?

Vielen dank für die Hilfe und liebe Grüße,

Valli

Hallo!

Wie ist denn dein Taster angeschlossen? Bei deinem Code müsste an D6 ein Pulldown-Widerstand dran sein und der Taster der nach 5V tastet. Falls das nicht der Fall ist hängt D6 in der Luft und an D6 ergeben sich, falls der Taster gerade nicht gedrückt ist, wohl zufällige Werte...

Wie wird denn der Servo mit Strom versorgt?
Ihn direkt über das Arduino-Board mit Strom zu versorgen ist keine sehr gute Idee:

  • ein Servo braucht viel Strom (vielleicht mehr als das Arduino-Board liefern kann)
  • ein Servo erzeugt Störungen

Eine direkte Versorgung des Servos durch das Arduino-Board funktioniert höhstens zu Testzwecken, wenn der Servo nicht belastet wird (nichts, ausser sich selbst bewegt).

Gruß
Udo

Hallo,

der Button wird mit einem 10k Ohm widerstand betrieben.
Der servo bekommt die Spannung von dem +5V Ausgang.
Ich habe das Problem mit folgenden Servos: Modelcraft RS-2, Modelcraft RS2 MG/BB und Modelcraft VSD-5E-HS. Also allen meinen Servos.

Gruß,

Valli

Ich gehe mal stark davon aus, das du einen Reset verursachst, in dem du dein Arduino Board stromtechnisch absolut überforderst. Schließe den Servo an eine Alternative Spannungsversorgung an. Dann GND mit GND verbinden und der Digital Pin des Servos mit dem des Arduino verbinden.

Gleiches Ergebnis, mit externer Stromversorgung :frowning:

Ist dein Taster so angeschlossen (siehe Bild)?

Taster_mit_Pulldown.jpg

Ja ich habe den Button so verdrahtet.

Hallo,

ich habe nocheinmal nachgedacht und dann ist mir aufgefallen, dass der Servo ja nicht bei 90 von null anfangen kann, deshalb hat er sich erst auf Null gestellt und dann auf 90.
Vielen lieben dank, manchmal muss man erst länger nachdenken, bevor einem so etwas einfällt.

Gruß,

Valli