kk logo

Mit dem Arduino Shield HW-262 auch zu finden unter Arduino Multi-Funktion Shield oder unter TS1003L Multifunktionale Erweiterungsplatine, kannst du für unter 2 Euro eine Menge über den Arduino und das Programmieren mit Ardublock lernen. Dieses Shield bietet neben einer 4 stelligen Anzeige, einem Summer, 4 LEDs, 3 Tastern auch noch Schnittstellen für Servomotoren, Temperaturfühler , Bluetooth und einiges mehr.

Wir werden natürlich die Taster und den Poti auslesen, die LEDs leuchten lassen aber vor allem möchte ich mit dir eine Stoppuhr programmieren, die Helligkeit der LEDs regeln, die Temperatur messen und anzeigen lassen, eine Polizeisirene wird zu hören sein und noch vieles mehr.  Wie der Name SHIELD schon sagt wird das HW-262 einfach auf den Arduino gesteckt, mehr musst du nicht tun. Solltest du einen Arduino UNO verwenden der einen USB B Anschluss hat, musst du auf die USB Buchse etwas Klebeband kleben, da es sonst einen Kurzschluss über das Metallgehäuse der Buchse gibt. 

Die verschiedenen Anschlussmöglichkeiten des Multi-Funktion Shield für den Arduino

  • Kompatibel mit UNO, LENARDO und 2560 Controller
  • 4x Sieben-Segment Anzeige über zwei 74HC595 AD ICs
  • DS18B20-Temperatursensorschnittstelle
  • LM35-Temperatursensorschnittstelle
  • Spindeltrimmer / Präzisionspotentiometer
  • Vier LEDs
  • Drei Tasten und eine Resett-Taste
  • Piezo Summer
  • Bluetooth, drahtlose Schnittstellen, Sprachmodul und Spracherkennungsmodul Schnittstelle
  • Servoschnittstelle
  • Sensoren- und Aktorenschnittstelle 

3 Arduino Multi Funktion Shield HW 262

Die Einzelnen Funktionen des Arduino Multi-Funktion Shield HW-262

LEDs und Summer

Beginnen kannst du mit der einfachsten Funktion des Shields, dem ein- und ausschalten der LEDs. Die LEDS sind mit den PINS 13,12,11 und 10 verbunden. Die LEDs sind aber nicht mit VCC sondern mit GND verbunden. Das beutetet, sendest du einen digitalWrite HIGH, dann ist die LED aus, sendest du eine digitalWrite LOW, ist die LED ein. 

5 Arduino Multi Funktion Shield HW 262

Die beiden LED an den PINs 10 und 11 sind PWM (Pulsweitenmodulation) Pins, diese können so schnell EIN und AUS geschaltet werden, damit die LED heller oder dunkler leuchtet. Sendest du einen analogWrite Befehl mit einem Wert zwischen 0 und 255 leuchtet die LED dunkler oder heller. Allerdings gilt wegen der Verschaltung, je kleiner die Zahl im Feld "Wert", desto dunkler leuchtet die LED. 

6 Arduino Multi Funktion Shield HW 262

Der Summer verwendet die gleichen digitalen Funktionen wie auch die LEDs. Über das digitalWrite HIGH und LOW, wir der Summer ein- und ausgeschaltet. Auch hier gilt wieder, bei LOW gibt der Summer einen TON ab und bei HIGH ist der Summer ausgeschaltet. 

7 Arduino Multi Funktion Shield HW 262

Damit von dem Summer nicht immer der gleichen TON zu hören ist, kann die Funktion TON verwendet werden. das Programm unten kommt schon relativ nahe an den Sound von Polizei oder Feuerwehr heran. Für verschiedene Tön kann auch die PWM Funktion verwendet werden. Allerdings dauert es damit länger um ein gutes Ergebnis zu erzielen. 

8 Arduino Multi Funktion Shield HW 262

Präzisionspotentiometer und Taster

Die Taster sind mit den analogen Eingängen A1, A2 und A3 verbunden. Normalerweise verwendest du für die Taster die digitalen Eingänge des Arduino, da der UNO aber nur 11 digitale I/O hat, ist es sinnvoll die analogen anstatt der digitalen Eingänge zu verwenden. Verwendest du eine analoge Variable, nimmst als Wert einen der drei analogen Eingänge A1, A2 oder A3 und lässt dir den Wert über ein Serial print anzeigen. So siehst du dass der Wert beim drücken des Tasters von 1023 nach 0 fällt. Somit weißt du wann der Taster gerückt ist und wann nicht. 

