kk logo

Die R4_LogicKiste ist eine visuelle Programmierumgebung, die speziell für den Arduino UNO R4 WiFi entwickelt wurde. Anstatt C++ Code von Hand tippen zu müssen, steckst du das Programm aus Logik-Blöcken zusammen.

Wie funktioniert das?

Das Herzstück der LogicKiste ist ein intelligenter Generator, der direkt im Browser läuft. Während Blöcke auf die Arbeitsfläche gezogen werden, übersetzt das System die Logik im Hintergrund in C++ Code. Du lernst das EVA-Prinzip (Eingabe, Verarbeitung, Ausgabe) intuitiv kennen und kannst dir den Code ansehen, um den Übergang zur Textprogrammierung zu meistern.

Online vs offline

Die gesamte Code-Generierung passiert lokal im Browser. Du hast zwei Möglichkeiten:

Variante A: Online nutzen (Im Browser)

Die LogicKiste wird über die Webseite aufgerufen. Es ist keine Installation nötig. Den generierten Code kannst du über "Code kopieren" in die Arduino IDE einfügen und hochladen.

Variante B: Offline nutzen (Lokal auf dem PC)

Du kannst die Projektdateien herunterladen, den Ordner entpacken und die Datei index.html im Browser öffnen. So ist die LogicKiste komplett lokal und ohne Internetverbindung nutzbar.

LogicKiste – Block Referenzhandbuch

Hier findest du die vollständige Dokumentation aller verfügbaren Programmierblöcke der LogicKiste. Jeder Block ist genau beschrieben, inklusive Hinweisen zur Kompatibilität für deine Arduino-Hardware.

1. Kategorie: Board

Arduino Programmstruktur arduino_main

Beschreibung: Das zwingende Grundgerüst für dein Programm. Enthält das Setup (wird einmalig ausgeführt) und die Loop-Schleife (wird endlos wiederholt).
Praxis Beispiel: Initialisiere Sensoren im Setup und lese sie im Loop aus.
Hinweis: Darf nur einmal im Programm vorkommen!
R3 kompatibel: JA

PC Interrupt board_pc_interrupt

Beschreibung: Unterbricht das laufende Programm sofort, sobald sich der Zustand an einem Pin ändert. Perfekt, um keine schnellen Signale zu verpassen.
Praxis Beispiel: Auslesen eines schnellen Dreh-Encoders oder Durchflussmessers.
Hinweis: Keine langen Delays innerhalb dieses Blocks verwenden.
R3 kompatibel: JA

Kommentar kommentar

Beschreibung: Fügt einen Text-Kommentar in deinen Workspace ein. Dieser wird beim Kompilieren direkt als C++ Kommentar übernommen.
Praxis Beispiel: Dokumentiere dir, dass Pin 4 für das Hauptrelais zuständig ist.
R3 kompatibel: JA

2. Kategorie: Steuerung

WENN (If) logic_if

Beschreibung: Führt den enthaltenen Code nur aus, wenn die angegebene Bedingung WAHR ist.
Praxis Beispiel: WENN der Taster gedrückt ist, schalte die LED ein.
R3 kompatibel: JA

WENN / SONST logic_if_else

Beschreibung: Wie der WENN-Block, bietet aber einen alternativen Code-Pfad an, falls die Bedingung FALSCH ist.
Praxis Beispiel: WENN es dunkel ist -> Licht an, SONST -> Licht aus.
R3 kompatibel: JA

Wiederhole X-mal loop_repeat

Beschreibung: Eine Zählschleife, die den Code exakt so oft ausführt, wie du als Zahl vorgibst.
Praxis Beispiel: Lasse einen Piezosummer 3-mal piepen.
R3 kompatibel: JA

Zähle mit (For) loop_for

Beschreibung: Erhöht eine Zählvariable von einem Startwert bis zu einem Endwert. Nützlich für Tabellen oder Arrays.
Praxis Beispiel: Schalte nacheinander die LEDs an den Pins 2 bis 9 ein.
R3 kompatibel: JA

Solange (While) ard_loop_while

Beschreibung: Wiederholt den Code so lange, wie eine Bedingung erfüllt bleibt. Vorsicht vor Endlosschleifen!
Praxis Beispiel: Pumpe so lange Wasser, bis der Schwimmerschalter auslöst.
R3 kompatibel: JA

Verzweigung (Switch) ard_switch

Beschreibung: Prüft eine Variable auf verschiedene exakte Werte. Effizienter als viele verschachtelte WENN-Abfragen.
Praxis Beispiel: Baue eine Menüführung: Wert 1 = Setup, Wert 2 = Run, Wert 3 = Stop.
R3 kompatibel: JA

Fall (Case) ard_case

