Antreiben eines Schrittmotors über ein Beast-Modul

Hallo Freunde,

Da ich zu diesem Thema hier im Forum und durch Google nichts nutzvolles gefunden habe stelle ich meine Frage hier im Forum.

Im Rahmen meiner Diplomarbeit soll ich eine Pick-and-Place-Einheit auf meine Verwendung umbaun. Dazu soll ich nur 1 Achse in Bewegung setzen. Diese lineare Achse wird durch einen bipolaren Schrittmotor siehe hier http://www.maschinen-werkzeuge.com/sanyo-denki-103h71261740-p-177.html betrieben.

Zwischen dem Schrittmotor und der derzeitigen CNC-Steuereinheit (die ich durch einen Arduino zu ersetzen versuche) ist eine Beast Hochleistungsendstufe für Schrittmotoren angelegt. Produktbeschreibung: http://benezan-electronics.de/manuals/Beast1D-Installation.pdf

Dieses Beast-Modul gilt es per RJ45 (Arduino EthernetShield) anzusteuern.

Soweit ich das Installationshandbuch richtig verstanden habe kann man den Motor über die einzelnen RJ45 Ethernet-Adern mit digitalem Signal ansteuern.

Falls Sie kein Breakoutboard mit kompatiblen RJ45-Buchsen benutzen, können Sie die Endstufe wie folgt anschließen: •Alle negativen Eingänge werden auf Masse gelegt und die positiven Eingänge mit einem TTL- oder CMOS-Signal angesteuert •Alle positiven Eingänge werden mit +5V oder +3,3V verbunden und die negativen Eingänge mit einem low-aktiven Treiber (oder open Collector) angesteuert. •Positive und negative Eingänge werden mit komplementären Treibern (RS422) angesteuert

Jedoch konnte ich nicht herausfinden ob man und wie man über die einzelnen Adern per Arduino EthernetShield Signale schicken kann. Muss man das Kabel zerlegen und die einzelnen Adern jeweils auf die Arduino-Pins setzen?

Falls ihr mir bei diesem Problem weiterhelfen könntet oder eine Alternative anbieten könntet wäre ich sehr erfreut.

MfG, raverdusch

Das hört sich alles andere als nach Ethernet an. Hier wird scheinbar lediglich die RJ45 Buchse verwendet, um nicht unnötigt etwas einzeln aufzulegen.

Das Arduino Ethernet Shield hat hierbei ganrichts mit zu tun. Einzelne Adern werden auf Arduino Pins gesetzt. Am besten kannst du dir eine RJ45 Buchse auf ein Shield löten und von da aus weiterverdrahten/löten.

Alternativ kannst du auch sowas basteln http://skpang.co.uk/catalog/images/sparkfun/RJ45-Breakout.jpg Kommt dann ensprechend einfach ein 8poliger Platinenstecker dran.

Gruß Stefan

Dem ist nur wenig hinzuzufügen, da schon umfassend beantwortet. RJ45-Buchsen haben viele Elektronik-Versandhändler im Sortiment, bei www.exp-tech.de findest du auch die bereits verlinkten Platinen:

Platine: http://www.exp-tech.de/Shields/Sonstige/product-1734.html Buchse: http://www.exp-tech.de/Zubehoer/Steckverbinder/RJ45-Ethernet-MagJack-Compatible.html

Aber aufpassen, es gibt dort auch ein komplettes Set, hier werden aber scheinbar nicht alle Leitungen herausgeführt! (Link)

Danke erstmal für die beiden raschen Antworten.

Mir ist jedoch nicht bewusst wie man z.B. die Geschwindigkeit mit einem digitalen Signal einstellen soll.

Wäre die Realisierung mittels Arduino Motorshield einfacher?

MfG, raverdusch

Ist doch im Datenblatt ganz gut erklärt.

Datenblatt: Das Schrittsignal reagiert auf die positive Flanke, d.h. wenn Pin 3 positiv gegenüber Pin 6 wird.

Dort wird auf die steigende Flanke an Pin 3 reagiert (Pin 6 liegt auf Masse), je öfter du pro Sekunde steigende Flanken produzierst, desto schneller dreht der Motor.

Also ein simpler delay() Befehl zwischen High und Low in einer Schleife?

Zum Testen sei dir ein delay() gestattet. ;) Dass das keine gute Lösung ist, wurde hier im Forum schon oft erläutert. Schau dir mal das mitgelieferte Beispiel BlinkWithoutDelay.ino an.

