Samstag, 6. Juli 2013

Wie alles begann

Während meiner Ausbildung zum EAT (Elektroniker für Automatisierungstechnik) kam ich das erste Mal mit Arduino in Kontakt. Meine Aufgabe lautete damals, dass ich 3 Analogwerte von Sensoren (ein Fotowiderstand für Helligkeit, ein Feuchtigkeitssensor und ein Wärmesensor) auswerten soll, um dann ein Signal an eine SPS (Speicherprogrammierbare Steuerung) zu schicken.


Bei der Ausbildung Kamm ich auch mit Homeautomatisierung zusammen, nur diese finde ich einfach zu teuer. So bin ich dann auf die Idee gekommen mit einem Arduino dieses Problem zu lösen. Als Erstes habe ich mir das Set "Arduino Starterset" bei SEGOR electronics GmbH bestellt, den Link gibt es Hier. Ich habe mich für dieses Set entschieden, weil es viele verschiedene Elektrobauteile enthält. Ein weiterer Grund war das Buch "Arduino für Einsteiger" von Massimo Banzi das dem Set beiliegt. In dem Buch wird die Grundliegende Programmierung von Arduino beschrieben. Das Buch ist wirklich sehr einfach gehalten und jemand der Erfahrung in Elektrotechnik und anderen Programmiersprachen hat wird sich schnell unterfordert füllen. Aber für Einsteiger ist es genau das richtige Buch. Ich würde den Kauf allein wegen der Elektrobauteile jedoch nicht bereuen.


Das erste Projekt


Ich möchte bei meinem ersten Post auch die reckt ein Projekt mit Liefern.
In dem Projekt geht es nur darum mithilfe eines Tasters NO (normally open das heißt es ist ein Schließer) eine LED ein und aus zu schalten.

Als Erstes braucht Ihr die Arduino Software, diese könnt Ihr unter diesem Link herunterladen. Als Nächstes braucht ihr den Anschlussplan und den Code dies findet ihr hier, des Weiteren ein Bild von meinem Aufbau.


Code

Zu beginn werden die Variablen zugewiesen.

const int LED = 13;

Hier wird eine Konstante (const) Integer (int) Variable erzeugt die LED heißt und den Wert 13 zugewiesen bekommt. Das Zeichen " ; " ist sehr wichtig und bedeutet das mein Befehl hier aufhört, z.B. wie bei einem Satz der Punkt.

int VAL = 0;

 
Hier wird eine Variable des Typs Integer (int) erzeugt (diese ist nicht konstant) die den Name VAL trägt ihr Wert ist 0.


void setup() {
   pinMode(LED, OUTPUT);
   pinMode(SCHALTER, INPUT);
}


Nach void setup() { beginnt das Programm. Der Teil, der zwischen den geschweiften Klammern steht, wird nur einmal durchlaufen. Durch pinMode() wird ein PIN als Eingang oder Ausgang festgelegt. LED steht für eine Variable, die zugeordnet werden soll. OUTPUT und INPUT stehen dafür ob es ein Ausgang oder ein Eingang sein Soll. 


void loop() {
...
}


Hier beginnt das Hauptprogramm. Alles was nach void loop() {...} in den geschweiften Klammern steht wird immer wiederholt.

VAL =digitalRead(SCHALTER);

Hier wird nun der Wert von SCHALTER (PIN 12) ausgelesen (digitalRead) und in die Variable VAL geschrieben.


if ((VAL == HIGH) && (VAL_old == LOW)) {
   STATE = 1 - STATE;
   delay(10);
   }
VAL_old = VAL


Hier passirt nichts anderes als das wenn der Schalter betätigt wird die Variabele STATE den Wert 1 bekommt. Wird der Schalter losgelassen bleibt der Wert von STATE auf 1. Wird der Schalter ein weiteres Mal betätigt erhält STATE den wert 0. Nun wird der Schalter losgelassen bleibt der wert auf 0. Für alle die wissen wollen wie genau dies funktioniert habe ich hier eine Anleitung.


if (STATE == 1) {
   digitalWrite(LED, HIGH);
   {
   else {
   digitalWrite(LED, LOW);
   }


Wenn STATE == 1 ist dann schreibe LED also Pin 13 auf HIGH. Wenn STATE keine 1 hat dann schreibe LED also Pin 13 auf LOW. Mit dem Befehl digitalWrite() kann nur HIGH oder LOW schreiben also +5V oder 0V.


delay();

Zum Abschluss möchte ich noch kurz den delay Befehl erklären. Dabei wird das Programm für eine Zeit unterbrochen, diese Zeit steht in Millisekunden in der Klammer. Zum Beispiel bei einer 10 wird erst nach 10ms der nächste Befehl bearbeitet.



So das war dann auch schon mein erstes Postieg auf diesem Blog ich hoffe das liest auch der ein oder andere. Mein nächstes Projekt besteht darin eine RGB-LED Strippe in verschiedenen Farben zum Leuchten zu bringen.

Bis dahin könnt Ihr ja mit dem heute gelernten Rumspielen z.B. mithilfe des delay Befehls eine LED zum Blinken zu bewegen.

Bei Fragen benutzt einfach das Kontaktformular oder schreibt direkt eine E-Mail an pilot.arduino@gmail.com