Servos an Arduino R3 lässt diesen durchbrennen

Genutzt wird der folgende Servo Servo Mit Strom wird dieser von einem extra Netzteil versorgt. Testweise wurde nun mit einem einfachen Programm die PWM Steuerung getestet. Hierzu wurden nur jeweils ein gnd und der pwm pin angeschlossen. Am Servo selbst gibt es die Möglichkeiten 1ms oder 2ms pwm zu nutzen(kein Plan was das genau bedeutet). In der Einstellung 1ms passierte gar nichts. In der Einstellung 2ms bewegte sich der Servo, allerdings überhitzte der Prozessor sofort und begann zu rauchen (danach defekt, wird vom PC nicht mehr erkannt die interne LED leuchtet aber noch wenn Strom angeschlossen ist)

int servo1 = 100;
int servo2 = 151;
int servpin1 = 3;
int servpin2 = 5;


// the setup routine runs once when you press reset:
void setup() {
  
  pinMode(servpin1, OUTPUT);
  pinMode(servpin2, OUTPUT);                
 analogWrite(servpin1, servo1);
 analogWrite(servpin2, servo2);

}

void loop() {
     
}

Was ist Grund für dieses Problem und wie lässt es sich lösen? Vielen Dank für eure Mithilfe, falls weiter Informationen nötig sind einfach nachfragen Grüße aus dem Schwabenland

Ein Schaltbild deiner Schaltung wäre hier hilfreich

Wenn du aber versucht hast, den PWM Pin direkt an den Arduino anzuschliessen, wird das den im Mikrokontroller integrierten Fehlererkennungsrauch ausgelöst haben... Oder anders gesagt, dein Arduino ist hinüber.

Um das anzusteuern solltest du einen Transistor mit entsprechender Zusatzbeschaltung verwenden.

Grüsse Peter

Das wird wohl das Problem sein, denn die PWM pins 3 und 5 wurden direkt an den Servo angeschlossen.

Was genau müsste man da schalten, bzw wo kann ich das nachlesen. Habe bisher nur. in der Schule mit Modellbauservos gearbeitet und bei denen wurde uns dass so gezeigt, dass man das direkt angeschlossen hat.

Der grosse Unterschied zu Modellbauservos ist, dass diese auch mit 5V betrieben werden können.
Dein Servo läuft aber mit 12-24V, je nach Netzteil…

Im Anhang der erste Treffer von Google, wie man es z.B. machen kann

servo.JPG

Also hier läuft das Servo ,soweit ich die Kabel erkennen kann, direkt am Arduino: https://www.youtube.com/watch?v=vJMOG2G5XQw

Ich vermute einen Fehler im Anschluss wie Verwechslung von Pins. Du solltest einen Schaltplan und wenn möglich ein Foto deines Aufbaus zeigen. Die Ansteuerspannung ist laut Aliexpress 5V. Von daher sollte es mit dem Arduino keine Probleme geben. Ein einfacher Kurzschluss reicht nicht um dem 328 Rauchwölkchen zu entlocken. Da muss schon die hohe Spannung des Zusatznetzteils den Arduino grillen.

Die Pins haben wir eigentlich schon richtig angeschlossen (sind ja im Grunde nur 2 Kabel) Haben es erst mit einem teensy 3.6 getestet alles lief nur waren es halt nur 3.3V und daher lief der Servo nicht die 300 Grad. Danach zweimal mit einem r3 und beide brannten durch und die Schaltung haben wir da auch mehrfach geprüft (Einziges ist wir haben zwei Servos gleichzeitig betrieben und beide an den selben gnd angeschlossen, ist das ein Problem?)

someone83: Ein Schaltbild deiner Schaltung wäre hier hilfreich

Wenn du aber versucht hast, den PWM Pin direkt an den Arduino anzuschliessen, wird das den im Mikrokontroller integrierten Fehlererkennungsrauch ausgelöst haben... Oder anders gesagt, dein Arduino ist hinüber.

Um das anzusteuern solltest du einen Transistor mit entsprechender Zusatzbeschaltung verwenden.

Grüsse Peter