Beschreibung: Definiert einen einzelnen, konkreten Wert, auf den die Switch-Verzweigung reagieren soll.
R3 kompatibel: JA

Standardfall (Default) ard_default

Beschreibung: Der Notfall-Zweig der Switch-Verzweigung. Wird ausgeführt, wenn kein einziger "Fall" gepasst hat.
R3 kompatibel: JA

2b. Kategorie: Zeit & Multitasking

Warte ms (Delay) delay_ms

Beschreibung: Pausiert den kompletten Controller für Millisekunden. In dieser Zeit reagiert das Board auf nichts.
Praxis Beispiel: Halte das Programm für 1000ms an.
Hinweis: Blockiert den Programmfluss!
R3 kompatibel: JA

Warte µs delay_micros

Beschreibung: Pausiert extrem kurz im Mikrosekunden-Bereich. Wichtig für sehr schnelle Signale oder Sensor-Protokolle.
R3 kompatibel: JA

Systemzeit (millis) ard_time_sys

Beschreibung: Liefert die Zeit in Millisekunden zurück, die vergangen ist, seit der Arduino gestartet wurde.
R3 kompatibel: JA

Stoppuhr definieren stopwatch_define

Beschreibung: Erstellt eine interne Stoppuhr, um Zeitspannen zu messen, ohne das Programm zu blockieren.
R3 kompatibel: JA

Stoppuhr Befehl stopwatch_command

Beschreibung: Steuert die definierte Stoppuhr (Start, Stop, Reset).
R3 kompatibel: JA

Stoppuhr lesen stopwatch_read

Beschreibung: Liest den aktuell gemessenen Wert der Stoppuhr aus.
R3 kompatibel: JA

Blinker Setup ard_blinker_define

Beschreibung: Definiert ein Multitasking-Blinkintervall. Ersetzt das fehleranfällige Arbeiten mit "delay".
R3 kompatibel: JA

Blinker ausführen ard_blinker

Beschreibung: Prüft kontinuierlich im Loop, ob die Zeit für einen Blink-Wechsel gekommen ist.
R3 kompatibel: JA

Blinker Zustand lesen ard_blinker_get

Beschreibung: Fragt ab, ob der Blinker-Takt aktuell auf HIGH oder LOW steht.
R3 kompatibel: JA

RTC Setup ard_rtc_setup

Beschreibung: Startet die interne Echtzeituhr.
Hinweis: Nutzt die spezielle Hardware der neuen Boards!
R3 kompatibel: NEIN (Nur R4)

RTC Lesen ard_rtc_read

Beschreibung: Ruft die aktuelle Uhrzeit oder das Datum aus der internen Uhr ab.
R3 kompatibel: NEIN

RTC Schreiben ard_rtc_write

Beschreibung: Stellt die interne Uhr auf einen von dir gewählten Zeitpunkt ein.
R3 kompatibel: NEIN

3. Kategorie: Eingänge

Setup Pullup ard_setup_pullup

Beschreibung: Aktiviert den internen Widerstand des Controllers. Taster schalten dadurch sauber gegen GND (Masse).
R3 kompatibel: JA

Digital Lesen ard_read_digital

Beschreibung: Liest den Zustand eines Pins als HIGH oder LOW aus.
R3 kompatibel: JA

Analog Lesen read_analog

Beschreibung: Wandelt eine Spannung an Pin A0-A5 in einen Zahlenwert um (0-1023).
R3 kompatibel: JA

Analog Glätten analog_smooth

Beschreibung: Nimmt mehrere Messungen vor und berechnet den Durchschnitt. Filtert unruhige Sensorsignale.
R3 kompatibel: JA

Zähler / Entprellen input_counter

Beschreibung: Zählt saubere Tasten-Klicks hoch, ohne dass "Prellen" (mechanisches Flackern) zu Fehlzählungen führt.
R3 kompatibel: JA

Rotary Encoder input_encoder

Beschreibung: Liest die Drehrichtung eines Endlos-Drehgebers (Encoder) fehlerfrei aus.
R3 kompatibel: JA

DHT Sensor read_dht

Beschreibung: Liest Temperatur und Luftfeuchtigkeit von einem DHT11 oder DHT22 Sensor.
Hinweis: DHT Bibliothek wird im Hintergrund geladen.
R3 kompatibel: JA

Ultraschall read_ultrasonic

Beschreibung: Sendet einen Schallimpuls und berechnet anhand der Echo-Laufzeit die Distanz in Zentimetern (HC-SR04).
R3 kompatibel: JA

Gyro Setup (MPU6050) gyro_setup

Beschreibung: Initialisiert den I2C-Lagesensor.
R3 kompatibel: JA

Gyro Lesen gyro_read