11 Arduino Multi Funktion Shield HW 262

Über eine "kleiner als" Funktion in einer "falls" Bedingung kannst du nun eine LED mit dem Taster 1 und 2  ein- und ausschalten. Der Wert 500, könnte natürlich auch kleiner oder größer sein. Das Programm würde mit 10 genauso funktionieren wie mit 1000. Ich habe hier den Wert "kleiner als 500" verwendet, weil er ziemlich genau in der Mitte von 0 und 1023 ist. Der Wert muss aber einfach nur "kleiner als" 1023 sein. 

10 Arduino Multi Funktion Shield HW 262

Möchtest du einzelnen Tastendrücke auswerten funktioniert das Programm oben nicht. Der Arduino fragt die Eingänge so schnell ab, das selbst ein kurzer Tastendruck als viele Tastendrücke erkannt werden. Verwendest du die Mathematische Funktion + in einer Variablen, so wird bei jedem "Durchgang" des Programmes, die Variable um eine Stelle nach oben gezählt. Lädst du das Programm unten auf den Arduino hoch und öffnest den Serial Monitor. Dann kannst versuchen wie schnell du bist, denn selbst bei ganz kurzem drücken der Taste, wird immer mehr als +1 gezählt. Und dabei ist der Arduino in seiner Rechnenleistung durch die Ausgabe im Serial monitor, schon um ein vielfaches langsamer also ohne. 

13 Arduino Multi Funktion Shield HW 262

Dieses mehrfach zählen eines Tasters nennet man "prellen". Und dieses "prellen" kann einfach durch Software verhindert werden. Über eine "solange" Funktion, wird nun alle 100 Millisekunden abgefragt ob der Taster immer noch gedrückt ist und erst wenn der Taster los gelassen wird. Dann wird eine +1 in der Variablen gezählt. Es gibt noch mehr Möglichkeiten Taster zu entprellen aber in Adblock ist dies eine einfache und gut  funktionierende variante. 

12 Arduino Multi Funktion Shield HW 262

Der so genannte Präzisionspotentiometer hat die Eigenschaft, das bei jeder Umdrehung der Wert nur minimal verändert wird. Ein Standard Potenziometer (Poti) hat einen Winkel von ca. 270 Grad, ein  Präzisionspotentiometer, kann mehrfach um 360 Grad gedreht werden. Der Poti auf dem Shield ist mit dem analogen Pin 0 des Arduino verbunden. Über eine Variable, wo als "Wert" der analogRead A0 eingetragen wird, können wir wir den Wert des Poti von 0 bis 1023 auslesen. 

15 Arduino Multi Funktion Shield HW 262

Vor allem der maximale Wert von 1023 kann oft nicht für den Arduino verwendet werden. Servomotoren haben einen Wert von 0-180 Grad, der PWM Pin des Arduino hat 0-255 Pulse. Willst du nun mit dem Poti die Helligkeit der LED ändern oder den Winkel eines Servomotors einstellen, geht das mit 0-1023 nicht. Dafür braucht es die "map" oder die "zuordnen" Funktion. Der unterschied zwischen "map" und "zuordnen" liegt nur darin, dass "map" eine feste Zuordnung von 0-1023 zu 0-255 hat, also für die PWM Pins gedacht ist. Während bei der "zuordnen" Funktion, die Werte frei eingestellt werden können. Im Programm unten kannst du Helligkeit der LED mit dem Poti von ganz aus, bis ganz hell einstellen. Zudem kannst du dir den errechneten bzw. zugeordneten Wert im Serial Monitor anschauen. 

16 Arduino Multi Funktion Shield HW 262

 4x Sieben-Segment Anzeige über zwei 74HC595AD des Arduino Shield

Da es für die Anzeige des Multi-Funktion Shield keine Blöcke in Ardublock gibt, musst du mit den "Code" Funktionen arbeiten. Das ist aber sehr einfach, weil du dir nur wenige Zeilen in Ardublock einfügen und drei Bibliotheken installieren musst. Die ersten vier Code Zeilen müssen in die Funktion "code im globalen Bereich" eingefügt werden. Alle weiteren Funktionen müssen mit der "code einfügen" Funktion eingefügt werden. 

