Guten Morgen zusammen,
wie angekündigt hier das erste Ergebnis meines Experiments mit Arduino und Lego.
Ich habe dazu bei fritzing.org mir das Arduino Mega bestellt.
Thomas52xxx , Lok24 , gefällt das
Das Servo liefert keine Positionswerte zurück. Es hält die vorgegebenen Position, so lange es den passenden (PWM)Wert geliefert bekommt, auch wenn es von außen belastet wird. Ist das Signal weg, aber das Servo wird noch mit Spannung versorgt, kommt es in einen undefinierten Zustand. Was dann passiert, kommt aufs Servo an:
Manche haben ein Failsave eingebaut und fahren dann in eine vorgegebene, oder programmierbare Position, das ist aber eine Minderheit und eigentlich nur bei hochpreisigen Digitalservos zu finden.
Bei den meisten 08/15 Modellen passiert meist nichts, sie lassen sich dann aber bei Belastung verstellen, da sie ja nicht mehr wissen, welche Position sie halten sollen. Es gibt aber auch welche, die dann unkontrolliert herum zucken oder einfach in eine Endposition fahren. Bei diesen wird der Motor aber so stark belastet, daß er das nicht sehr lange mitmachen wird.
Du meinst sicher ein Relais mit Wechselkontakt, oder? Damit könnte man zwar, mit nur einem Digitalausgang, die Drehrichtung wechseln, es fehlt aber noch eine Abschaltung der Spannung bei erreichen der Endposition. Dazu wären dann wenigstens noch zwei Endschalter an der Weiche notwendig, andernfalls würde der Motor ständig unter Spannung stehen und irgenwann durch brennen.
Danke Werner, das werde ich mir auf jeden Fall mal anschauen und ausprobieren.
Ich glaube Spannung ist da richtiger und so ist es, ich kann einen Wert zwischen 0 und 255 für das PWM definieren und habe dort 100 gewählt.
Wie weit ich das kombieren will weiss ich noch nicht. Aber im ersten Schritt reicht die Weichensteuerung. Sofern keine Abhängigkeiten bestehen geht das mit den Einzellösungen. Allerdings interessiert mich schon wie man mehrere Arduino verbinden kann.
Lok24
11.01.2015, 18:24
Als Antwort auf den Beitrag von bernd-das-brot
Editiert von
Lok24
11.01.2015, 18:29
Hallo,
irgendwie verstehe ich das ganze Problem(?) nicht.
Ich würde immer alle Motoren seriell schalten.
d.h. ich drücke in 1sec 5 Tasten, die werden im Programm in ein Array geschrieben und dann nacheinander in 10sec (2 pro Weiche) abgearbeitet.
Und zur Anzahl Motoren: ich kann doch (z.B. mit externen Bauteilen) jeden Motor einzeln mit Strom versorgen.
Mit anderen Worten: ich brauche zwei Ausgänge für Rechts-Linkslauf .
Mit 8 weiteren Ausgängen kann ich bestimmen, welcher von 256 Motoren damit laufen soll.
Grüße
Werner
Hallo,
so wie ich es lese jeder Port(!) max 40mA, da fehlt irgendwo eine Leistungsendstufe, oder?
Du betreibst den Motor nicht etwa direkt an den IC-Ausgängen? *haaresträub*
Grüße
Werner
Hallo Werner,
40mA pro Ausgang beim Arduino, der IC kann 1A. Ja, der Motor wird direkt an den IC angeschlossen. Das ist wohl soweit auch korrekt, allerdings sollten zwischen IC und Motor wohl noch Widerstände o.ä., allerdings fehlen mir da die Kenntnisse.
Dennis
Hallo Dennis,
ah, Du hast einen Treiber-IC dahinter.
Das war mir nicht klar. Dann ist alles gut.
d.h. aber Du betreibst den Motor mit einer externen Spannungsquelle.
Da wüsste ich keine sinnvolle Verwendung für Widerstände (evtl Pull-Up, aber die sind meist integriert.
Grüße
Werner
Vielleicht zum Besseren Verständnis, ich habe mich an diesem Aufbau orientiert.
http://www.arduino-tutorial.de/2010/06/motorsteuerung-mit-einem-h-bridge-ic/