iTead Schrittmotor-Shield: Arduino wird heiß

Liebes Forum,

vor kurzem habe ich das iTead dual Stepper Motor Driver Shield gekauft. Leider bin ich auf unvorhergesehenes Verhalten gestoßen, zu dem ihr vielleicht die Ursache oder eine Lösung habt. Vielleicht ist ja auch mein Shield defekt.

Setup 1: Ein Stepper hängt am Y-Ausgang, die einzige Stromquelle ist der USB-Anschluß am Arduino Uno SMD. Der Stepper tut was er soll, nur der Arduino wird in der Nähe der externen Strombuchse (die nicht angeschlossen ist) sehr heiß.

Setup 2: Nach dem Anschließen einer externen Stromversorgung an das Shield (12V, 1500mA max.) und dem Neustart des Arduino beginnt der Stepper Schritte zu verlieren. Der Arduino wird weiterhin heiß. Auch die beiden Chips auf dem Shield werden heiß (normal?)

Setup 3: Der zweite Stepper ist angeschlossen, Schield und Arduino haben nur über USB Strom. Obwohl der zweite Stepper im Programm nicht angesprochen wird, zuckt er ab und zu. Der benutzte Stepper verliert viele Scritte. Die Hitzeprobleme bleiben.

Setup 4: Wie Setup 3, nur mit einer Stromversorgung am Schield. Die Probleme bleiben wir bei 3.

Auch das Hinzuschalten einer zweiten Stromversorgung am Arduino oder nur am Arduino ändern nichts.

Hier das Programm, das ich zum Testen verwendet habe. Die Einstellungen des Shields sind unverändert im Auslieferungszustand (5V für Logik, Vref-Potis sind in Mittelposition, alle Jumper liegen auf High).

Hinweis: Der iTead wird NICHT durch Berührung mit der USB-Buchse des Arduino kurzgeschlossen.

Danke, Stefan.

// ******************************************************
// Micro Robotics
// Test Procedure to test Y channel 
// www.robotics.org.za 
// written by : Frikkie du Toit
// For Stepper Shield ver 1.0
// 
//  To test Y Channel         To test X Channel 
//  STEP_PIN 6                STEP_PIN 2 
//  DIR_PIN 7                 DIR_PIN 3
//  YMS1 8                    YMS1 4
//  YMS2 9                    YMS2 5
// ******************************************************

#define STEP_PIN 6         
#define DIR_PIN 7          
#define YMS1 8             
#define YMS2 9             

void step_mode(byte yms1, byte yms2)
{
  // Set the pins to select the step mode
  
  digitalWrite(YMS1, yms1); // Set pin YMS1 to the parameter given
  digitalWrite(YMS2, yms2); // Set pin YMS2 to the parameter given
}

void step(int steps, float speed)
{
  // Take the amount of steps specified
  // Negative value for opposite direction
  
  byte dir;
  float micro_sec_delay;
  
  if (steps > 0) // If steps are positive
  {
    dir = HIGH; // Set direction
  }
  else // If steps are negative
  {
   dir = LOW; // Set direction 
  }

  steps = abs(steps); // Set steps to absolute value
  digitalWrite(DIR_PIN, dir); // Set the direction pin to dir

  micro_sec_delay = 1 / (speed / 100) * 70; // Calculate delay between  step pin toggles

  for (int i = 0; i < steps; i++)
  {
    // Takes all the steps in the specified direction
    
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(micro_sec_delay); 

    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(micro_sec_delay);
  }
}

void setup()
{
  // Set all the pin modes
  
  pinMode(STEP_PIN, OUTPUT);
  pinMode(DIR_PIN, OUTPUT);
  pinMode(YMS1, OUTPUT);
  pinMode(YMS2, OUTPUT);
} 

void loop()
{ 
  step_mode(LOW, HIGH);
  
  step(400, 25);
  delay(500);
  step(200, 25);
  delay(500);
  step(200, 25);
  delay(500);
  step(200, 25);
  delay(500);
  step(-800, 10);
  delay(500);
}

Schade, die interessanten Sachen stehen nicht da. zB welche Schrittmotore Du verwendest. Mit "alle Jumper liegen auf High" meinst Du die 4 "drive mode setting" Junper? Bitte mach ein paar Fotos von Aufbau.

Ich nehme an das Stepper Shield ist das http://iteadstudio.com/store/index.php?main_page=product_info&products_id=520

