{{indexmenu_n>10}}
====== Arduino Programmierung Basics ======
Hier findest du eine Übersicht über grundlegende Befehle und Strukturen, um in die Arduino-Programmierung einzusteigen.
===== Grundlegende Strukturen =====
=== Setup und Loop ===
void setup() {
// Wird einmal beim Start des Arduino ausgeführt
}
void loop() {
// Wird kontinuierlich wiederholt
}
===== Ein- und Ausgaben =====
=== Pin-Mode einstellen ===
pinMode(pin, mode);
* **pin**: Die Nummer des Pins (z. B. 13).
* **mode**: `INPUT`, `OUTPUT` oder `INPUT_PULLUP`.
=== Digitalen Pin schreiben/lesen ===
digitalWrite(pin, HIGH/LOW);
int state = digitalRead(pin);
* Schaltet einen digitalen Pin an (`HIGH`) oder aus (`LOW`).
* Liest den Zustand eines digitalen Pins (`HIGH`/`LOW`).
=== Analogen Pin schreiben/lesen ===
analogWrite(pin, value);
int value = analogRead(pin);
* **analogWrite**: Gibt einen Wert zwischen 0 und 255 aus (PWM).
* **analogRead**: Liest einen Wert zwischen 0 und 1023.
=== Pulsdauer messen ===
unsigned long duration = pulseIn(pin, value);
* Misst die Zeitdauer (in Mikrosekunden), in der der Pin auf `HIGH` oder `LOW` ist.
===== Zeitkontrolle =====
=== Wartezeit einfügen ===
delay(milliseconds);
* Hält den Code für eine bestimmte Zeit (in Millisekunden) an.
=== Zeit seit Start messen ===
unsigned long time = millis();
* Gibt die vergangene Zeit seit Start des Programms in Millisekunden zurück.
===== Serielle Kommunikation =====
=== Seriellen Monitor initialisieren ===
Serial.begin(baudrate);
* Startet die serielle Kommunikation (z. B. `9600` Baud).
=== Daten senden ===
Serial.print(data);
Serial.println(data);
* **Serial.print**: Sendet Daten in einer Zeile.
* **Serial.println**: Sendet Daten und beginnt eine neue Zeile.
=== Daten empfangen ===
if (Serial.available()) {
char input = Serial.read();
}
* **Serial.available()**: Prüft, ob Daten im seriellen Puffer vorliegen.
* **Serial.read()**: Liest das erste Zeichen aus dem seriellen Puffer. Gibt `-1` zurück, wenn keine Daten vorliegen.
===== Kontrollstrukturen =====
=== If-Statement ===
if (condition) {
// Code ausführen, wenn Bedingung wahr ist
} else {
// Code ausführen, wenn Bedingung falsch ist
}
* **Vergleichsoperatoren:**
* `==`: Ist gleich
* `!=`: Ist ungleich
* `<`: Kleiner als
* `>`: Größer als
* `<=`: Kleiner oder gleich
* `>=`: Größer oder gleich
* **Logische Operatoren:**
* `&&`: UND
* `||`: ODER
* `!`: NICHT
=== For-Schleife ===
for (int i = 0; i < 10; i++) {
// Wiederholt den Code 10 Mal
}
=== While-Schleife ===
while (condition) {
// Code ausführen, solange die Bedingung wahr ist
}
===== Mathematische Funktionen =====
=== Wertebereich umrechnen ===
long mappedValue = map(value, fromLow, fromHigh, toLow, toHigh);
* Rechnet den Wert **value** von einem Bereich (`fromLow` bis `fromHigh`) in einen anderen Bereich (`toLow` bis `toHigh`) um.
* Beispiel: `map(50, 0, 100, 0, 255)` ergibt 127.
===== Beispielprogramm =====
void setup() {
pinMode(13, OUTPUT); // Setzt Pin 13 als Ausgang
}
void loop() {
digitalWrite(13, HIGH); // LED einschalten
delay(1000); // 1 Sekunde warten
digitalWrite(13, LOW); // LED ausschalten
delay(1000); // 1 Sekunde warten
}