Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Arduino Lektion 57: Multifunktionales Shield (Teil2)

Posted on 15. Juli 20186. März 2024 by Stefan Draeger

In diesem Tutorial möchte ich gerne ein weiteres Multifunktionales Shield vorstellen.

In dem Tutorial Arduino Lektion 36: Multifunktionales Shield habe ich bereits ein Multifunktionales Shield vorgestellt. Dieses mir nun vorliegende Modell hat jedoch einige andere Sensoren & Aktoren, welche mich zum Kaufen verleitet haben.

Auf dem Shield ist neben der Bezeichnung des Bauelementes auch der jeweilige Pin aufgedruckt, welcher benutzt werden muss. Dieses finde ich sehr gut und macht dieses Shield auch gleich für Anfänger (wohl die eigentliche Zielgruppe) interessanter.

  • Bezug
  • Sensoren & Aktoren
  • Montage auf dem Mikrocontroller
  • Betrieb am Arduino
  • Quellcode für die Sensoren & Aktoren
    • Digitale Bauelemente
      • Temperatur & Luftfeuchtigkeitssensor DHT11
        • Technische Daten
      • RGB LED
      • LEDs & Taster
      • Infrarot Empfänger
      • Buzzer
    • analoge Bauelemente
      • Temperatursensor LM35DZ
      • Fotowiderstand
      • Drehpotentiometer
  • Fazit

Bezug

Das Shield kann Bsp. bei ebay.de* für ca. 7 € bezogen werden.

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Sensoren & Aktoren

Auf dem Shield sind folgende Sensoren & Aktoren verbaut

  • DHT11 (Temperatur, Luftfeuchtigkeit),
  • LM35DZ,
  • Piezo Buzzer,
  • IR Sensor,
  • Fotowiderstand,
  • RGB LED,
  • rote LED,
  • blaue LED,
  • Drehpotentiometer,
  • 2 Taster

Montage auf dem Mikrocontroller

Das Shield wird auf den Mikrocontroller gesteckt, dabei werden alle Pins vom Shield verdeckt. Jedoch sind auf dem Shield mehrere Pins hinausgeführt und somit können zusätzliche Sensoren & Aktoren angeschlossen werden.

Multishield - Pinleiste
Multishield – Pinleiste

Was mir jedoch aufgefallen ist, dass bei der Bezeichnung VCC nicht dabei steht, ob diese 3,3V oder 5V ist und dieses kann bei bestimmten Sensoren schon entscheidend sein.

Nach einem kurzen durchmessen der Pins habe ich festgestellt das alle VCC Pins 5V haben.

Betrieb am Arduino

Wie eingangs erwähnt wird das Board auf den Mikrocontroller gesteckt, dieses ist kompatibel mit dem Arduino UNO, Leonardo, Mega. Um das Board mit dem Nano oder Micro zu verbinden muss hier mit entsprechenden Breadboardkabeln arbeiten. In diesem Tutorial möchte ich mich jedoch auf den Arduino UNO und Leonardo beschränken.

Wenn man dieses Board am Arduino UNO betrieben möchte, muss man darauf achten, dass die Kontakte des Tasters SW2 nicht auf dem Gehäuse der USB Buchse aufliegen.

Kontakt des Tasters SW2 auf der USB Buchse des Arduino UNO
Kontakt des Tasters SW2 auf der USB Buchse des Arduino UNO

Aufgrund dieses „Problems“ verwende ich auch bei diesem Multifunktionalem Shield den Arduino Lenoard, denn dieser besitzt eine Mini USB Buchse und somit besteht keine Möglichkeit zum Kurzschluss.

Wenn man keinen Arduino Lenoardo zur Hand hat, so kann man die USB Buchse auch mit etwas Isolierband gegen Kurzschluss isolieren.

Quellcode für die Sensoren & Aktoren

Nachfolgend möchte ich nun kurz einen Sketch vorstellen in welchem der Sensor bzw. Aktor betrieben wird.

