zurück


Aktoren

Aktoren (z.B. LED, Servo Motor, DC Motor, Lautsprecher etc.) werden an den digitalen Ausgängen des Boards angeschlossen. Da es bei diesem Workshop aber mehr um das Einlesen von Sensorwerten geht, soll hier nur kurz auf ein paar wenige Aktoren eingegangen werden.



LED (Lichtdiode)


Da das Arduino Board eine Spannung von 5V liefert, die meisten LEDs aber weniger Spannung verbrauchen sollte immer ein Vorwiderstand zwischen LED und digitalem Ausgang gelötet werden. Generell ist immer das längere Beinchen der LED der Pluspol. Die meisten LEDs haben einen Betriebsstrom von 20mA, detailierte Infos findet man aber immer im Datenblatt der LED. Zum Berechnen des Widerstands ist folgender Link sehr nützlich: http://www.elektronik-kompendium.de/sites/bau/1109111.htm. Generell kann man aber auch einen 1KB ohm Widerstand verwenden, dann ist man meist auf der sicheren Seite.


led


led




Lautsprecher/Speaker


Bei einem Lautsprecher ist auch wieder sehr wichtig einen Vorwiderstand zwischen Pluspol und digitalen Ausgang des Boards zu löten. Für unsere Lautsprecher verwenden wir einen 220 ohm Widerstand.



speaker


Siehe Beispiel “Melody” (http://arduino.cc/en/Tutorial/Melody).




Servomotor


servo


Servomotoren brauchen meist eine Grundspannung von 6V. Da wir bei diesem Workshop aber den Strom nur über die USB-Schnittstelle beziehen, liefert der “Vin” Ausgang nur eine Spannung von 5V, welche aber für erste Experimente ausreicht. Werden mehrere Servos gleichzeitg angeschlossen empfiehlt es sich, eine externe Stromquelle mit 6V zu verwenden und diese Spannung auch nicht über das Arduino Board zu beziehen. Nur noch der Pin für die Pulssteuerung des Servos wird dann am Arduino Board angeschlossen (in unserem Fall das blaue Kabel). Wichtig ist hierbei, dass dann aber die Masse (GND) der externen Stromquelle mit dem Arduino Board verbunden wird.


Für diesen Workshop schließen wir das rote Kabel an den “Vin” Anschluss des Boards, das schwarze Kabel an den “GND” Anschluss und das blaue Kabel an einen digitalen Ausgang (z.B. Pin 7).


Bei der Arduino Software ist schon eine Servo Library enthalten. Diese kann aber nur für die Pins 9-10 benutzt werden. Für diesen Workshop verwenden wir deshalb die SoftwareServo Library (http://www.arduino.cc/playground/ComponentLib/Servo), welche den Anschluss eines Servos an jeden digitalen Ausgang ermöglicht. Bei Verwendung dieser Library gibt es allerdings einen Konflikt mit der bereits enhaltenen Servo Library. Deshalb folgende Version verwenden:


softwareservo.zip


Hier ein einfacher Code zur Steuerung des Servos mithilfe eines Potis:


/* servo controller
 *
 * using poti to set position of servo
 *
 */

// libraries
#include <SoftwareServo.h>

// create Servo object to control a Servo
SoftwareServo myServo;  

// globals
int potiValue;
int degree;

void setup() {

  // attaches the servo on pin 7 to the servo object
  myServo.attach(7);  

}

void loop() {

  // get poti value (value between 0 and 1023)
  potiValue = analogRead(0);
  // calc degree using poti value
  degree = map(potiValue,0,1023,0,179);
  // drive servo
  myServo.write(degree);
  // refresh servo
  SoftwareServo::refresh();

}


Da der Poti einen Wert zwischen 0 und 1023 liefert, der Servomotor aber nur Stellungen zwischen 0 und 179 ausführen kann wird die “map()” Funktion verwendet. Diese Funktion ist generell eine sehr nützliche Funktion zur Übersetzung eines Wertebereichs in einen anderen (siehe http://arduino.cc/en/Reference/Map).