Arduino Projekt: Relais mit Geräuschdetektor schalten

In diesem kleinen Projekte möchte ich dir zeigen wie du ein Relais mit Geräuschdetektor am Arduino UNO schalten kannst.

Aufbau der Schaltung - Arduino UNO mit Geräuschdetektor KY-037 & Relaismodul
Aufbau der Schaltung – Arduino UNO mit Geräuschdetektor KY-037 & Relaismodul

Die Idee zu diesem kleinen Projekt entstand aus einem Kommentar von einem Leser meines Blogs. Hier sei Erst T. bestens gegrüßt.

Natürlich kannst du für diesen Aufbau auch einen anderen Microcontroller als den Arduino UNO verwenden. Es geht also auch genauso mit einem Arduino Nano, Leonardo, Pro Mini usw.

benötigte Bauteile für dieses Projekt

Für dieses Projekt benötigst du folgende Bauteile:

Das Relaismodul / Relaisshield habe ich bereits im Beitrag Arduino Lektion 13: 2 fach Relaisplatine ansteuern und den Geräuschdetektor KY-037 im Beitrag Arduino Lektion 19 – Teil 1: Hochempfindlicher Geräuschdetektor „Klatschdetektor“ ausführlich behandelt.

Aufbau & Schaltung

Die Sensoren / Aktoren werden mit dem Arduino UNO wiefolgt verbunden:

Sensor / Aktor Arduino UNO
Geräuschdetektor  
A0 analoger Pin A0
G GND
+ 5V
Relaismodul  
In1 digitaler Pin D8
VCC 5V
GND GND

 

Aufbau der Schaltung - Geräuschdetektor KY-037 & Relaismodul am Arduino UNO
Aufbau der Schaltung – Geräuschdetektor KY-037 & Relaismodul am Arduino UNO

Dadurch das wir an beiden Sensoren / Aktoren 5V Spannung benötigen empfehle ich zusätzlich die Verwendung von einem 170 Pin Breadboard.

Programmieren

Im nachfolgenden möchte ich dir zwei Möglichkeiten zeigen wie du das Relais steuern kannst.

einfaches Programm um ein Relais mit Geräuschdetektor am Arduino schalten

Da die gesamte Schaltung mit wenigen Bauteilen daher kommt ist der Quellcode selber sehr übersichtlich.

#define relaisPin 8    //Relaismodul am digitalen Pin D8
#define soundSensor A0 //Geräuschdetektor am analogen Pin A0

void setup(){
  Serial.begin(9600);
   //digitalen Pin des Relais als Ausgang definieren
   pinMode(relaisPin, OUTPUT);
   //analogen Pin des Geräuschdetektor als Eingang definieren
   pinMode(soundSensor, INPUT);
}

void loop(){
   //lesen des aktuellen Wertes des Geräuschdetektors
   int value = analogRead(soundSensor);
   Serial.println(value);
   //wenn der Wert größer als 300 ist dann...
   if(value > 300){
      //Relais aktivieren
      digitalWrite(relaisPin, LOW);
   } else {
      //Relais deaktivieren
      digitalWrite(relaisPin, HIGH);
   }
}

In dem oben gezeigten Sketch musst du den Schwellwert für das aktivieren / deaktivieren des Relais „hart“ in den Quellcode schreiben. D.h. immer wenn du diesen Wert ändern möchtest musst du einen neuen Sketch auf den Microcontroller schreiben.

Video

Drehpotentiometer zum Regeln des Schwellwertes für das aktivieren / deaktivieren des Relais

Der Drehpotentiometer verfügt über 3 Beinchen somit benötigen wir zusätzlich 3 weitere Breadboardkabel (Stecker – Stecker) sowie ein 170 Pin Breadboard.

Auf dem Geräuschsensor KY-037 ist ein Drehpotentiometer verbaut über welchen man den Schwellwert für das aktivieren / deaktivieren des digitalen Ausgangs des Sensors einstellen kann. Jedoch hat man das Problem das dieser Drehpotentiometer nicht vernünftig erreichbar ist man kann zbps. keine Kappe montieren oder diesen aus dem Gehäuse führen um diesen zu bedienen.

Aufbau der Schaltung

In der neuen Schaltung verwende ich einen Arduino Nano. Dieser kleine Microcontroller ist dem Arduino UNO ähnlich und verfügt über die selbe Anzahl der Pins.
Ein großer Vorteil ist die kleine Bauform so dass, dieser auf ein Breadboard 400 oder 720 Pin gesteckt werden kann.

Zusätzlich verbauen wir einen Drehpotentiometer welcher an den analogen Pin A1 angeschlossen wird.

Aufbau der Schaltung - Relaismodul, Geräuschdetektor und Drehpotentiometer
Aufbau der Schaltung – Relaismodul, Geräuschdetektor und Drehpotentiometer

Programmieren

Der neue Sketch wird lediglich um den zusätzlichen Drehpotentiometer erweitert.

#define relaisPin 8       //Relaismodul am digitalen Pin D8
#define soundSensor A0    //Geräuschdetektor am analogen Pin A0
#define rotaryResistor A1 //Drehpotentiometer am analogen Pin A1

void setup(){
   //digitalen Pin des Relais als Ausgang definieren
   pinMode(relaisPin, OUTPUT);
   //analogen Pin des Geräuschdetektor als Eingang definieren
   pinMode(soundSensor, INPUT);
   //Ausgang des Drehpotentiometers als Eingang am Microcontroller definieren
   pinMode(rotaryResistor, INPUT);

}

void loop(){
   //lesen des aktuellen Wertes des Geräuschdetektors
   int value = analogRead(soundSensor);
   //wenn der Wert größer als der eingestellte Wert am Drehpotentiometer ist dann...
   if(value > analogRead(rotaryResistor)){
      //Relais aktivieren
      digitalWrite(relaisPin, HIGH);
   } else {
      //Relais deaktivieren
      digitalWrite(relaisPin, LOW);
   }
}

 

 

Schreibe einen Kommentar

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