Die meisten der Sensoren und Aktoren habe ich bereits in separaten Tutorials beschrieben, diese werde ich dann an den Stellen verlinken.

Digitale Bauelemente

Temperatur & Luftfeuchtigkeitssensor DHT11

Den Temperatur & Luftfeuchtigkeitssensor DHT11 habe ich bereits in einem Tutorial behandelt.

Technische Daten
  • Messbereich der relativen Luftfeuchtigkeit 20 % bis 90 %
  • Toleranz des Messbereiches für die relative Luftfeuchtigkeit ±5 %
  • Messbereich der Temperatur 0 bis 60 °C
  • Toleranz des Messbereiches für die Temperatur ±2 °C
#include "DHT.h"
 
#define DHT11PIN 4
#define DHT11TYPE DHT11
DHT dht11(DHT11PIN, DHT11TYPE);
   
void setup(){
   Serial.begin(9600); 
   dht11.begin();
}
   
void loop(){
  float humidyDHT11 = dht11.readHumidity();  //relative Luftfeuchtigkeit vom Sensor DHT11 lesen
  float tempDHT11 = dht11.readTemperature(); //Temperatur vom Sensor DHT11 lesen
  if (isnan(humidyDHT11) || isnan(tempDHT11)) {
    Serial.println("DHT11 konnte nicht ausgelesen werden");
  } else {
      printValues("DHT11",humidyDHT11, tempDHT11);
  } 
  delay(2500); //2,5 sek. Warten, der DHT11 Sensor stellt alle 2 sek. neue Werte bereit.
}
  
void printValues(String sensor, float humidy, float temp){
   Serial.print(sensor); 
   Serial.print("\t"); 
   Serial.print("Luftfeuchte: "); 
   Serial.print(humidy);
   Serial.print(" %\t");
   Serial.print("Temperatur: "); 
   Serial.print(temp);
   Serial.println(" C");
}

RGB LED

In dem von mir erworbenen Shield war leider die RGB LED defekt. Sobald ich ein neues vorliegen habe, werde ich diesen Teil des Tutorials befüllen.

LEDs & Taster

Die Taster SW1 & SW2 sind über den digitalen Pins D2 sowie D3 erreichbar. In folgendem Sketch schalte ich die blaue LED und die rote LED jeweils an bzw. aus, wenn einer der Taster betätigt wird.

#define SW1 2 // digitaler Pin D2
#define SW2 3 // digitaler Pin D3

#define LED_ROT 12 //LED - rot am digitalen Pin D12
#define LED_BLAU 13 //LED - blau am digitalen Pin D13

void setup() {
 pinMode(SW1, INPUT);
 pinMode(SW2, INPUT);

 pinMode(LED_ROT, OUTPUT);
 pinMode(LED_BLAU, OUTPUT);
}

void loop() {
  //Wenn der Taster SW1 gedrückt wird dann soll die blaue LED aufleuchten.
  digitalWrite(LED_BLAU,digitalRead(SW1)==HIGH?LOW:HIGH);

  //Wenn der Taster SW2 gedrückt wird dann soll die rote LED aufleuchten.
  digitalWrite(LED_ROT,digitalRead(SW2)==HIGH?LOW:HIGH);
}

Infrarot Empfänger

Der Empfang eines IR Signals wird auf dem Multifunktionalem Shield mit dem Aufleuchten einer kleinen SMD LED quittiert, welche hinter dem IR Empfänger sitzt.

Quittierung eines empfangenen Signals am IR Empfänger
Quittierung eines empfangenen Signals am IR Empfänger

Für den Betrieb des IR Empfängers wird die Bibliothek „IRremote.h“ benötigt, welche vom GitHub Repository von z3t0 geladen werden kann. Wie man eine Bibliothek in der Arduino IDE installiert habe ich bereits im gleichnamigen Tutorial Arduino IDE, Einbinden einer Bibliothek erläutert.

#include <IRremote.h>

