Ein Transistor ist ein elektronisches Halbleiter-Bauelement, das wie eine Art Schalter funktioniert. Transistoren gibt es in vielen Varianten z.B. MOSFETS und npn-Transistoren, sie haben aber alle mehr oder weniger den selben Zweck: Ich kann mithilfe von Transistoren Strom “steuern”. Stell dir vor du machst das licht im Raum an und aus indem du den Schalter drückst. So ähnliches macht es ein Transistor auch, nur braucht er dazu keinen Finger sondern Strom. Geringe Spannungen um 5V mit wenigen mA können bei Transistoren Spannungen jenseits 60V und 5A durchschalten.

Ein Beispiel: Der Arduino gibt über die digitalen Pins bis zu 5V aus, was grade mal für eine LED oder einen Buzzer reicht aber was wenn ich einen Motor Steuern will? Spätestens dann muss ich auf höhere Voltzahlen zurückgreifen und meinen Arduino vor einem Defekt zu schützen.

In unserem Beispiel nehmen wir einen TIP120 NPN Transistor. Dieser unterbricht quasi die Leitung zu unserem Motor(zwischen Motor und GND) und gibt sie bei Interaktion wieder frei. Ohne Spannung auf dem Gate (auch Base) fließt kein Strom zwischen dem Drain (auch Collector) und Source (auch Emitter).

Was brauchen wir:

  • Arduino Nano/ Uno oder Klon
  • TIP120 NPN-Transistor
  • 220k Widerstand
  • Gleichstrommotor mit Sicherungsdiode oder einen ähnlichen Verbraucher
  • Stromquelle (9 oder 12v sollten genügen)

Der Aufbau:

Arduino Nano V3 | TIP120

Die Spannung ist in dem Fall bei 9V, kann aber durch die technischen Eigenschaften des TIP120 deutlich höher sein. Um den Arduino nicht zu hohen Spannungen auszusetzen, sollte man unter Einsatz Spannungen jenseits der 12V die Stromzufuhr zum VIN Pins des Nanos ggf. über ein Stepdown-Modul auf max. 12V begrenzen, der Transistor kann dadurch weiterhin mit höheren Spannungen und Stromstärken arbeiten. Da der TIP120 bis max. 60V und 5A belastbar ist, ist er für diesen aufbau nicht nur ausreichend sondern fast übertrieben. Am D9 Pin des Arduino bekommt er genug strom am Gate um durchzuschalten.

Über digitalWrite() am D9 können wir den Transistor ansteuern. Setzen wir den D9 auf HIGH fließt der Strom und der Motor dreht sich. Ist D9 auf LOW fließt kein Strom und der Motor bleibt stehen. Die Diode am Motor schütz den Arduino zudem vor der Überspannung, da der Motor nicht sofort anhält und Strom erzeugt der zum Arduino fließen könnte.

const int transistor = 9; // dauerhafte variable für den pin 9, wo wir die Base des TIP120 anklemmen

void setup() {
  pinMode(transistor, OUTPUT) ; // wir sagen dem Arduino, dass der Pin ein Ausgang ist
}

void loop() {
  digitalWrite(transistor, HIGH);
  delay(2000);
  digitalWrite(transistor, LOW);
  delay(2000);
}

Der Motor dreht jetzt für 2 Sekunden, danach ruht er wieder für 2 Sekunden.

Mit dieser Methode kann ich mehrere Transistoren an dem Arduino anschließen. Über die Pins 3, 5, 6, 9, 10 und 11 können wir zudem die motordrehzahl mithilfe von PWM regeln. Die Polarität muss hier allerdings immer gleich bleiben, mit diesem Aufbau kann der Motor nur in eine Richtung drehen. Zum wechsel der Richtung benötigen wir beispielsweise eine H-Brücke, dazu mehr in “Projekte”.

Alternativ können wir statt des Motors auch einen LED-Streifen mit dem Arduino steuern sowie unter Einsatz von mindestens 3 Transistoren auch die Farbe eines RGB-LED-Streifens festlegen. Dazu mehr in anderen Projekten

Von geekduino

Kontakt: info@geekduino.de