Grundkenntnisse Programmierung 1 (Pulsierende LED)
Autor: Justin Frommberger
Void loop und void setup
[Quelltext 1: ArduinoSketchStruktur.ino
]
void setup ( ) // Programmstart
{
// Anweisungen
}
void loop ( ) // Hauptschleife
{
// Anweisungen
}
Setup-Funktion
- Wird einmalig beim Start des Arduino-Boards oder nach einem Reset ausgeführt.
- In dieser Funktion werden Variablen, Pinmodi, Bibliotheken, usw. initialisiert.
- Muss immer vorhanden sein!
Die Loop-Funktion
- Ist eine Endlosschleife, die nach jedem Durchlauf erneut aufgerufen wird.
- Hier wird der Code hineingeschrieben, der dauerhaft ausgeführt werden soll.
Initialisierung (Zuweisung)
Erklärung Ist die Zuweisung für ein Datenobjekt oder einer Variable.
- Wird benötigt, um im Programm Variablen Eigenschaften zuzuweisen.
- Sozusagen wird einer Person ihr Alter zugeordnet (Lisa), um sie wiederzuerkennen wird ihr das Alter (18) zugewiesen.
- So weiß das Programm, dass Lisa gerade 18 Jahre alt ist.
Datentypen (const byte)
- Um die erstellte Variable (Lisa = 18) verwenden zu können, benötigen Sie einen Datentypen.
- Für das Beispiel (Lisa = 18) wird der Datentyp
const byte
verwendet, siehe Tabelle 1.
Erklärung const
Steht für eine Konstante und ändert die Variable zu "read-only".
- Das bedeutet, dass die Variable wie alle anderen Variablen des gleichen Typs benutzt werden kann, aber dass der Wert unveränderlich ist.
- Wenn du der Variable einen neuen Wert zuweist, bekommst du einen Compiler-Fehler.
[Quelltext 2: byte.ino
]
const byte Lisa = 18; // Lisa ist 18 Jahre alt
Datentypen
In der Programmierung gibt es verschiedene Datentypen, die angeben, welche Art von Wert eine Variable hat und welche Operationen auf sie angewendet werden können, ohne Fehler zu verursachen.
Ein Byte kann nur Zahlen im Bereich von 0 bis 255 speichern, ohne dass ein Fehler auftritt.
Datentyp | Bemerkung | Wertebereich |
---|---|---|
bool | 1 Bit [true,false] | [0,1] |
byte | 8 Bit ohne Vorzeichen | [0,255] |
char | 8 Bit ASCII-Zeichen | [ [-128,128] |
double | 64 Bit Fließkommazahl, 15 Nachkommastellen | [2,2^−308, +1,79^308] |
float | 32 Bit Fließkommazahl, 6 Nachkommastellen | [−3,4^38, +3,4^38] |
int | 16 Bit Integer mit VZ | [-32768, +32767] |
long | 32 Bit Integer mit VZ | [−2^32, +2^32 − 1] |
short | 16 Bit Integer mit VZ | [-32 768,+32 767] |
string | Zeichenkette vom Typ char | Buchstaben |
unsigned char | 8 Bit Integer ohne VZ | [0,255] |
unsigned int | 16 Bit Integer ohne VZ | [0,65535] |
unsigned long | 32 Bit Integer ohne VZ | [0,4294967295] |
Funktionen
pinMode()
Mit der Funktion kann ein bestimmter Pin als Ein- oder Ausgang konfiguriert werden.
- Pin : Die Nummer des Pins.
- Modus : Dies kann INPUT oder OUTPUT sein.
- OUTPUT : Definiert den Pin als Ausgang.
- INPUT : Definiert den Pin als Eingang.
[Quelltext 3: pinMode.ino
]
pinMode(Pin, OUTPUT); // Ausgang Zuweisung
// oder
pinMode(Pin, INPUT); // Eingang Zuweisung
analogWrite()
- Schreibt einen Analogwert auf einen Pin.
- Ein Analogwert ist ein Zahlenwert, wie Temperatur = 30
- Diese Funktion wird verwendet, um die LED mit verschiedener Helligkeit leuchten zu lassen.
[Quelltext 4: analogWrite.ino
]
analogWrite(Pin, Analogwert); // Aufbau
analogWrite(Pin(LED), 200); // Beispiel: Pin 5 sendet nun den Wert 200 an die verbundene LED.
delay()
- Legt für die angegebene Zeit im Programm eine Pause ein.
- Angabe in der Klammer ist in Millisekunden.
- Benötigt, um Teile des Programmes langsamer ausführen zu lassen.
[Quelltext 5: delay.ino
]
void loop() {
delay(400) // Pause von 400ms
}
Mathematische Funktionen
Operator | Bedeutung | Anwendung | Funktion |
---|---|---|---|
= | Zuweisung | a= 2∗b | Weist der linken Seite den Wert auf der rechten Seite zu |
+ | Addition | a= b+c | Für die Addition |
- | Subtraktion | a= b-c | Für die Subtraktion |
++ | Inkrementieren | a++ | Zählt zu der Variable 1 hinzu (+1) |
- | Dekrementieren | a– | Zieht von der Variable 1 ab (-1) |
* | Multiplikation | a= b∗c | Für die Multiplikation |
/ | Division | a= b/c | Dabei darf c nie gleich null sein |
% | Modulo | a= 7%5 ; a= 2 | Liefert den Rest bei der Division von |
Strukturen
if-Bedingung
Das if-Bedingung checkt, ob eine Bedingung wahr ist und führt dann den Code aus, der innerhalb der Klammern steht.
Vergleichsoperatoren (X==X)
x == y (x ist gleich y)
x != y (x ist nicht gleich y)
x < y (x ist kleiner als y)
x > y (x ist größer als y)
x <= y (x ist kleiner als oder gleich zu y)
x >= y (x ist größer als oder gleich zu y)
Geschweifte Klammern {}
Auf eine öffnende geschweifte Klammer {muss immer eine schließende geschweifte Klammer} folgen.
Siehe im Beispiel: if-Bedingung
Beispiel if-Bedingung
[Quelltext 6: ifverzweigung.ino
]
if (Lisa == 18) { // Wenn Lisa 18 Jahre alt ist, wird die Anweisung ausgeführt
// Anweisung;
}
else (Lisa != 30) { // Wenn Lisa nicht 30 Jahre alt ist, wird die Anweisung ausgeführt
// Anweisung;
}
if (Lisa == 18 || Lisa == 20) { // Wenn Lisa 18 '''oder''' 20 Jahre alt ist, wird die Anweisung ausgeführt
// Anweisung;
}
if (Lisa == 18 && Lisa != 20) { // Wenn Lisa 18 '''und '''nicht 20 Jahre alt ist, wird die Anweisung ausgeführt
// Anweisung;
}
→ zurück zum Hauptartikel: klicken!