1) da ist die 500mA Sicherung. Du bist wahrscheinlich am Limit der 500mA und da die Sicherung nichts anderes als ein PTC mit einer besonderen R/T Kurve ist wird er heiß bevor er auslöst. Die Sicherung ist das gold-braunrote Bauteil wo "500J" draufsteht: http://arduino.cc/en/uploads/Main/ArduinoUnoSmd.jpg

2) da Du nur einen Motor angeschlossen hast ist es komisch, daß beide A3967 heiß werden. Wo hast Du den Motor genau angeschlossen? An eine der grünen Klemmen? Was wird am Arduino heiß?

3) Du verlangst zuviel Strom den der USB-Anschluß nicht liefern kann. Die 5V Spannung bricht zusammen.

Grüße Uwe

Ja, das ist das Shield! Genau die vier Jumper mein ich.

Ich habe diese Stepper verwendet http://www.reichelt.de/Schrittmotoren/TMCM-MOTOR/3/index.html?ACTION=3&GROUPID=3299&ARTICLE=48553&SHOW=1&START=0&OFFSET=16&

Ich bin mir ziemlich sicher, dass ich die Motoren korrekt angeschlossen habe, da sie genau das tun, was sie sollen, sofern nur einer dran hängt und per USB versorgt wird. :-) Ja klar, die hängen an den grünen Schraubklemmen, rechts vonu blau, rot, grün, schwarz, links umgekehrt.

Die Frage wäre dann, wie denn dann die Stromversorgung aussehen soll...

Besten Dank für die Antwort!

Stefan.

Die Daten, die der Verkäufers gibt, sind wirklich dürftig. :astonished: :astonished:

Der Poti stellt den Strom ein, den der A3967 dem Schrittmotor gibt. In Mittelstellung müßten das ca 300mA sein. Damit die Strombegrenzung funktioniert darf der Motor den Strom durch zu hohen Innenwiderstand nicht begrenzen. Daraus ergibt sich auch das Verlieren der Schritte, was nicht ganz stimmt, einige Schritte können nicht angefahren werden da der Strom durch den motor begrenzt wird nicht durch den A3967.

Darum sollte das Shield mit der 4-fachen Nennspannung des Motors gespeist werden. Die "Nennspannung" errechnet sich aus eingestelltem Strom mal Wicklungswiderstand.

Der Stromverbrauch ist eingestellter Strom mal 1,41 (Wurzel aus 2, wegen der Ansteuerung des A3967) mal 2 (2 Motore) also bei 300mA ca 900mA.

Was willst Du mit den Motoren machen?

Grüße Uwe

Vielen Dank schonmal für die Antwort, ich sortier das mal und seh, ob ich das auch umsezten kann...

Aus den Steppern und einem kleinen weiteren Aufbau soll letztlich ein automatisiertes Panoramastativ zum Fotografieren werden. Zum einen macht's ja - wenn man nicht auf solche Probleme stößt - echt Spaß mit dem Arduino, zum anderen ist das Fotografieren eines Panoramas schon immer auch ne zeitaufwändige Sache, die so etwas schneller fehlerfreier :-) und öfter passieren kann/soll. Wenn das erste Foto geschossen ist gibt's dann sicher auch ne Projektwebsite, wo ich alles beschreiben werde.

Hinweis: Den Thread hatte ich ursprünglich auf englisch geschrieben: http://arduino.cc/forum/index.php/topic,111443.0.html

Hier nun ein Foto vom Aufbau (ohne Arduino, ohne Stromversorgung).

Durch das Foto hab ich das Datenblatt des Motors gefunden: http://www.trinamic.com/tmc/media/Downloads/QMot_motors/QSH4218/QSH4218_manual.pdf

Der Motor ist ungeeignet für den Gebrauch den Du machen willst. Er hat einen Nennstrom von 1A und eine Nennspannung von 5,3V, bei 5,3 Ohm pro Wicklung. Du steuerst ihn über einem Driver an der maximal 0,7A liefern kann. Außerdem brauchst Du für die Microschritte bzw Stromsteuerung eine Versorgungsspannung von mindestens ca 15V. Du betreibst den Motor nicht bei seinen Möglichkeiten sondern "verschwendest" mögliche Leistung die er bringen könnte.

Grüße Uwe

Sehr cool, danke für die Antwort!

Das heißt ich brauch andere Motoren oder nen anderen Treiber, wenn ich's richtig verstehe. Oder kann ich die auch auf 50% Leistung betreiben? Wo könnte ich solche Motoren bekommen?

