Motorshield mit 2 Schrittmotoren - wie versorgen und Laptop schützen?

Guten Abend,

ich bin neu hier im Forum, und habe direkt mal eine Frage an euch :wink:
Zur Info - ich habe vor einer Woche mit Arduino angefangen und habe vorher auch noch nie viel mit solchen Dingen zu tun gehabt, habe also zur Zeit noch keine Ahnung was ich generell beachten muss.

Mein Ziel ist es zwei Schrittmotoren von Adafruit mit einem SainSmart motor shield und Arduino Uno R3 zu betreiben.

Shield: http://www.amazon.de/gp/product/B0081JPBA6?psc=1&redirect=true&ref_=oh_aui_detailpage_o00_s00
Schrittmotor: http://www.amazon.de/gp/product/B00EYIFW70?psc=1&redirect=true&ref_=oh_aui_detailpage_o01_s00

Jetzt zu meinen Fragen:

  • Was genau muss ich beachten, um meinen Laptop und seine USB-Buchsen zu schützen?
  • Das Arduino kann ein Netzteil nutzen, und das Shield hat anscheinend auch Strombuchsen. Reicht es ein Netzteil an das Arduino anzuschließen, um beide Boards zu versorgen, oder benötigt jedes seine eigene Stromversorgung?
  • Welches Netzteil würdet ihr mir empfehlen?

Ich hoffe ihr könnt mir irgendwie helfen :wink:
Schonmal vielen Dank und liebe Grüße,
Alvaro

Die Motore kannst Du nicht duch die USB-Buchse des Computers versorgen.
Ich weiß nicht wieso das Shield nur für 10V beschrieben ist.
Darum brauchen der Motor und das Motor-Board 9V und ca 1,2A.
Du kannst das Motorshield mit 9V versorgen und den Arduino über USB oder das Shield und den Motor durch das 9V Netzteil und über den PWR Jumper auch den Arduino mit den 9V.

Grüße Uwe

hmmm, erstmal benötigt dein Motor mehr Spannung (12V) als das Shield liefern kann (10V).
Wie das Shield arbeitet, weiß ich nicht genau, aber oft werden Stepper deutlich mehr Spannung zur Verfügung gestellt, als bei denen drauf steht. Man (also der Treiber) muss dann dafür sorgen, dass der Strom begrenzt wird, weil die Motoren sonst heiß laufen.

Bei zuwenig Spannung als der Motor benötigt, kann er ev. seine Schritte nicht mehr richtig einstellen oder dreht gar nicht.

Wieso nur 10V? Der L293D kann eigentlich 36V und die Kondenstoren werden maximal 16V oder 25V können. Laut der Adafruit Seite geht es bis 25V:

Man (also der Treiber) muss dann dafür sorgen, dass der Strom begrenzt wird, weil die Motoren sonst heiß laufen.

Der L293 hat keine Strom-Begrenzung, sondern schaltet sich bei Überhitzung ab

Es gibt aber inzwischen ein besseres Shield:

Hat einen besseren Treiber und wird über I2C gesteuert

phthalo:
hmmm, erstmal benötigt dein Motor mehr Spannung (12V) als das Shield liefern kann (10V).
Wie das Shield arbeitet, weiß ich nicht genau, aber oft werden Stepper deutlich mehr Spannung zur Verfügung gestellt, als bei denen drauf steht. Man (also der Treiber) muss dann dafür sorgen, dass der Strom begrenzt wird, weil die Motoren sonst heiß laufen.

Bei zuwenig Spannung als der Motor benötigt, kann er ev. seine Schritte nicht mehr richtig einstellen oder dreht gar nicht.

Der L293D ist ein Spannungstreiber. Der Motor muß mit Nennspannung betrieben werden. Wenn man den Motor mit weniger Spannnung betreibt hat er weniger Dehmoment (Kraft). Jetzt kommt es auf die Anwendung an ob das ein Problem ist oder nicht.

@Guppinator Was willst Du mit den Motoren machen?

@Serenifly Ja, ich weiß daß der L293D mehr als 10V vertägt, darum verstehe ich nicht wieso dieses Limit in der Beschreibung steht.

Grüße Uwe

Das ganze verwirrt mich ein wenig :smiley: Also ist es bei meinem Shield doch möglich ohne Bedenken ein 12V Netzteil anzuschließen mit 1,2A wenn ich das richtig verstanden habe?

@uwefed ein Handy soll horizontal und vertikal in bestimmten Winkeln gedreht werden. Als Beispiel:
10° Abschnitte horizontal bis 360° erreicht sind. Dann 45° vertikal bewegen und dann wieder in 10° Winkeln horizontal bis 360°. Sind jetzt fiktionale Werte, aber das habe ich so in etwa vor.

Sollte eigentlich gehen. Dein Shield ist zwar von Sainsmart, aber das ist das Design von Adafruit.

Hier ist es auch erklärt:

If you would like to have the Arduino powered off of USB and the motors powered off of a DC power supply, plug in the USB cable. Then connect the motor supply to the PWR_EXT block on the shield. Do not place the jumper on the shield.

