Autor: blogsberkarduinoblog

Der Taster und die if-Abfrage / Alternative

Ein Taster funktioniert wie ein einfacher Druckschalter: Sobald man ihn drückt, wird der Stromkreis geschlossen. Lässt man ihn los, wird er wieder unterbrochen. Das wiederöffnen funktioniert meistens durch eine kleine Feder. Nun wollen wir den Taster anwenden:

Wir wollen ein Programm schreiben, bei dem die LED eingeschaltet wird, wenn wir den Taster gedrückt halten. Lassen wir den Taster los, so soll die LED wieder abgeschaltet werden. Dafür nutzen wir das Programm aus der Lektion „Es blinkt!

arduino

Nun müssen wir den Taster anschließen. Dabei speichern wir die Pin-Nummer, an welche der Taster angeschlossen ist, mit einer Variable. Das gleiche tun wir auch mit der LED.

Als Variable für die LED benutzen wir LED

Die Variable für den Taster nennen wir ganz einfach Taster

Als nächstes müssen wir dem Arduino die Information geben, dass der Pin als Eingabe verwendet werden soll. Der Befehl dafür lautet: pinMode(Taster,INPUT);

Der Befehl dafür ist der selbe, wie bei der LED, nur dass wir nun keinen OUTPUT, sondern einen INPUT verwenden wollen.

Die Schaltung sieht dann wie folgt so aus:

und das Programm dazu so:

If-Abfrage:

Im oben zu sehenden Programm haben wir eine if-Abfrage benutzt. Diese sind dafür da, um herauszufinden, ob eine Aussage wahr oder falsch ist.

Ein Beispiel: Ein Flaschenautomat könnte nach dem Prinzip einer if-Abfrage arbeiten. Steckt man die Flasche nun in den Automaten, so wird entschieden, ob sie verwendet werden kann, oder nicht, und ob sie eingeordnet oder wieder zurückgeworfen werden kann.

Dabei überprüft der Automat erstmal, ob bestimmte Kriterien erfüllt werden (Flaschenform, Barcode, etc.) und entscheidet dann, was der nächste Schritt ist.Ungefähr so funktioniert auch eine if-Abfrage.

Der Befehl für die if-Abfrage könnte lauten: if (FlaschenBarcode==richtig) {                                                                                                                      verwerte Flasche                                                                                                                   }

Möchte man den Befehl nun so umschreiben, dass der Automat die Flasche, wenn der Barcode falsch ist, wieder ausspuckt, so muss man dies der if-Abfrage hinzufügen, um klar zu machen, was auszuführen ist, wenn die Bedingung falsch ist. Der Befehl sieht dann wie folgt aus:  if (FlaschenBarcode==richtig)  {                                                                                                                      verwerte Flasche                                                                                                                }  else  {                                                                                                                                                                    spucke Flasche aus                                                                                                                             }          

  Die if-Abfrage überprüft also, ob der Barcode der Flasche richtig ist. Bei allen sonstigen  Möglichkeiten („else“ = Englisch für „sonst“) wird die Flasche wieder ausgespuckt.   

 

                                                                                                                                                                                                                                            

 

 

For-Schleife und LED Rechner

Der Nutzen einer For-Schleife

Mit einer For-Schleife kann man bestimmte Befehle beliebig oft wiederholen.                        Die For-Schleife sieht folgendermaßen aus: for-schleife

Sie besteht in ihren Bestandteilen aus Startwert, Test und Forstetzung.

Startwert: Für den Startwert wird eine neue Variable angelegt. Diese speichert den Anfangswert, mit dem im Test und in der Fortsetzung weitergerechnet wird.

Fortsetzung: Dort wird die Variabel (die im Startwert benutzt wurde) mit einer Zahl               erweitert, welche dann immer wenn die Schleife durchlaufen wird entweder addiert, subtrahiert, dividiert oder multipliziert wird.              Beispiel: zähler+3

Test: Mittels des Tests zeigt man dem Arduino Programm, bis wann die ganze Schleife wiederholt werden soll.

Variablen!

Variablen sind für das Programmieren eine Wichtigkeit. Auch in der Mathematik gibt es Variablen: Sagt man zum Beispiel „x=10“, so muss in einer Formel immer anstelle von „x“ die Zahl „10“ eingesetzt werden.

Beispiel: Im Matheunterricht muss ein Schüler die Zahl 15 mit x addieren. Die Addiionsaufgabe hieße also „15+x“. Dabei bekommt er als nächstes den Auftrag, bei „x“ die Zahl „10“ einzusetzen. Dann hat er als Additionsaufgabe „15+10“ und die Summe ist von nun an als „25“ bestimmbar.