int irPin = 6; //IR LED

int led1Pin = 13; //LED 1 (blau)
int led2Pin = 12; //LED 2 (rot)

boolean led1Status = false;
boolean led2Status = false;

IRrecv irrecv(irPin); //Objekt initialisieren für die IR Übertragung
decode_results results;

void setup() {
  pinMode(irPin, INPUT);  //Den IR Pin als Eingang deklarieren.
  irrecv.enableIRIn(); //Den IR Pin aktivieren
  Serial.begin(9600); //Serielle kommunikation mit 9600 Baud beginnen.
}
 
void loop(){
   if (irrecv.decode(&results)) { //Wenn etwas gelesen wurde dann...
      //Ausgabe des Wertes auf die Serielle Schnittstelle.
      Serial.println(value, DEC);
      int value = results.value;
      switch (value){
        case 26775 : //Taste 1
            led1Status = !led1Status; //umkehren des Status für die LED 1
            if(led1Status == true){
              digitalWrite (led1Pin, HIGH); //LED anschalten
            } else {
              digitalWrite (led1Pin, LOW); //LED ausschalten
            }
        break;
        case -26521 : //Taste 2
            led2Status = !led2Status; //umkehren des Status für die LED 2
            if(led2Status == true){
              digitalWrite (led2Pin, HIGH); //LED anschalten
            } else {
              digitalWrite (led2Pin, LOW); //LED ausschalten
            }
        break;
      }
      irrecv.resume(); // auf den nächsten Wert warten
      delay(250); // kurze Pause von 250ms damit die LED aufleuchten kann.
 }
}

Je nach verwendeter IR Fernbedienung können die Werte für die Taste 1 & Taste 2 abweichen. Daher gebe ich in diesem Sketch zusätzlich den Wert auf dem seriellen Monitor der Arduino IDE aus.

Buzzer

#define BUZZER 5
int minValue = 100;
int maxValue = 1500;

void setup() {
  pinMode(BUZZER, OUTPUT);
}

void loop() {
  //von der Frequenz minValue bis maxValue
  for(int i = minValue;i<maxValue;i++){ playTone(i); }

  //von der Frequenz maxValue bis minValue
  for(int i = maxValue;i>minValue;i--){ playTone(i); }
}

void playTone(int freq){
  //gibt einen Ton auf dem Buzzer wieder mit der Frequenz freq und
  //einer dauer von 25ms.
  tone(BUZZER, freq,25);
  //kleine Pause von 2ms.
  delay(2);
}

analoge Bauelemente

Temperatursensor LM35DZ

In dem von mir erworbenen Shield war leider der Temperatursensor LM35DZ defekt. Sobald ich ein neues vorliegen habe, werde ich diesen Teil des Tutorials befüllen.

Fotowiderstand

Der Fotowiderstand ist am analogen Pin A1 angeschlossen und wird mit dem Befehl „analogRead(A1)“ ausgelesen.

void setup() {
 Serial.begin(9600);
}

void loop() {
  Serial.println(analogRead(A1));
}

Drehpotentiometer

Der Drehpotentiometer ist am analogen Pin A0 angeschlossen und kann mit nur einer Zeile Code ausgelesen werden. Der mögliche Wertebereich ist 0 bis 1023.

void setup() {
 Serial.begin(9600);
}

void loop() {
  Serial.println(analogRead(A0));
}

Fazit

Ein schönes Shield und für den Anfänger ist auch viel Brauchbares dabei, bedauerlicherweise war bei meinem die RGB LED sowie der analoge Temperatursensor LM35DZ defekt.

Was diesem Shield guttun würde wäre eine digitale LCD Anzeige für die Temperaturwerte, diese kann man jedoch auch bequem über die Stiftleisten anschließen, welche auf dem Shield vorhanden sind.

Des Weiteren sind nur die 5V nach außen gelegt, hier könnte man noch die 3,3V des Mikrocontrollers anbieten.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}