17 Arduino Multi Funktion Shield HW 262

#include <TimerOne.h> / #include <Wire.h> / #include <MultiFuncShield.h> / Timer1.initialize(); / MFS.initialize(&Timer1);

Um auf dem Display Zahlen und Buchstaben ausgeben zu können, werden die folgenden Zeilen ebenfalls in die Funktion "code einfügen" eingefügt. Diese Funktionen kommen nun in den "setup" Teil deines Programmes. 

18 Arduino Multi Funktion Shield HW 262

  • MFS.write("text");  zeige einen Text
  • MFS.write(50); zeige eine Zahl
  • MFS.write(3.141, 3); zeige eine Dezimalzahl, Zahl hinter dem Komma bestimmt wie viele Stellen hinter dem Komma angezeigt werden
    • 3.141 , 3 / angezeigt wird 3.141
    • 3.141 , 2 / angezeigt wird 3.14
    • 3.141 , 1 / angezeigt wird 3.1
    • 3.141 , 0 / es kommt ein Fehler
  • MFS.write((int)variable); zeige eine Variable 
  • MFS.write((float)variable / 10, 1); zeigt eine Variable mit einer Kommastelle an

Lädst du das Programm unten auf den Arduino hoch, steht auf der Anzeige im Wechsel von 300 Millisekunden hy, du, da allerdings werden nicht alle Buchstaben klein geschrieben. Das kleine a wird als großes A angezeigt, das ist kein Fehler, sondern es gibt auf einer 7 Segmentanzeige einfach nicht alle Kleinbuchstaben. Hier wäre klein a und klein 0 einfach gleich!

20 Arduino Multi Funktion Shield HW 262

 

Zählst du nun jede Sekunde eine Variable um - eins von 60 herunter, dann hast du eine Stoppuhr mit einer Minute. Das herunterzählen darf natürlich nur so lange durch das Programm gemacht wie der Wert größer als 0 ist. Der Zähler wird über den Reset Taster neu gestartet. 

19 Arduino Multi Funktion Shield HW 262

 

Die Temperatur Schnittstelle des Multi-Funktion Shield HW-262 mit einem LM 35 auslesen 

 

Der  LM35 ist ein geläufiger und einfach zu nutzender Temperatursensor. Er benötigt keine weitere Hardware und kann mit dem Multi-Funktion Shield direkt ausgelesen werden. Der Sensor besitzt eine Genauigkeit von +-0,5°C bei Raumtemperatur und +-1°C über die gesamte Messreichweite von 0-150°C. Der größte Nachteil von diesem Sensor ist, dass er eine negative Vorspannung zum messen negativer Temperaturen unter 0°C benötigt. Für Projekte, die auch negative Temperaturen messen sollen, eignet sich daher ein DS18B20B Temperatursensor besser.

Der LM5 wird in den PIN J4 eingesteckt mit der flachen Seite Richtung Siebensegmentanzeige. Wichtig ist dass ein Jumper auf J1 gesteckt wird. Das ist der Pulldown Wiederstand für den analogen Eingang 4, an dem der LM35 gesteckt ist. 

Multi Funktion Shield LM35 tutorial

 

Der Wert vom LM35 wird in der (MFS.initLM35) Bibliothek in Fahrenheit gerechnet. Deshalb muss dieser Wert erst in Grad umgerechnet werden. Die Formel dazu lautet:

°C = (°F - 32) * 5/9 (von Fahrenheit in Celsius)

Über die Funktion (GET) wird dieser Wert in eine Variable geschrieben und danach mit der Formel oben in Grad Celsius umgerechnet. Danach wird dieser Wert auf dem Display angezeigt. 

Multi Funktion Shield LM35

Texte zum kopieren in Ardublock:

MFS.initLM35(SMOOTHING_MODERATE);

MFS.getLM35Data()

MFS.write((float)celsius_3 / 10, 1);

 

Die Bluetooth Schnittstelle des  Multi-Funktion Shield HW-262

 Folgt noch

King of my heart

Let the King of my heart
Be the mountain where I run
The fountain I drink from
Oh, He is my song

Ronnie

schwäbischer tüftler und bastler, kraftsportler, ADHS power, 43 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee