{{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 }