einige 12V - Elektromagnete steuern

Hallo,

Welches Setup würdet ihr empfehlen (vom Board angefangen)
um 24 einzelne 12V Elektromagnete zu steuern.
Solche hier:
voelkner.de/products/36785/Zylindermagnet-Its-Lz-1335.html
Die Magnete müssten individuell schaltbar sein.

Würde das mit dem Arduino Uno Board machbar sein?
Und dann vom Board aus gleich an ein Relais?
(gibt es das auch als Arduino Bauteil?)

Was für eine Stromversorgung könnte man da nehmen?

Sorry - ich bin in Sachen E-Technik der absolute Laie,
habe aber als Programmierer immerhin eine Software Lösung für mein Problem gefunden.

Also schon mal vielen herzlichen Dank für alle Tipps und Antworten :slight_smile:

Ich würde das nicht als "einige" sondern als "viele" sehen.

Ein Uno ist alleine nicht geeignet, da du keine 24 I/Os hast.

Anbieten würden sich mehrere Darlingtons, die nach Shiftregistern geschaltet sind. Oder halt Relais.

Dafür brauchst du aber ein richtig kraftvolles Schaltnetzteil, so im 8A Bereich.

Ich würde das genauso machen wie apogge meinte, wenn du an den Uno gebunden bist würde ich es mit Shift Registern 74HC594 und nachträglich mit den ULN2803 8Fach Darlington Array Arbeiten.
Und halt ein dickes Netzteil. Wie lang sind die einzelnen einschlatuzeiten bzw wie viele sind den bzw sollten maximal gleichzeitig an sein.
Wenn du nicht an den Uno gebunden bist würde ich den Seeeduino Mega empfehlen der hat von Hause aus 70 I/O Ports mit dem könntest du dann noch ne Menge anderes nebenbei machen :wink:

Fangen wie mal am anfang an.

Du hast 24 Magnete für 12V und 333mA.
Wieviele sind gleichzeitig eingeschaltet? Wie oft schalten sie?
Nach welchen Rythmus oder Eingangsgrößen willst Du sie ansteuern? Daraus erfolgt die Auswahl der Eingangsschaltungen.

Das Bord ist nicht so wichtig. Mit allen kann man durch Erweiterungen 24 Ausgänge bekommen.
Relais als Ansteuerung sehe ich nicht sinnvoll da diese selbst einiges verbrauchen und die Schaltung voluminöser machen.
Der Vorschlag von volvpdani könnte ein Lösungsweg sein.

Aber gib uns bitte alle Informazionen und stelle Dein Projekt als ganzes vor und nicht nur den einen Teil bei dem Du nicht weiterweißt.

Grüße Uwe

Hallo zusammen,

erstmal vielen Dank dass ihr euch die Zeit nehmt
und für die Infos und Vorschläge!

Es geht bei dem ganzen um einen mechanischen Webstuhl mit 24 "Schächten".
Solch einen hier:
http://img1.classistatic.com/cps/bln/101221/253r6/5913d98_23.jpeg?set_id=2C4000

"Schächte" sind die Dinger, die die Fäden anheben.
(die roten Holzrahmen auf dem Bild)

Nun möchte ich den Webstuhl gerne auf eine Computersteuerung umrüsten, so dass die Schächte zwar noch manuell angehoben werden,
aber die Entscheidung welche oben bleiben sollen vom Rechner abgenommen wird.

Ich denke mal die computergesteuert anzuheben würde zu weit gehen, bzw. zu viel Spannung und teure Teile nötig machen,
was ich beides gerne vermeiden würde.

Also alle Schächte per Pedal hoch,
zB. bei 3 davon einen "Riegel" (o.ä.) per Magnet drunter,
dann die anderen wieder ablassen.

Im "schlimmsten Fall" würden aber alle Schächte oben bleiben müssen.
Also 24 Verriegelungen irgendwie gehalten werden.

Ich dachte (wie gesagt - ich bin totaler Laie) an jeden Schacht seitlich so einen Zylindermagneten, der den dann (als Riegel) "festhält".

Sinn dahinter ist, das diese Schächte teilweise in sehr komplizierten Sequenzen geschaltet werden müssen, die sich aus einer Datei von Weberei-Softwares auslesen liesse.
http://www.mhsoft.com/wif/wif.html
Würde das einfach per "nächste Reihe" abrufbar sein, könnte man viel schneller arbeiten.

Bei "richtigen" Produktionsmaschinen ist noch mehr automatisiert, aber in dem Fall wäre das schon ein Riesenfortschritt.

Also zusammengefasst geht es in erster Linie erst mal um 24 individuell schaltbare Verriegelungen.

Danke!! :slight_smile:

Dein Ansatz ist gut.
Also werden zwischen 1 und 24 Magnete angesteuert, aber nur für kurze Zeit (von Rahmen oben-Pedal unten bis Rahmen unten- Pedal oben).
Ich würde mich aber im Moment nicht um die Ansteuerung kümmern sondern um die Übertragung des "Musters" auf den Arduino. Das ist meiner Meinung im Moment das größere Problem.
Grüße Uwe

An das Muster aus der WIF Datei zu kommen stelle ich mir nicht so schwierig vor.
Weil das WIF File total simpel aufgebaut ist (wie ein config file in etwa...)
Die Sektion in der Datei mit den besagten Sequenzen ist eigentlich schon eine komma-separiert Liste in der Art:

1,4,6
3,4
2,5
1
1,2,3,4,5,6,20,21
20,22

Das ließe sich ja bequem parsen und in ein Array packen
über das man dann loopen kann.

Im einfachsten Fall könnte ich ja die Mouse (oder vielleicht einen etwas eleganteren Schalter) unter das Pedal legen und "onClick" dann eben die nächste Reihe aktivieren.

Ich denke in ActionScript müsste das mindestens gehen,
so wie hier:

("Using a Mouse to control an LED.")

Ich werde mir die Tage ein Board zulegen und ein paar LEDs zum rumspielen. Aber ich denke von der WIF Datei zu den Ausgängen gibt es kein Problem.
Nur eben danach wird's für mich schwierig...

Danke!

Hallo noch mal,

so.
Also ich habe das mit dem Seeduino Mega gemacht.
(Danke für den Tipp)

Das Muster wird von einem PHP Script (via http://code.google.com/p/php-serial/) via Serial 3-Byte-Message an das Board übertragen. Und das schaltet dann 24 Ausgänge.
...aber bisher eben nur 24 LEDs.

Sagen wir mal ich hätte schon die 24 Magnete mit dem entsprechenden Netzteil versorgt.
Welche Art von Schaltern kann ich denn da nutzen um die Stromkreise einzeln vom Arduino Board aus zu schalten?
Wären das extra Bauteile?
In Form von Widerständen oder komplette Schalter?

Falls es jemanden interessiert, die Message sieht zB. so aus
"16 0 32\r"
die wird dann mit der Messenger Library angenommen, nach binary gewandelt und enthält dann eben 24 mal 0 oder 1.
Ensprechend wird dann geschaltet.

void messageReady() {
  section = 1;
  Serial.println("receiving:");
  while ( message.available() ) {
    
    value = message.readInt();
   
    switch( section ){
    case 1:
      digitalWrite(ledPin1, HIGH && (value & B10000000));
      digitalWrite(ledPin2, HIGH && (value & B01000000));
      digitalWrite(ledPin3, HIGH && (value & B00100000));
      digitalWrite(ledPin4, HIGH && (value & B00010000));
      digitalWrite(ledPin5, HIGH && (value & B00001000));
      digitalWrite(ledPin6, HIGH && (value & B00000100));
      digitalWrite(ledPin7, HIGH && (value & B00000010));
      digitalWrite(ledPin8, HIGH && (value & B00000001));
      break;

    case 2:
      digitalWrite(ledPin9, HIGH && (value & B10000000));
      digitalWrite(ledPin10, HIGH && (value & B01000000));
      digitalWrite(ledPin11, HIGH && (value & B00100000));
      digitalWrite(ledPin12, HIGH && (value & B00010000));
      digitalWrite(ledPin13, HIGH && (value & B00001000));
      digitalWrite(ledPin14, HIGH && (value & B00000100));
      digitalWrite(ledPin15, HIGH && (value & B00000010));
      digitalWrite(ledPin16, HIGH && (value & B00000001));
      break;

    case 3:
      digitalWrite(ledPin17, HIGH && (value & B10000000));
      digitalWrite(ledPin18, HIGH && (value & B01000000));
      digitalWrite(ledPin19, HIGH && (value & B00100000));
      digitalWrite(ledPin20, HIGH && (value & B00010000));
      digitalWrite(ledPin21, HIGH && (value & B00001000));
      digitalWrite(ledPin22, HIGH && (value & B00000100));
      digitalWrite(ledPin23, HIGH && (value & B00000010));
      digitalWrite(ledPin24, HIGH && (value & B00000001));
      break; 
    }

    section++;
  }
}

Welche Art von Schaltern kann ich denn da nutzen um die Stromkreise einzeln vom Arduino Board aus zu schalten?
Wären das extra Bauteile?

Siehe meine erste Antwort.

Anbieten würden sich mehrere Darlingtons, die nach Shiftregistern geschaltet sind. Oder halt Relais.

Als Darlingtos kannst Du ULN2803 nehmen. Die haben 8 getrennte Darlingtons und die Freilaufdiode bereits integriert.
Grüße Uwe