In der Informatik ist das nicht anders. Dabei können Variablen sehr nützlich sein, was ich an dem Programm vom Kapitel „Es blinkt!“ verdeutlichen möchte:

Damit das Programm funktioniert, mussten wir den Output bestimmen und die Befehle auf diesen Output beziehen. Hier ist der Output „9“.

informatikfenster

Wenn wir nun aber den Ausgang des Stromes verändern wollen, beispielsweise auf den Output 3, so kann man zwar in jedem Befehl, bei dem auf den Output 9 Bezug genommen wird, die 9 in jedem Befehl mit einer 3 ersetzen, aber mit Variablen geht dies viel leichter.

 

 

 

Es blinkt!

In diesem Beitrag wollen wir nun endlich programmieren! Wir werden eine LED zum blinken bringen.

 

Vorbereitung:

Damit wir ein Programm auf unseren Arduino draufspielen können, müssen wir erst einmal die richtigen Komponenten einbauen, damit die LED überhaupt ihren Strom bekommt. Dafür müssen die Komponenten wie in folgendem Bild dargestellt aufgebaut werden: arduinoinformatikdingsda

Dabei ist zu beachten, dass das oben dargestellte Model das eines „Arduino Uno’s“ ist. Beim „Arduino Nano“ sieht das dann wie folgt aus:

Jetzt, wo wir den Arduino mit seinen passenden Komponenten aufgebaut haben, müssen wir das Programm schreiben.

Das Programm:

Zum Programmieren nutzen wir die, im vorherigen Beitrag erklärten, Befehle. Dabei müssen wir sie im Text-Fenster des Arduino-Programms eingeben. Dies sieht dann fertig wie folgt aus:

informatikfensterD

Dabei muss als erstes der Ausgang des elektrischen Stromes ausgewählt werden. Dies haben wird mit dem Befehl „pinMode(9,OUTPUT);“ erreicht. Dabei geben wir den Befehl in den Methodenblock „void setup ( )“ ein, da der Befehl nur einmal ausgeführt werden muss und sich nicht zu wiederholen braucht. Jetzt ist der Pin 9 als Ausgang markiert und kann als elektrische Stromquelle fungieren.

Als nächstes benutzen wir den Methodenblock „void loop ( )“, da sich die folgenden Befehle immer wiederholen müssen, damit die Lampe blinkt. Dabei brauchen wir die Befehle „digitalWrite(9,HIGH);“, welcher dafür sorgt, dass der Ausgang 9 nun den Strom zur LED durchlässt und die Lampe aufblinkt. Damit die Lampe wieder ausgeht, wird der Befehl „digitalWrite(9,LOW);“ benötigt.

Jetzt müsste die Lampe eigentlich blinken, doch wir können es nicht wahrnehmen, da der Zeitraum zwischen des An- und Ausgehens zu kurz ist. Deswegen benötigen wir noch den Befehl „delay(1000);“, den wir jeweils einmal nach dem „digitalWrite(9,HIGH);“ und dem „digitalWrite(9,LOW);“ hinzufügen. Jetzt vergehen 1000 Millisekunden, also eine Sekunde, bis der nächste Befehl ausgeführt wird und die Lampe blinkt in einem Takt von je einer Sekunde.

 

digitalOut

Ein Arduino-Programm besteht in der Grundstruktur aus einem Textfenster (wie man es von Programmen wie Word, LibreOffice etc. kennt), in welches die verschiedenen Befehle eingegeben werden müssen.

Hierzu benutzt man sogenannte Methodenblöcke, in welche die Befehle eingegeben werden, beispielsweise die void-Methoden: „setup()“ und „loop()“.

„setup()“ wird als Methode benutzt, um Befehle einmalig auszuführen, während der Befehl „loop()“ die Methode beliebig oft ausführt.

Befehlsübersicht:

Befehl

 Funktion

 Funktion Parameter

 pinMode(x,OUTPUT);  Legt einen digitalen Pin als Ausgang für den elektrischen Strom fest.  Der Parameter, hier „x“, legt den digitalen Pin fest der von nun an als Output genutzt wird. In diesem Beispiel wäre Pin „x“ betroffen.
 digitalWrite(x, HIGH);  Der Befehl aktiviert den Kanal eines bestimmten Pins mit dem festgelegten Parameter. Der Parameter, hier „x“, legt den digitalen Pin fest dessen Kanal von nun an aktiviert ist. In diesem Beispiel wäre Pin „x“ betroffen.
 digitalWrite(x,LOW);   Der Befehl deaktiviert den Kanal eines bestimmten Pins mit dem festgelegten Parameter.  Der Parameter, hier „x“, legt den digitalen Pin fest dessen Kanal von nun an deaktiviert ist. In diesem Beispiel wäre Pin „x“ betroffen.
 delay(x)  Der Befehl sorgt für eine Verzögerung bis zum nächsten Befehl von x Millisekunden.  Der Parameter, hier „x“, legt die Anzahl der Millisekunden fest, die bis zum Ausführen des nächsten Befehls vergehen sollen.

 

