A02|03 Der Flammensensor
Flame Sensor

Sensorwerte / Temperatur messen

Irrtümlich kann man auf die Idee kommen, der Flammensensor könnte direkt mit der Temperatur etwas zu tun haben. Dies ist nicht der Fall. Der Sensor misst Licht mit einer Wellenlänge von 760nm bis 1100nm, also der typische Wertebereich für Flammen. Die Reichweite beträgt etwa 20cm. Beispielsweise wird er verwendet, um ein Feuer innerhalb eines Gerätes zu erkennen, um dann die Stromzufuhr zu kappen. Werden zwei dieser Sensoren an einen mobilen Roboter montiert, kann er mit entsprechendem Equipment als autonomer Feuerdetektor und Feuerlöscher einsetzen werden.

 

Spezifikationen
- Signalart: digital und analog
- Spannung: 3,3V – 5V
- Pinabstand: 2,54mm
- Reichweite:
20cm (4.8V) ~ 100cm (1V)
- Wellenlänge:
760nm to 1100nm
- Betriebstemperatur:
-25℃ bis 85℃

Das Modul hat eine Besonderheit: Es kann digitale UND analoge Signale ausgeben. Bei digitaler Verwendung detektiert es, ob es Feuer gibt oder nicht. Mit dem analogen Modus wird die Intensität (Distanz) der Flammen bestimmen. Der Flammensensor hat eine Betriebs-LED, die leuchtet, sobald es mit Strom versorgt wird. Das Modul kann autark ohne eine Arduino-Programmierung Feedback geben: Sobald an den Pins GND und VCC Strom anliegt, nimmt es seine Funktion auf. Eine zweite LED leuchtet immer dann auf, wenn der Sensor auf eine Feuerquelle gerichtet ist - vorausgesetzt die Reichweite stimmt. Dies ist durch die intern eingebaute Elektronik möglich. Mit dem eingebauten Trimmpoti kann die Empfindlichkeit eingestellt werden.

 
 
 

Digitaler Aufbau und Sketch – Feuer oder nicht Feuer

Der folgende Sketch prüft, ob ein Feuer vorhanden ist und schaltet entsprechend die auf dem Modul integrierte LED ein. Der Schwellwert kann mit dem Trimmpoti manuell eingestellt werden. Für die digitale Verwendung muss am Modul der Pin mit der Beschriftung D0 benutzt werden. Verbinde dein Arduino mithilfe der Jumper Wire mit dem Modul:

 
 

Kopiere den unteren Sketch, füge ihn in die Arduino IDE ein und lade ihn auf das Arduino-Board rauf.

/**************************************************
A02|03 Der Flammensensor digital
Mr Robot UXSD
www.mrrobotuxsd.com
https://www.mrrobotuxsd.com/arduino-module-rezepte
***************************************************/


const int flamePin = 2;  //Pin-Nummer des Flammen-Sensors
const int ledPin =  13;  //Pin-Nummer des LEDs

int flameState = 0;      //Variable zum Lesen des Flammen-Status


void setup() 
{
  // Initialisiere den LED-Pin als Ausgang:
  pinMode(ledPin, OUTPUT);      
  // Initialisiere den Taster-Pin als Eingang:
  pinMode(flamePin, INPUT);     
}

void loop()
{
  //lies den aktuellen Wert am Flammen-Sensor
  flameState = digitalRead(flamePin); 
  if (flameState == HIGH) 
  {     
    //LED einschalten:    
    digitalWrite(ledPin, HIGH);  
  } 
  else 
  {
    //LED ausschalten:    
    digitalWrite(ledPin, LOW);
  }
}
 

Analoger Aufbau und Sketch - Flammenintensität

Dieser Sketch misst die Intensität der Flammen. Dadurch wird es möglich einen Schwellwert festzulegen und damit weitere Module anzusteuern. Für die analoge Verwendung muss am Modul der Pin mit der Beschriftung A0 benutzt werden. Verbinde dein Arduino mithilfe der Jumper Wire mit dem Modul:

 

Der Sketch schaltet die interne LED auf dem Arduino-Board ein, sobald die Messung den Schwellenwert von 500 übersteigt. Kopiere den unteren Sketch, füge ihn in die Arduino IDE ein und lade ihn auf das Arduino-Board rauf.

/**************************************************
A02|03 Der Flammensensor analog
Mr Robot UXSD
www.mrrobotuxsd.com
https://www.mrrobotuxsd.com/arduino-module-rezepte
***************************************************/


const int flamePin = A0;  //Pin-Nummer des Flammen-Sensors
const int ledPin =  13;  //Pin-Nummer des LEDs

int flameState = 0;      //Variable zum Lesen des Flammen-Status


void setup() 
{
  //Initialisiere die Serielle Kommunikation mit 9600 Bits pro Sekunde:
  Serial.begin(9600);
  
  //Initialisiere den LED-Pin als Ausgang:
  pinMode(ledPin, OUTPUT);      
  // Initialisiere den Taster-Pin als Eingang:
  pinMode(flamePin, INPUT);     
}


void loop()
{
  //lies den aktuellen Wert am Flammen-Sensor
  flameState = analogRead(flamePin); 

  Serial.print(F("Flammenwert: "));
  Serial.println(flameState);  //Sensorwert an Seriellen Monitor schicken

  
  if (flameState > 500) 
  {     
    //LED einschalten:    
    digitalWrite(ledPin, HIGH);  
  } 
  else 
  {
    //LED ausschalten:    
    digitalWrite(ledPin, LOW);
  }
}
 

Schalte den seriellen Monitor ein, indem du in der Arduino IDE in der Menüleiste auf Werkzeuge > Serieller Monitor gehst.

Du solltest nun die folgende Anzeige sehen:

 
 

Falls du die hier beschriebenen Elektronik-Module nicht hast, kannst du sie in meiner Einkaufsliste finden. Warum ich selber hauptsächlich mit Modulen der Marke Keyestudio arbeite, erläutere ich unter diesem Blog-Artikel.

In dieser Übersicht äußere ich Empfehlungen aller Art.

Hier kommst du wieder zur Übersicht aller Module.