Eine Frage noch: Wie muss ich korrekterweise mit der Stromversorgung umgehen? Arduino und Shield auf 15V oder Arduino auf 5 und Shield auf 15?

Herzlichen Dank schonmal, Stefan.

Nach einer Weile des Experimentierens möchte ich ein kurzes Feedback zu dem Thema (für's Archiv sozusagen) geben:

Letztlich war wohl der Steppertreiber zu schwach für die Motoren. Mit den EasyDriver v4 laufen sie einwandfrei. Angenehmer Nebeneffekt: Das ganze lässt sich auch schöner und kompakter mit einem Arduino Nano auf einer Leiterplatte unterbringen als mit dem Shield.

Vielen Dank für die Unterstützung nochmal!

Das Hitzeproblem kann ich auch dann reproduzieren, wenn gar kein Motor angeschlossen ist.

Sollte man vielleicht weniger Spannung anlegen?

Wie gesagt: Ich hab den iTead-Shield zur Seite gelegt und verwende die EasyDriver, damit werd ich glücklich und der Arduino bleibt schön kühl.

Hallo Arduinianer,

Auch ich benutze den Leonardo mit dem iTead Dual Stepp Motorshield V1.

Wenn ich das Shield mit 12V versorge dann wird der Leonardo heiss - das heisse Teil so glaube ich, ist der Spannungsregler (gleich neben der Stromversorgung des Leonardo). Die Stromversorgung vom Leonardo verwende ich dabei nicht.

Ich meine es hängt irgendwie damit zusammen, dass der Leonardo vom Shield über den PIN VIN mit auch diesen 12V versorgt wird. Ich habe darum diesen PIN mal zur Seite gebogen - so dass ich nun den Leonardo mit USB am PC betreibe - und das Shield mit 12V direkt versorge. Etwas sonderbar ist, dass die PowerLed des Shields bereits leuchtet, wenn nur der Leonardo Spannung erhält - irgendwie nimmt sich scheinbar das Shield vom Leonardo die 5V oder 3.3V ab... Motoren (zumindest die meinen) lassen sich ohne die 12V nicht betreiben.

Mit dieser getrennten Spannungsversorgung läuft damit alles kühl (kein heisser Arduino, kein heisses Shield).

Jetzt aber die Frage1: Darf ich sowohl den Leonardo als auch das Shield aus demselben 12V-Adappter speisen (weil die Schaltung nun in die Produktion soll - und dort kein PC mehr steht...) Habda mal was vonexternem GND`-Problemen gelesen??

Jetzt aber die Frage2: Ist das ein Problem des Leonardos - oder ist da was faul am Shield? (wenn ich den Leonardo mit 12V betreibe bleibt dieser auch kühl - ausser ich versorge damit gleichzeitig auch das Shield über diesen PIN VIN - diesmal in die andere Richtung...)

Freundlicher Gruss Thomas

ps: Nach wie vor sind natürlich die A3967SLBs auf dem Shield heiss, sobald das Shield eingeschaltet ist und die Motoren mit Strom versorgt (damit diese blockiert sind). Weil ich die Motoren nicht zu blockieren brauche (nichts halten muss), habe ich zusätzlich diesen Shield-Mod gemacht http://www.polargraph.co.uk/2012/03/itead-motorshield-in-the-wild/ (Posts von Markbeachten) um damit die Motoren stromlos schalten zu können (habe die Pins einzeln vom Shield getrennt (jeweils dritter PIN vom A3967SLB oben rechts - wenn die Stromversorgung nach Links zeigt...) - so kann ich die Motoren einzeln stromlos schalten...). So bleiben nun auch die A3967SLBs schön kalt (ausser ich treibe die Motoren sehr langsam)

Man muss leider sagen, dass dieses Board absoluter Schrott ist. Die 16 € investiert man lieber in einen echten Easydriver.
Das Boardschema und die tatsächliche Bestückung des Boards weichen gravierend von einander ab. Daraus resultiert, dass man durch die Trimpotis die Vref nicht einstellen kann.
Siehe http://www.mikrocontroller.net/topic/263935 .

Finger davon lassen !! Verursacht nur Kopfschmerzen bei der Fehlersuche und belastet den Geldbeutel.
Jemand der sich an SMD-Löten traut könnte das Ding noch reparieren. Da lohnt sich aber der ganze Zeitaufwand nicht.

Fazit :
Itead Dual Step Motor Shield ist nicht ausgereifter Elektroschrott. Seit 2 Jahren auf dem Markt und der Hersteller hat immer noch nicht auf den Konstruktionsfehler reagiert.