In Zusammenarbeit mit janrieper1if2 entstanden.

Wie funktioniert das Breadboard?

Dieses Mal wollen wir die Funktionsweise des sogenannten „Breadboards“ erklären.

Das Breadboard, auch Steckplatine, wird zum verbinden elektronischer Bausteine verwendet. In der Steckplatine sind nämlich Kontaktklemmen aus Metall eingelassen. Um zwei elektronische Bauteile miteinander zu verbinden (beispielsweise eine LED mit einem Widerstand), müssen zwei Steckverbindungen in die selbe, zur kürzeren Seite des Breadboards horizontal liegende Reihe gesteckt werden. Die nebeneinander liegenden Löcher dieser Reihe sind miteinander verbunden und so kann der Strom von der Steckverbindung der LED zur Steckverbindung des Widerstands, oder umgekehrt, fließen.

FunFact:

Breadboard ist englisch und bedeutet „Brotbrett“. Früher hat man Nägel in kleine Brettchen gehämmert und dann an ihnen elektrische Bauteile befestigt und Drähte rumgewickelt. Die kleinen Brettchen sahen aus wie Brotbrettchen und so entstand der Name „Breadboard“.

Stromkreis

Als nächstes wollen wir mit Hilfe eines Datenblattes den Widerstand berechnen

Dem Datenblatt kann man die Spannung und die Stromstärke entnehmen,

daraus lässt sich dann der Widerstand berechnen:

Bei einer Spannung  von 2.0 Volt und einer Stromstärke von 0.02 Ampere (Umgerechnet von 20 Milliampere) lässt sich mit der Formel urider Widerstand R berechnen.

2.0 / 0.02 = 100. Der Widerstand beträgt also 100 Ohm.

 

Arduino – Modelle „Uno“, „Nano“ und „Mega“ im Vergleich

Es gibt 3 versch. Modelle des Arduinos: „Uno“, „Nano“ und „Mega“. Wir wollen unser Modell, das „Arduino Nano Board“, mit den Modellen „Uno“ und „Mega“ vergleichen.

Die unten dargestellte Tabelle veranschaulicht die Unterschiede der Modelle.

Arduino Uno Arduino Nano Arduino Uno
Arduino Uno Arduino Nano Arduino Mega
Mikrocontroller ATmega328 ATmega328 ATmega2560
Betriebsspannung 5 Volt 5 Volt 5 Volt
Eingangsspannung (Board) empfohlen 7 bis 12 Volt 7 bis 12 Volt 7 bis 12 Volt
Eingangsspannung (Board) Limit 6 bis 20 Volt 6 bis 20 Volt 6 bis 20 Volt
Digitale I/O Pins 14 14 54
Analoge Eingänge 6 8 16
Auflösung Analogwerte 10 bit – 1024 10 bit – 1024
maximaler Strom per I/O-Pin 40 mA 40 mA 40 mA
PWM an digitalen I/O-Pins 6 6 14
Flash Memory 32 KB 32 KB 256 KB
SRAM 2 KB 2 KB 8 KB
EEPROM 1 KB 1 KB 4 KB
Taktfrequenz 16 MHz 16 MHz 16 MHz
USB ja Mini-B USB ja
Anzahl Serielle Eingänge 1 4
Serielle Eingänge RX Pin1
TX Pin2
RX Pin1
TX Pin2
RX Pin1, TX Pin2
RX Pin19, TX Pin18
RX Pin17, TX Pin16
RX Pin15, TX Pin14
SPI SS Pin10
MOSI Pin11
MISO Pin12
SCK Pin13
SS Pin10
MOSI Pin11
MISO Pin12
SCK Pin13
SS Pin50
MOSI Pin51
MISO Pin52
SCK Pin53
I2C SDA Analog4
SCL Analog5
SDA Analog4
SCL Analog5
SDA Pin20
SCL Pin21
Externe Interrupts 2 2 6
Verwendung Einstieg Breadboard mehr Pins oder Speicher

Die Kosten des Arduino Nano Boards:

Die Kosten des Arduino Nano Boards liegen bei 2,30

Tilden

Das folgende Foto zeigt die Tilden (~) im Arduino an.

1474633006239

 

Quellen: http://www.robodino.de/2011/12/arduino-vergleich-uno-nano-mega.html

http://www.ebay.de/itm/like/272261602049?lpid=106&chn=ps&ul_noapp=true