Ah ok danke für den Hinweis. Hab nicht gewusst, dass die delay-funktion so einen Nachteil hat. Bin noch ein Neuling in der Arduino-Szene. Hätt mich sicher viel Zeit gekostet diesen Fehler eingenständig zu finden. ^^

Erneut Hallo!

Das Antreiben des Schrittmotors per Arduino->Beast-Endstufe hat super geklappt. Es gelang mir sogar eine Steuerung mit LCD-Shield dafür zu kreieren. Aber jetzt stehe ich wieder in einer Sackgasse bezüglich meines Projektes. Da ich im Arduino-Forum und in der Google-Suche keine Hilfe fand, wende ich mich jetzt selbst ans Forum. Um nicht ein weiteres Thema zu diesem Projekt zu öffnen, setze ich meine Hilfesuche in diesem hier fort.

Ich besitze einen Kraftmesssensor. Wenn auf den Sensor ein Mindestgewicht von 15kg wirkt, soll der Arduino den Schrittmotor in Bewegung setzten. Vom Sensor maß ich mit Hilfe eines Multimeters einen Signalbereich von 0,1mV bis 10mV, linear zu der angewandten Kraft. Ich bezweifelte jedoch dass der Arduino solch niedrige Spannungen messen kann. Deshalb benutzte ich einen OPV um dieses Signal 100fach zu verstärken. Siehe Bild: http://upload.wikimedia.org/wikipedia/commons/f/ff/Noninverting_Amplifier.svg

Jedoch gelang es mir nicht brauchbare Werte per analogRead() zu bekommen. Vor und nach der Verstärkung schwankte der gelesene Wert ohne sinnvollem Muster zwischen 0-1023. Meiner Befürchtung nach weiß ich lediglich nicht, wie ich den OPV richtig an den Arduino schließt.

Bitte um Hilfe, Danke im voraus.

mfg, raverdusch.

Welchen Operationsverstärker hast du denn genommen? Hast du ein Foto vom Aufbau? In vielen Schaltplänen, unter anderem auch in dem verlinkten Beispiel (http://upload.wikimedia.org/wikipedia/commons/f/ff/Noninverting_Amplifier.svg) wird aus Gründen der Übersichtlichkeit weder die Versorgungsspannung noch die Masseverbindung des OpAmp dargestellt..

Ich benutze einen Rail to Rail OPV:

Zur Zeit beziehen wir die Versorgerspannung (+15V, , -15V) von einen Elektro-Tisch.

habe ich dabei an die Masse des selbstgeschaltenen nichtinvertierenden Verstärker geschlossen.

Falls noch mehrere Daten benötigt werden, hier noch weiter Links:

OPV: http://www.conrad.at/ce/de/product/151944/OperationsverstaerkerStandard-Linear-Technology-LT1491CN-Gehaeuseart-DIP-14-Ausfuehrung-4fach-Micropower-Rail-to-Rail-OP?ref=searchDetail

Datenblatt: http://www.produktinfo.conrad.com/datenblaetter/150000-174999/151944-da-01-en-IC_LT_1491_CN_LTC.pdf

Danke im voraus, mfg

Da ihr ja keine negativen Spannungen braucht, spricht auch nichts dagegen den OpAmp ohne negative Spannung zu nutzen. Ich würde Pin 4 auf 5V vom Arduino legen, Pin 11 dann auf Masse des Arduinos. Pin 1 des OpAmps auf den analogen Arduino-Eingang, Pin 2 und 3 als nichtinvertierender Verstärker für dein Signal.

Danke vielmals für die ausführliche Beschreibung. Hat super geklappt :).

Ich weiss nicht ob ich mit dieser elektrotechnischen Frage jetzt falsch bin.

Das Auslesen des verstärkten Sensors war erfolgreich. Bei den Tests hat der Sensor seine Versorgerspannung jedoch von einem Elektrotisch bezogen siehe: (Gemessene 12V, 1A, DC)

Da der Elektrotisch nicht sehr mobil ist habe ich mir ein Netzteil beschaffen siehe: (Gemessene 12V, 1A, DC)

Mit Versorgung durch Netzteil kommen vollkommen verdrehte Werte beim Auslesen per Arduino raus. Sehr hohe Schwankungen.

Wo kann der Fehler liegen ?

Danke im voraus, mfg raverdusch