Ein "Shield" ist eine Aufsatzplatine, die man direkt auf einen Arduino steckt. Das Rich Shield (Version 1) vereint eine Vielzahl von Sensoren und Bauteilen auf einer einzigen roten Platine. Du musst also keine einzelnen Kabel ziehen oder Bauteile mühsam auf ein Breadboard stecken alles ist bereits fest verlötet und einsatzbereit.
Was kann das rich shield V1 und welche Pins sind belegt?
- Anzeige: Ein 4-stelliges Siebensegment-Display (TM1637)
- D10 / D11
- Interaktion: Zwei gelbe Taster (K1 & K2) und ein Drehpotentiometer (Knob)
- D8 / D9 / A0
- Sensoren: Ein DHT11 für Temperatur und Luftfeuchtigkeit, ein Lichtsensor (LDR) und ein Temperatursensor (NTC).
- D12 / A2 / A1
- Feedback: Vier farbige LEDs (Rot, Gelb, Blau, Grün) und ein passiver Buzzer für Töne und Alarme.
- D4 / D5 / D6 / D7 / D3
- Infrarot: Ein IR-Empfänger, um das Board mit einer Fernbedienung zu steuern.
- D2
- Erweiterbarkeit: Anschlüsse für I2C-Geräte und ein Spannungssensor-Terminal.
- I2C-Bus / A3
Warum sind solche Shields so wichtig beim Programmieren lernen?
Viele Anfänger scheitern zu Beginn nicht an der Logik des Codes, sondern an der Hardware: Ein Kabel sitzt locker, ein Widerstand ist falsch berechnet oder eine LED ist verpolt. Das führt zu Frust, weil man nicht weiß, ob der Fehler im Programm oder im Aufbau liegt. Das Rich Shield löst dieses Problem durch vier entscheidende Vorteile:
- Fokus auf den Code: Da die Hardware garantiert funktioniert, kannst du dich zu 100% auf das Schreiben und Verstehen deiner Programme konzentrieren.
- Kein Kabelsalat: Dein Arbeitsplatz bleibt aufgeräumt. Du kannst dein Projekt einfach in die Tasche stecken und woanders weiterarbeiten, ohne dass sich Drähte lösen.
- Schnelle Erfolgserlebnisse: Innerhalb von Minuten kannst du eine Wetterstation, eine Stoppuhr oder ein Licht-Theremin bauen. Diese schnellen Ergebnisse motivieren ungemein, tiefer in die Materie einzusteigen.
- Fertiger Code: Auf dieser Seite findest sehr viele fertige Code Ideen für das rich shield an denen du dich orientieren kannst, wenn mal etwas nicht so klappt wie es sollte.
Tutorials und Code:
Tastendrücke zählen und als Wert auf der 4x7 Segment Anzeige ausgeben
Potiwert auf der 4x7 Segment Anzeige ausgeben
Spickzettel für das 4x7 Segment Display mit TM1637Display.h
Tastendrücke zählen und als Wert auf der 4x7 Segment Anzeige ausgeben.
Dieser Code läuft in einer endlosen Schleife und prüft ständig, ob die Taster gedrückt werden. Wird der Taster K1 gedrückt, erkennt der Arduino einen Wechsel von nicht gedrückt auf gedrückt. Um mechanisches Prellen zu verhindern, pausiert das Programm kurz mit delay(50), bevor es den Zählerstand um eins erhöht und auf dem Display aktualisiert. Falls der Zähler dabei über 9999 steigt, wird er automatisch zurück auf 0 gesetzt und eine rote LED zur Warnung eingeschaltet. Wird stattdessen K2 gedrückt, wartet der Arduino ebenfalls kurz zur Entprellung, setzt den Zähler sofort auf 0, aktualisiert das Display und schaltet die Warn-LED wieder aus. Während dieser kurzen Pausen durch delay kann der Arduino keine anderen Befehle entgegennehmen, was für diese Anwendung jedoch unproblematisch ist.
Der Arduino Code für das rich shield mit TM1637Display mit Delay
Der Arduino Code für das rich shield mit TM1637Display ohne Delay und mit Millis
Werte des Poti (Potentiometer) an A0 auf der 4x7 Segment Anzeige und flackern verhindern
Dieser Code ist der Grundbaustein für viele interaktive Arduino-Projekte. Er verwandelt dein Rich Shield in ein digitales Messgerät: Der Arduino liest die Stellung des Drehreglers (Potentiometer) am analogen Pin A0 aus und übersetzt die Spannung in einen Zahlenwert von 0-1013, den er dann live auf dem 7-Segment-Display anzeigt.
Warum die Anzeige bei diesem Code "flattert"
Dass die Zahlen auf dem Display ständig zwischen zwei Werten hin- und herspringen (z. B. zwischen 512 und 513), liegt nicht an deinem Code, sondern an der Physik. Man nennt das analoges Rauschen:
- Elektrische Schwankungen: Winzige Spannungsänderungen im Millivolt-Bereich sorgen dafür, dass der Analog-Digital-Wandler des Arduino mal den einen, mal den nächsten Wert erfasst.
- Abtastrate: Da dein loop() extrem schnell läuft, versucht das Display, jede noch so kleine Änderung sofort anzuzeigen. Das Auge nimmt das als nervöses Flackern wahr.
Der Arduino Code für das rich shield mit TM1637Display um den Wert des Poti anzuzeigen
Der Arduino Code für das rich shield mit TM1637Display um den Wert des Poti anzuzeigen mit einfacher Flackerunterdrückung
Lösung 1: Der feste Schwellenwert (Hysterese)
Du definierst einen festen Bereich (z. B. 10). Nur wenn sich der Wert um mehr als diesen Betrag ändert, darf das Display aktualisieren.
- Der Haken: In der Nähe von 0 oder 1023 wird es ungenau, da man diese Extremwerte oft gar nicht mehr erreicht, wenn der letzte Sprung zu klein war. Deshalb braucht man dort zusätzliche Ausnahmen wie potiA0 <= 10.
- Fazit: Funktioniert gut, fühlt sich aber "starr" an.
Der Der Arduino Code für das rich shield mit TM1637Display um den Wert des Poti anzuzeigen mit dynamischer Flackerunterdrückung
Hier berechnest du die Toleranzgrenze mathematisch aus dem aktuellen Wert selbst, z. B. mit der Formel:

- /, geteilt durch 20, wie ich es im Code verwendete habe ist ein guter Mittelwert.
- Der Vorteil: Bei hohen Zahlen (wo kleine Fehler egal sind) ist die Bremse stark. Bei kleinen Zahlen wird die Schwelle automatisch winzig, wodurch die Anzeige feinfühliger reagiert.
- Das "+ 2": Dies dient als Grundrausch-Filter, damit selbst bei einem Wert von 0 noch eine minimale Dämpfung aktiv bleibt.
Der Arduino Spikzettel für die TM1637Display.h