Der Jumper verbindet die Versorgungsspannungs-Leitung des Shields mit Vin vom Arduino. Also unbedingt entfernen wenn man das extern versorgt und USB oder ein Netzteil am Arduino angeschlossen ist. Sonst liegt die Motorspannung am Eingang des Spannungsreglers.

Wie kann man denn am besten testen, ob das Shield die 12V und 1,2A verträgt ohne die Funktion des Shields aufs Spiel zu setzen? Oder muss ich einfach hoffen, dass es funktioniert? :smiley:
Edit: Habe hier gerade noch ein Netzteil mit 12V und 1,5A gefunden, traue mich aber noch nicht das auszuprobieren :smiley:

Serenifly:
Der Jumper verbindet die Versorgungsspannungs-Leitung des Shields mit Vin vom Arduino. Also unbedingt entfernen wenn man das extern versorgt und USB oder ein Netzteil am Arduino angeschlossen ist. Sonst liegt die Motorspannung am Eingang des Spannungsreglers.

Haben die meisten Arduino's, wie auch der Arduino Uno R3, nicht eine automatische Versorgungspannungsumschaltung die genau in diesem Fall Vin vorziehen, wenn sie größe als 6,6V ist??
Also ein vorgesehener Fall in dem die Versorgungsspannung, wenn groß genug, vorgezogen wird.

Guppinator:
Wie kann man denn am besten testen, ob das Shield die 12V und 1,2A verträgt ohne die Funktion des Shields aufs Spiel zu setzen? Oder muss ich einfach hoffen, dass es funktioniert? :smiley:
Edit: Habe hier gerade noch ein Netzteil mit 12V und 1,5A gefunden, traue mich aber noch nicht das auszuprobieren :smiley:

Der einzige Grund wieso etwas auf dem Motorshield kaputtgehen könnte ist, daß die verwendeten Elektrolytkondensatoren die Spannung nicht vertragen. Auf den Fotos kann ich nicht erkennen für welche Spannung diese bemessen sind. Für welche Spannung sind diese?

Grüße Uwe

uwefed:
Haben die meisten Arduino's, wie auch der Arduino Uno R3, nicht eine automatische Versorgungspannungsumschaltung die genau in diesem Fall Vin vorziehen, wenn sie größe als 6,6V ist??
Also ein vorgesehener Fall in dem die Versorgungsspannung, wenn groß genug, vorgezogen wird.
Der einzige Grund wieso etwas auf dem Motorshield kaputtgehen könnte ist, daß die verwendeten Elektrolytkondensatoren die Spannung nicht vertragen. Auf den Fotos kann ich nicht erkennen für welche Spannung diese bemessen sind. Für welche Spannung sind diese?

Grüße Uwe

Die schwarzen zylindrischen Elemente auf der Platine? Auf denen ist 16V 100uF aufgedruckt.
LG

Die schwarzen zylindrischen Elemente auf der Platine? Auf denen ist 16V 100uF aufgedruckt.

Dann müßte das Board auch 12V vertragen.
Grüße Uwe

So, ich habe das ganze gerade einmal ausprobiert. Mein Vorgehen:

  • Kabelpaare des Motors durch aneinander halten getestet
  • Kabelpaare an M3 & M4 des Shields angeschlossen
  • Arduino mit aufgestecktem Shield und angeschlossenem Motor ohne Jumper an den Laptop gesteckt und den Upload gestartet.
  • USB-Kabel entfernt und ein 12V 1,5A Netzteil an die Energieversorgung des Shields angeschlossen.
  • Jumper aufgesteckt

Alle LED's fangen an zu leuchten, sowohl vom Shield als auch vom Arduino, der Motor ist schwer per Hand zu drehen, nur mehr passiert auch nicht - der Motor bewegt sich kein Stück.
Weiß jemand woran das liegen kann?

Diesen Code habe ich auf das Arduino gespielt:

// Adafruit Motor shield library
// copyright Adafruit Industries LLC, 2009
// this code is public domain, enjoy!

#include <AFMotor.h>

// to motor port #2 (M3 and M4)
AF_Stepper motor(200, 2);

void setup() {
  Serial.begin(9600); 
  Serial.println("Stepper test!");

  motor.setSpeed(10);  // 10 rpm   
}

void loop() {
  Serial.println("Single coil steps");
  motor.step(100, FORWARD, SINGLE); 
  motor.step(100, BACKWARD, SINGLE);  
}

Liebe Grüße,
Alvaro

Also evtl. lag es daran, dass das Shield nicht korrekt aufgesetzt war :wink: Es funktionierte ohne Probleme, nachdem ich die beiden Platten einmal richtig fest zusammen gedrückt habe :smiley:
Vielen Dank für die Tolle Hilfe hier!

Liebe Grüße,
Alvaro

Also evtl. lag es daran, dass das Shield nicht korrekt aufgesetzt war

Solche Fehler kann mann leider nicht voraussehen.
Grüße Uwe