Es gibt von Arduino ganz neu das Arduino Plug and Make Kit, dieses enthält alles, was du für den Start in die Mikrocontrollerprogrammierung benötigst. Was in diesem Kit enthalten ist und wie du die Sensoren & Aktoren am mitgelieferten Arduino UNO R4 WiFi programmierst, erfährst du in den nächsten Abschnitten hier im Beitrag.
Inhaltsverzeichnis
- Was ist im Arduino Plug and Make Kit drin?
- Einrichten des Arduino UNO R4 WiFi in der Arduino IDE
- Aufbau einer Schaltung
- Programmieren der Sensoren / Aktoren in der Arduino IDE
Was ist im Arduino Plug and Make Kit drin?
Das Kit enthält neben einem Arduino UNO R4 WiFi nachfolgende Sensoren & Aktoren:
- einen Rotary Encoder (mit Push Funktion)
- einen Piezo Buzzer
- ein Modul mit 3 Taster
- ein Temperatur & rel. Luftfeuchtigkeits-Sensor
- ein Distanzsensor Typ VL53L4CD
- ein Modul mit 8 RGB LEDs
- einen 6-Achsen Lagesensor
Zusätzlich findest du am Arduino UNO R4 WiFi noch:
- eine 8×12 LED Matrix (in rot),
- einen ESP32-S3-Mini
Zusätzlich findest du noch eine Modulino Base, auf welche du den Mikrocontroller und deine Schaltung mit den Sensoren & Aktoren aufschrauben kannst. Das sorgt dafür, dass deine Schaltung auf dem Schreibtisch nicht wild umherfliegt.
Es ist dafür alles enthalten, du benötigst hier nur noch einen kleinen Kreuzschraubendreher (Größe PH0) und einen Maulschlüssel (Schlüsselweite 5,5).
Die Sensoren werden über eine I2C Qwiic Schnittstelle mit dem Mikrocontroller verbunden und daher enthält das Kit zusätzlich noch einige Anschlusskabel.
Einrichten des Arduino UNO R4 WiFi in der Arduino IDE
Dem Kit liegt wie gezeigt ein Arduino UNO R4 WiFi bei, dieser ebenso neue Mikrocontroller verfügt über eine WiFi & Bluetooth Schnittstelle sowie eine LED Matrix schon allein damit könnte man viele Wochenenden verbringen und IoT Projekte umsetzen.
Bevor wir mit den ersten Schaltungen beginnen, richten wir diesen in der Arduino IDE ein, dieses ist bei der Version 2.x besonders einfach geworden.
Aufbau einer Schaltung
Zunächst möchte ich eine kleine Schaltung mit dem 8fach LED Modul sowie dem Rotary Encoder aufbauen. Über den Rotary Encoder kann man zum Beispiel die Geschwindigkeit eines Lauflichts oder die Helligkeit der LEDs steuern. Zusätzlich verfügt der Rotary Encoder noch über ein Tast-Event welches wir ebenso verwenden können, um die Farbe zu wechseln.
Die Sensoren & Aktoren am Arduino UNO R4 WiFi werden über die Qwiic Schnittstelle verbunden. Das Gute an dieser Schnittstelle ist, dass du die Module kaskadierend hintereinander verbinden kannst. (Im Bild siehst du zwei Module, welche miteinander verbunden sind.)
Programmieren der Sensoren / Aktoren in der Arduino IDE
Damit wir die Module in der Arduino IDE programmieren können, benötigen wir eine zusätzliche Bibliothek. Diese lässt sich über den internen Bibliotheksverwalter mit wenigen Klicks installieren.
Zunächst wählst du den Bibliotheksverwalter (1) und suchst dort nach “modulino” (2). Du solltest nun die Schaltfläche “INSTALLIEREN” an der Position 3 finden.
Ich werde jedem Modul im Kit einen separaten Beitrag & Video widmen, hier möchte ich dir nachfolgend an zwei Beispielen zeigen, wie diese programmiert werden.
Auf der Seite https://courses.arduino.cc/plugandmake/ findest du viele coole Beispiele zu diesem Kit und der Arduino Cloud.
Beispiel 1 – Programmieren der LEDs
Am 8fach RGB LED Modul kannst du jede LED in diversen Farben anzeigen. Ebenso kannst du dort kleine Leuchteffekte für ein Lauflicht oder Fading programmieren. Ebenso kannst du über dieses auch die Werte des Distanz-Sensors oder Temperatursensors visualisieren.
//Bibliothek zum steuern / lesen //der Modulino Module #include <Modulino.h> //Objekt vom Typ ModulinoPixels erzeugen //in diesem Fall das 8fach LED Modul ModulinoPixels leds; //Ablegen von Objekten mit einem RGB-Farbwert ModulinoColor colorBlue(0, 0, 255); ModulinoColor colorRed(255, 0, 0); ModulinoColor colorGreen(0, 255, 0); ModulinoColor colorYellow(255, 255, 0); ModulinoColor colorPurple(128, 0, 128); ModulinoColor colorCyan(0, 255, 255); ModulinoColor colorOlive(128, 128, 0); ModulinoColor colorNavy(0, 0, 128); //Konstante für die Helligkeit der LEDs const int HELLIGKEIT = 10; void setup() { //beginn der I2C Kommunikation Modulino.begin(); //begin der I2C Kommunikation mit dem LED Modul leds.begin(); //setzen der Farbe an der LED //erster Parameter, der Index der LED //zweiter Parameter, die Farbe //dritter Parameter, die Helligkeit leds.set(0, colorBlue, HELLIGKEIT); leds.set(1, colorRed, HELLIGKEIT); leds.set(2, colorGreen, HELLIGKEIT); leds.set(3, colorYellow, HELLIGKEIT); leds.set(4, colorPurple, HELLIGKEIT); leds.set(5, colorCyan, HELLIGKEIT); leds.set(6, colorOlive, HELLIGKEIT); leds.set(7, colorNavy, HELLIGKEIT); //Der Wert für die Helligkeit kann entfallen, //da hier ein Default-Wert von 25 hinterlegt wurde! //Anzeigen der Farben leds.show(); } void loop() { //bleibt leer }
Beispiel 2 – steuern eines Lauflichts mit dem Knob
Am 8fach LED Modul habe ich ein kleines Lauflicht programmiert, welches mit dem Knob / Rotary Encoder in der Geschwindigkeit gesteuert werden kann. Da der Knob noch zusätzlich über ein Tast-Event verfügt, können wir diesen nutzen, um die Farbe zu wechseln.
//Bibliothek zum steuern / lesen //der Modulino Module #include <Modulino.h> //Objekt vom Typ ModulinoPixels erzeugen //in diesem Fall das 8fach LED Modul ModulinoPixels leds; //Objekt vom Typ ModulinoKnob erzeugen //in diesem Fall der Rotary Encoder ModulinoKnob knob; //Ablegen von Objekten mit einem RGB-Farbwert ModulinoColor colorBlue(0, 0, 255); ModulinoColor colorRed(255, 0, 0); ModulinoColor colorGreen(0, 255, 0); //Erzeugen eines Arrays mit den Farben ModulinoColor colors[] = { colorBlue, colorRed, colorGreen }; //Wert für die Helligkeit const int HELLIGKEIT = 5; //Feld für die Pause, //Der Wert wird aus der Position des Knob //berechnet. int pause = 0; //Aktueller Index für die Farbe int index = 0; //Konstante mit der maximalen Anzahl der Farben. const int MAX_COLORS = 2; void setup() { //beginn der I2C Kommunikation Modulino.begin(); //begin der I2C Kommunikation mit dem LED Modul leds.begin(); //begin der I2C Kommunikation mit dem Rotary Encoder knob.begin(); } //Funktion zum deaktivieren der LEDs void ledsOff(ModulinoColor color) { for (int led = 0; led < 8; led++) { leds.set(led, color, 0); } leds.show(); } //Funktion zum anzeigen einer Farbe void setLEDColor(ModulinoColor color, int index) { leds.set(index, color, HELLIGKEIT); leds.show(); delay(pause); } void loop() { //auslesen der Position vom Knob int position = knob.get(); //berechnen der Pause aus der Position pause = (position > 0 ? position : 1) + 25; //entnehmen der Farbe aus dem Array mit //dem aktuellen Index ModulinoColor color = colors[index]; //Wenn der Knob gedrückt wird, dann... if (knob.isPressed()) { //prüfen ob der aktuelle Index gleich //der maximalen Farbe ist, dann... if (index == MAX_COLORS) { //Wert des Index auf -1 setzen. index = -1; } //erhöhen des Index um 1 index++; } //Schleife über die LEDs //von links nach rechts (von 0 bis 7) for (int led = 0; led < 8; led++) { //setzen der Farbe an der LED setLEDColor(color, led); } //deaktivieren der LEDs ledsOff(color); //Schleife über die LEDs //von rechts nach links (von 7 bis 0) for (int led = 7; led >= 0; led--) { setLEDColor(color, led); } //deaktivieren der LEDs ledsOff(color); }
Super dein Blog! Bin gespannt, wie es weiter geht. Konnte mit dem Kit (Geburtstagsgeschenk) nichts anfangen -Danke an dich!!!