Prototype Shield mit Mini-Breadboard zum schnellen Aufbau von Schaltungen

Derzeit leistet dass Multi Function Shield, das ich ja bereits vorgestellt habe gute Dienste beim schnellen Aufbau und Ausprobieren meiner vielfältigen Sensoren.

Doch beim Modul KY-005 zum Senden von IR-Signalen musste ich feststellen, dass sich die beiden nicht so recht vertragen. Die für IR zuständige Library benutzt zwangsweise den GPIO D3 (hängt mit dem benutzten Timer zusammen), der beim MFS aber für den Buzzer zuständig ist. Das Aussenden von IR-Signalen führt also unweigerlich zu einer ohrenbetäubenden Pieperei.

Nun könnte man natürlich den Beeper auslöten und sockeln und einen Header für Pin 3 anlöten, aber das Auslöten ist nicht immer so einfach und man müsste jedesmal den Buzzer ausbauen.


Ich habe mich darum entschieden, die Schaltung ohne das Multi Function Shield zu realisieren.


Mir fehlte noch eine Plattform, auf der ich solche einfachen Winzig-Schaltungen schnell aufbauen konnte und die ich heute zusammenlöten möchte.

Die Grundlage liefert ein sogenanntes Prototype Shield, dem meist auch ein Mini Breadboard beiliegt und das für wenige Euro über eBay und Co. aus Fernost zu haben ist.

Das Mini-Breadboard passt genau in den Freiraum zwischen den Pfostensteckern, also den eigentlichen Lötbereich - den man damit natürlich verschenkt. Außerdem ist es selbstklebend. Wir kleben es so platzsparend wie möglich auf die Platine, damit es nicht mehr verrutscht.

So bleibt uns links daneben noch ein wenig Platz für drei weitere Taster - einen Taster (S1) und 2 LEDs (LED1 und LED2) bringt das Board bereits mit. So hat man Möglichkeiten zur Eingabe mit 4 Taster, etwa zur Menüauswahl (hoch, runter, auswählen, zurück) und zur rudimentären Status-Anzeige via den 2 LEDs.


Selbstverstädnlich die hinzugefügten Taster, aber auch den bereits vorhandenen und auch die LEDs muss man dann noch händisch auf der Unterseite mit den entsprechenden Eingängen verbinden. Ich habe mich für folgende Konfiguration entschieden: Die Taster stören nicht, wenn man sie nicht gebraucht. Man kann also auf desssen Verwendung verzichten und dann auch die Ports 8 bis 11 benutzen. Verwendet man sie, sollte man dann den internen Pullup-Widerstand einschalten #define PinS1 11 #define PinS2 10 #define PinS3 9 #define PinS4 8 void setup() { pinMode(PinS1, INPUT_PULLUP); pinMode(PinS2, INPUT_PULLUP); pinMode(PinS3, INPUT_PULLUP); pinMode(PinS4, INPUT_PULLUP); } Und auch die LEDs sollten keine Probleme machen. Sie blinken halt evtl. einfach mit, wenn man in die Verlegenheit kommt, auch Port 12 oder 13 benutzen zu müssen. So ermöglicht das Breadboard Eingabe und Ausgabe, ohne irgendwelche Pins zu sperren.

Für ein oder zwei Module sollte das Mini-Breadboard ausreichen, für "Größeres" muss man halt wieder ein großes Breadboard bemühen. Und für ganz einfache Sachen haben wir ja noch unser Multi Function Shield.



Source-Code

#define PinLED1 13 #define PinLED2 12 #define PinS1 11 #define PinS2 10 #define PinS3 9 #define PinS4 8 void setup() { pinMode(PinLED1, OUTPUT); pinMode(PinLED2, OUTPUT); pinMode(PinS1, INPUT_PULLUP); pinMode(PinS2, INPUT_PULLUP); pinMode(PinS3, INPUT_PULLUP); pinMode(PinS4, INPUT_PULLUP); } void loop() { int s = 0; if (digitalRead(PinS1) == LOW) s=1; if (digitalRead(PinS2) == LOW) s=2; if (digitalRead(PinS3) == LOW) s=3; if (digitalRead(PinS4) == LOW) s=4; for (int i=0; i < s; i++) { digitalWrite(PinLED1, HIGH); digitalWrite(PinLED2, HIGH); delay(200); digitalWrite(PinLED1, LOW); digitalWrite(PinLED2, LOW); delay(200); } }