Falsch. Die Ansteuerung erfolgt mit 5V PWM Signal. Das macht den Arduino nicht kaputt. Die Versorgungsspannung des Servos ist eine andere Sache. Grüße Uwe

someone83: Der grosse Unterschied zu Modellbauservos ist, dass diese auch mit 5V betrieben werden können. Dein Servo läuft aber mit 12-24V, je nach Netzteil...

Im Anhang der erste Treffer von Google, wie man es z.B. machen kann

So funktioniert der Transistor nicht

Grüße Uwe

max_17_98: Die Pins haben wir eigentlich schon richtig angeschlossen (sind ja im Grunde nur 2 Kabel) Haben es erst mit einem teensy 3.6 getestet alles lief nur waren es halt nur 3.3V und daher lief der Servo nicht die 300 Grad. Danach zweimal mit einem r3 und beide brannten durch und die Schaltung haben wir da auch mehrfach geprüft (Einziges ist wir haben zwei Servos gleichzeitig betrieben und beide an den selben gnd angeschlossen, ist das ein Problem?)

Habt ihr den GND vom Netzteil über den Arduino laufen lassen? Dann kann der Arduino kaputtgehen.

Das Netzteil für die Servo muß an den Servo angeschlossen werden und die GND vom Servo mit Arduino verbunden werden.

Grüße Uwe

Also wir haben ein Netzteil eben an Plus/Minus des Servos angeschlossen und dann zur Steuerung jeweils den einen Pin auf den selben gnd des Arduinos gesteckt und den anderen für das Signal eben auf die pwm Pins 3 und 5. Die Stromversorgung des Arduinos lief über ein Druckerkabel und ein Netzteil, dass 5V 2A liefert.
Ist das ein Problem? Falls ja wie müsste man es dann machen?

Danke für eure vielen Antworten
Grüße
Max

max_17_98: Also wir haben ein Netzteil eben an Plus/Minus des Servos angeschlossen und dann zur Steuerung jeweils den einen Pin auf den selben gnd des Arduinos gesteckt und den anderen für das Signal eben auf die pwm Pins 3 und 5. Die Stromversorgung des Arduinos lief über ein Druckerkabel und ein Netzteil, dass 5V 2A liefert. Ist das ein Problem? Falls ja wie müsste man es dann machen?

Danke für eure vielen Antworten Grüße Max

Wenn Du den Minuspol der Servospannungsversorgung an GND Arduino gesteckt hast, ist es richtig wie Du beschrieben hast.

Wenn Du den Pluspol genommen hast, erklährt das die Schäden.

Grüße Uwe

uwefed:

So funktioniert der Transistor nicht

Grüße Uwe

Nachtrag Der Transistor kann so nie richtig Durchschalten. Der Transistor leitet wenn die Spannung an der Basis um 0,7V höher ist als der Emittor. Das ist der Fall wenn kein Strom durch die Last (Servo) fließt alo keine Spannung an der Basis anliegt. Sobald der Transistor angesteuert wird und an der Last ca 4,3V ( 5V - 0,7V) anliegt sperrt der Transitor wieder trotz HIGH an der Basis.

Die Folge ist daß die Last nur 4,3V bekommt und der Rest der Leistung am Transistor verbraten werden wodurch dieser den Hitzetod stirbt.

Grüße Uwe

Ich habe die Servosspannungsversorgung gar nicht an den Arduino angeschlossen sondern nur den Arduino an die Steuerpins und da natürlich immer den pwm Pin an den steuersignalpin und gnd eben an gnd Ist die Stromversorgungs des Arduinos dann das Problem?(also dass die 2A liefert und der Arduino ja nur Ca 0,5A benötigt) Auch wenn das ja eigentlich vom Arduino geregelt sein müsste oder?

Grüße max

max_17_98: Ich habe die Servosspannungsversorgung gar nicht an den Arduino angeschlossen sondern nur den Arduino an die Steuerpins und da natürlich immer den pwm Pin an den steuersignalpin und gnd eben an gnd Ist die Stromversorgungs des Arduinos dann das Problem?(also dass die 2A liefert und der Arduino ja nur Ca 0,5A benötigt)

Das ist gar kein Problem. Der nimmt sich nur, was er braucht.

Der Teemsy ist gegenüber Schaltungsfehlern um Längen empfindlicher als ein Uno. Wenn es bei ihm funktioniert hat und der Uno in Rauch aufgeht, kann nur ein Fehler in der Verdrahtung vorgelegen haben oder das Servomodul ist defekt, so dass es eine hohe Spannung auf den Arduino-Pin gibt.

Miss mal die Spannung an dem Servo-Pin gegenüber GND.

Von dem her, was du schreibst hast du alles richtig gemacht. Ohne zusätzliche Informationen wie Foto vom Aufbau oder kompletten Schaltplan, können wir nicht viel sagen.

Hm habe das mal gemessen die Idee war gut Da liegen schonmal ca 5,8V statt 5V an. Das wäre ja eine Erklärung da der Uno nur 5V tolerant ist oder? Aber der teensy 3.6 müsste dann doch viel schneller gegrillt werden der hat ja nur Pins für 3,3 V, oder verstehe ich das falsch?

noch eine allgemeine Frage habe gerade gelesen dass eine externe Spannungsquelle für den R3 7-12V benötigt, aber USB ist doch immer nur 5V oder? Ist das nur wenn man den über Vin und gnd anschließt?

Gleichzeitig beim Teensy 3.6 ist die Angabe 3,3-6V

Angeschlossen habe ich immer über micro USB/ Druckerkabel daher die Frage ob die Angabe da auch gilt, denn betrieben wurden ja beide dann mit 5V

und sollte die spätere Stromversorgung dann besser über den Anschluss den man zum Programmieren nutzt oder vin laufen?

max_17_98: Hm habe das mal gemessen die Idee war gut Da liegen schonmal ca 5,8V statt 5V an. Das wäre ja eine Erklärung da der Uno nur 5V tolerant ist oder?

Die Spannung müsste bei Belastung sofort einbrechen. Wenn nicht, wäre das Servomodul defekt und könnte sie einen Arduino grillen. Schließe einen Widerstand (z.B. 1kOhm) parallel zum Pin und GND an. Ist die Spannung immer noch 5,8V?

Um weitere Zerstörung zu vermeiden, solltest du Optokoppler verwenden. Damit wären Servo und Arduino galvanisch getrennt. Bei einem Fehler geht maximal der Koppler für wenige Cent drauf.

Der Arduino verlangt bei USB-Versorgung 5V. Über 5,5V würden ihn grillen. Bei Vin gibt es einen zusätzlichen Spannungsregler, der die Spannung auf die 5V reduziert.

Verstehe das nicht genau. Du meinst also einfach einen kleinen Widerstand zwischen gnd und den pin am Servo und dann wieder Spannung zwischen gnd und pin messen?
Wenn du es so meinst dann gibt es auf jeden Fall einen Spannungseinbruch

Mir ist glaube ich Gerade der Grund aufgefallen Die Servos sind auf einem Elektromobil,das heißt 27V statt 24V (die Platinen gehen von 12-30V) Wenn ich nun rechne 27V/24V*5V dann komme ich ca auf 5,6V was dann wiederum dem gemessenen sehr nahe liegt.

Die Frage ist wenn ich nun per pwm steuern will dann liegt mein Steuersingal ja quasi immer zwischen 0 und 5V, aber zumindest ANfangs müsste das ja auch um diesen Faktor 27/24 erhöht werden. Wenn die Autobatterie nun aber leerer wird sinkt die Spannung ja ab, also wie kann man das machen, dass sich das Steuersignal da mit verändert?

Habe das gerade mit einem 28V Netzteil getestet und tatsächlich liegt dann die Spannung zwischen den beiden pins bei 6V

max_17_98:
Verstehe das nicht genau. Du meinst also einfach einen kleinen Widerstand zwischen gnd und den pin am Servo und dann wieder Spannung zwischen gnd und pin messen?
Wenn du es so meinst dann gibt es auf jeden Fall einen Spannungseinbruch

Das meinte ich. Dann dürfte das auch nicht für den Defekt verantwortlich sein. Der Arduino kann den Pin runterziehen.

Ihr habt nicht zufällig doch die +Leitung des Servosteueranschluss erwischt?