seeseekey.net - Invictus Deus Ex Machina

Bei einem Servo han­delt es sich um einen Motor wel­cher sich genau steu­ern lässt z.B. auf eine exakte Posi­tion. Die Ansteue­rungs­elek­tro­nik ist bei einem Servo gleich ein­ge­baut. Ser­vos sind im übri­gen im Nor­mal­fall nicht zum Durch­lauf gedacht, da eine mecha­ni­sche Sperre dies ver­hin­dert. Neben dem Servo soll es auch noch zwei LEDs (eine rote und eine grüne) zur Anzeige des Zustan­des sowie einen Tas­ter zum an- und aus­schal­ten geben.

Zuerst wird der Servo mit dem Board ver­bun­den. Der Servo hat dabei drei Anschlüsse, GND (schwarz bzw. braun), VDD (rot) sowie SIGNAL (Orange). GND wird dabei mit Ground ver­bun­den, VDD mit der 5 Volt Buchse des Arduino und Signal mit PIN 9 des Boards. Der Tas­ter wird mit PIN 4 ver­bun­den, die bei­den LEDs mit PIN 2 und 3. Damit wäre die Ver­ka­be­lung erledigt.

Nun geht es an den Quell­code. Die­ser soll den Servo ansteu­ern, die Lich­ter leuch­ten las­sen, sowie den Tas­ter abfra­gen. Inter­es­sant ist die Zeile:

digitalWrite(pushButton, HIGH); //Pull up Widerstand aktivieren

In die­ser Zeile wird der interne Pull Up Wider­stand des Arduino für PIN 4 akti­viert. Andern­falls müsste ein hoch­oh­mi­ger (1000 - 100000 Ohm) Wider­stand auf dem Board im Tas­ter­schalt­kreis ver­baut wer­den, da es sonst vor­kom­men kann das der Tas­ter nicht reagiert.

#include <Servo.h> 

Servo servo;

int pushButton=4;

int ledRed=3;
int ledGreen=2;

void setup()
{
 pinMode(pushButton, INPUT);

 pinMode(ledRed, OUTPUT);
 pinMode(ledGreen, OUTPUT);

 servo.attach(9);

 digitalWrite(pushButton, HIGH); //Pull up Widerstand aktivieren
} 

void loop()
{
 int pressed=digitalRead(pushButton);

 digitalWrite(ledGreen, LOW);
 digitalWrite(ledRed, HIGH);

 if(pressed==LOW)
 {
 digitalWrite(ledGreen, HIGH);
 digitalWrite(ledRed, LOW);

 servo.write(360);
 delay(2000);
 servo.write(0);
 }

 delay(15);
}

In Action sieht das ganze dann so aus:

Der Source­code sowie der Schalt­plan kön­nen sich natür­lich auch her­un­ter­ge­la­den werden.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://de.wikipedia.org/wiki/Servo
http://www.freeduino.de/books/servos-f%C3%BCr-durchlauf-umbauen
http://de.wikipedia.org/wiki/Pull_up

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>