einige 12V - Elektromagnete steuern

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++;
  }
}