Beschreibung: Ruft die aktuellen Neigungswinkel (X, Y, Z) des MPU6050 ab.
R3 kompatibel: JA

RFID Setup (RC522) ard_rfid_setup

Beschreibung: Startet den SPI-Bus für das RFID Chip-Kartenlesegerät.
R3 kompatibel: JA

RFID Karte prüfen ard_rfid_on_card

Beschreibung: Prüft, ob gerade ein Chip auf das Lesegerät gelegt wurde.
R3 kompatibel: JA

RFID ID auslesen ard_rfid_get_id

Beschreibung: Liest die einmalige Seriennummer (UID) des aufgelegten Chips aus.
R3 kompatibel: JA

4. Kategorie: Ausgänge

Digital Schreiben write_digital

Beschreibung: Schaltet die Spannung an einem Pin ein (HIGH) oder aus (LOW).
R3 kompatibel: JA

PWM / Analog Out write_analog

Beschreibung: Erzeugt ein Pulsweiten-Signal zum Dimmen von LEDs oder Regeln von Motoren (0-255).
Hinweis: Nur an Pins mit dem Wellen-Symbol (~) möglich.
R3 kompatibel: JA

Ton ausgeben output_tone

Beschreibung: Lässt einen Piezo-Buzzer in einer bestimmten Frequenz (Herz) klingeln.
R3 kompatibel: JA

Servo Position out_servo

Beschreibung: Bewegt einen Modellbau-Servo direkt auf einen Winkel zwischen 0 und 180 Grad.
R3 kompatibel: JA

Servo Rampe out_servo_ramp

Beschreibung: Fährt den Servo langsam und weich an die Zielposition.
R3 kompatibel: JA

Servo Attach/Detach out_servo_attach / detach

Beschreibung: Aktiviert oder schaltet den Servo-Motor stromlos.
R3 kompatibel: JA

Stepper Setup & Move stepper_*

Beschreibung: Definiert und verfährt einen Schrittmotor exakt um die angegebene Anzahl an Steps.
R3 kompatibel: JA

NeoPixel Setup & Befehle neopixel_*

Beschreibung: Steuert einzeln adressierbare WS2812 RGB-LEDs über die FastLED Bibliothek. Vergiss nicht den `neopixel_show` Block zum Anzeigen!
R3 kompatibel: EINGESCHRÄNKT (Arbeitsspeicher beachten!)

R4 Onboard Matrix r4_matrix_*

Beschreibung: Steuert die 12x8 LED-Matrix an, die direkt auf deinem Arduino Uno R4 WiFi verbaut ist. Hier lassen sich Symbole, Pixel und Text abspielen.
Hinweis: Exklusiv für R4 Hardware.
R3 kompatibel: NEIN

MAX7219 Matrix max7219_*

Beschreibung: Betreibt klassische 8x8 LED-Punktmatrizen über den SPI-Bus für Laufschriften und Symbole.
R3 kompatibel: JA

I2C LCD Display setup_lcd_i2c / out_lcd_*

Beschreibung: Textausgabe auf den Standard 16x2 oder 20x4 LCD Bildschirmen.
R3 kompatibel: JA

TFT Color Displays tft_setup_*

Beschreibung: Zeichnet bunte Formen und Grafiken auf ST7735 oder ILI9486 Bildschirmen.
R3 kompatibel: EINGESCHRÄNKT (RAM Limit)

TM1637 (4-Digit) ard_visu_tm1637_*

Beschreibung: Kompakte 4-stellige 7-Segment-Anzeige. Ideal für digitale Uhren oder kleine Zähler.
R3 kompatibel: JA

TM1638 Mod 1 & Mod 2 ard_visu_tm1638_*

Beschreibung: Steuert große Platinen mit 8 Segmentanzeigen, 8 LEDs und 8 Tastern. Bietet Abfrageblöcke für das Tastaturfeld.
R3 kompatibel: JA

OLED 128x64 ard_oled_*

Beschreibung: Textbasiertes SSD1306 Display. Dank der Ascii-Bibliothek sehr speicherschonend.
R3 kompatibel: JA

5. Kategorie: Logik & Mathematik

Vergleichen ard_logic_compare

Beschreibung: Vergleicht zwei Werte miteinander (größer, kleiner, gleich). Gibt WAHR oder FALSCH aus.
R3 kompatibel: JA

Verknüpfen (UND/ODER) ard_logic_operation

Beschreibung: Kombiniert zwei Bedingungen. (Taster1 gedrückt UND Taster2 gedrückt).
R3 kompatibel: JA

Umkehren (NICHT) ard_logic_negate

Beschreibung: Dreht einen Zustand um. Aus WAHR wird FALSCH.
R3 kompatibel: JA

Grundrechenarten ard_math_arithmetic

Beschreibung: Plus, Minus, Mal, Geteilt.
R3 kompatibel: JA

Umskalieren (Map) ard_math_map

Beschreibung: Wandelt einen Wertebereich in einen anderen um. Z.b. Poti (0-1023) in Servo-Winkel (0-180).
R3 kompatibel: JA

Zufallszahlen ard_math_random_*

Beschreibung: Generiert eine unvorhersehbare Zahl in deinem angegebenen Bereich.
R3 kompatibel: JA

Erweiterte Mathe math_*

Beschreibung: Pi, Wurzeln, Potenzen und Typkonvertierungen (Single/Double).
R3 kompatibel: JA

6. Kategorie: Variablen & Tabellen

Text / Zahl Literal var_text_literal

Beschreibung: Ein festgeschriebener Text oder eine feste Zahl, die du an andere Blöcke andocken kannst.
R3 kompatibel: JA

Deklarieren & Setzen var_declare / var_set

Beschreibung: Erschafft einen neuen Speicherplatz (Deklarieren) und füllt ihn mit Werten (Setzen).
R3 kompatibel: JA

Interrupt Variable var_declare_interrupt

Beschreibung: Deklariert eine Variable als "volatile". Das ist zwingend nötig, wenn die Variable im PC Interrupt Block verändert wird!
R3 kompatibel: JA

Tabellen / Arrays array_declare / _read / _write

Beschreibung: Legt eine Liste von Werten an. Du kannst gezielt auf Platz 1, Platz 2 usw. zugreifen.
Praxis Beispiel: Speichere 5 gemessene Temperaturwerte in einer Reihe.
R3 kompatibel: JA

7. Kategorie: Unterprogramme

Funktion definieren ard_function_define

Beschreibung: Lagert Code aus dem Haupt-Loop in einen eigenen Container aus. Das macht den Code übersichtlich.
R3 kompatibel: JA

Funktion aufrufen ard_function_call

Beschreibung: Springt aus dem Loop in dein Unterprogramm und führt den dortigen Code aus.
R3 kompatibel: JA

Funktion mit Rückgabe ard_function_*_return

Beschreibung: Wie oben, aber am Ende des Unterprogramms wird dir ein errechneter Wert (z.B. eine Zahl) an den Haupt-Loop zurückgeschickt.
R3 kompatibel: JA

8. Kategorie: Erweitert

Serial Console ard_serial_*

Beschreibung: Startet die Kommunikation zum PC. Ideal, um Fehler zu suchen und Variablen im Seriellen Monitor am PC anzuzeigen.
R3 kompatibel: JA

EEPROM Lesen/Schreiben ard_eeprom_*

Beschreibung: Speichert Werte dauerhaft ab. Sie bleiben auch erhalten, wenn der Arduino vom Strom getrennt wird.
R3 kompatibel: JA

SD Karte ard_sd_*

Beschreibung: Erlaubt das Beschreiben und Auslesen von Micro-SD Karten über ein SPI-Modul (Daten-Logger).
R3 kompatibel: JA

Eigener Code ard_custom_code_*

Beschreibung: Falls dir ein Block fehlt, kannst du hier puren C++ Code direkt in die LogicKiste eintippen. Wahlweise global oder inline.
R3 kompatibel: JA

9. Kategorie: WLAN

WLAN Setup web_setup

Beschreibung: Konfiguriert dein R4 Board als Access-Point oder verbindet es mit dem Heimnetzwerk.
Hinweis: Nur für WLAN fähige Boards.
R3 kompatibel: NEIN

Webserver Listen web_listen

Beschreibung: Horcht im Hintergrund permanent auf eingehende Anfragen vom Browser oder Smartphone.
R3 kompatibel: NEIN

Feste IP vergeben web_ip

Beschreibung: Weist dem Arduino eine statische Adresse zu.
Hinweis: In diesem System ist als Standard-IP immer die 192.168.0.50 vorgesehen!
R3 kompatibel: NEIN

Status / Verbindung web_status_read

Beschreibung: Gibt zurück, ob das Board erfolgreich mit dem Router verbunden ist.
R3 kompatibel: NEIN

Daten zum Web web_digital_write / web_analog_write

Beschreibung: Sendet Sensorwerte oder Schalter-Zustände aktiv an die Webseite, die vom Board gehostet wird.
R3 kompatibel: NEIN

Daten vom Web web_digital_read / web_analog_read

Beschreibung: Empfängt Befehle von der Webseite (z.B. Button auf dem Smartphone gedrückt), um Hardware am Arduino zu schalten.
R3 kompatibel: NEIN

 

 

Kontakt

visitenkarte

Ronnie

schwäbischer tüftler und bastler, kraftsportler, neurodivers, 45 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

1.2 ronnie berzins