Source: Prof. Dr.-Ing. Michael Weyrich, http://wiki.zimt.uni-siegen.de/fertigungsautomatisierung
Sensoren sind technische Bauteile, die Eigenschaften der Umgebung (z. B.: Wärmestrahlung, Temperatur, Feuchtigkeit, Druck, Schall, Helligkeit oder Beschleunigung) erfassen und in ein weiter verarbeitbares elektrisches Signal umformen.
Die nachfolgenden Sensoren sind zur Vollständigkeit aufgeführt. An dessen Stelle kommen heute, sogenannte MEMS Sensoren zum Einsatz. Diese sind im Kapitel I²C/TWI beschrieben.
- PIR Sensor
- Ultraschall Abstandsmesser
- Temperatur Sensor externe Variante
- Übungen
Hall Sensor auf Kit und für Durchsteckmontage
Ein Hall Sensor (auch Hall-Sonde oder Hall-Geber, nach Edwin Hall) nutzt den Hall-Effekt zur Messung von Magnetfeldern.
Der auf dem IoTKit verwendetete Hall Sensor kann zur Lage Erfassung eines Permanentmagnetes genutzt werden, d.h. es kann der Nordpol oder Südpol des Magneten bestimmt werden.
Beim IoTKitV3 K64F: schaltet der eine Pol das Signal auf > 0.9 und der andere Pol setzt das Signal wieder zurück.
Beim DISCO_L475VG_IOT01A: wird ein Wert < 0.4 oder > 0.6 für Nord- oder Südpool des Magneten angezeigt.
Das Beispiel bringt, je nach Signal, LED 1 oder LED 2 zum Leuchten.
Achtung: Beim IoTKitV3 K64F muss der DIP-Switch, neben dem Hall Sensor, nach oben (on) zeigen.
- Alarmanlagen, z.B. zum Sichern von Fenstern.
- Im Auto zur Kontrolle ob der Sicherheitsgurt geschlossen ist, als Raddrehzahlsensoren, zur Erkennung des Zündzeitpunkts.
- Zur Geschwindigkeitsmessung, z.B. für E-Bikes.
- In der Kraftwerkstechnik zur Erfassung der Turbinendrehzahl.
Das Beispiel bringt je nach Magnet Pool eine LED zu leuchten.
Reichweite/Funktionsweise
Empfindlichkeit 3 - 7 Meter
Signal von 3 Sekunden bis 5 Minuten
Anschlüsse
Ein Bewegungsmelder ist ein elektronischer Sensor, der Bewegungen in seiner näheren Umgebung erkennt und dadurch als elektrischer Schalter arbeiten kann. Ein Bewegungsmelder kann aktiv mit elektromagnetischen Wellen (HF oder Doppelradar), mit Ultraschall (Ultraschall-Bewegungsmelder) oder passiv anhand der Infrarotstrahlung der Umgebung arbeiten; es gibt auch Kombinationen davon.
Der PIR Sensor (Bewegungsmelder) (englisch passive infrared) ist der am häufigsten eingesetzte Typ von Bewegungsmeldern. Er reagiert optimal auf Winkeländerungen, wenn also eine Person am Sensor vorbeigeht. Der PIR Sensor wird mittels 3-adrigen Kabel mit dem Shield verbunden.
- Einschalten einer Beleuchtung
- Auslösen eines Alarms
- VCC - +5V (5 Volt)
- OUT - A5
- GND - GND (Ground)
Das Beispiel bei Erkennung einer Bewegung wird eine LED eingeschaltet.
main.cpp
/** PIR Sensor (Bewegungsmelder)
*/
#include "mbed.h"
DigitalIn pirSensor( A5 );
DigitalOut licht( MBED_CONF_IOTKIT_LED1 );
int main()
{
while(1)
{
if ( pirSensor )
{
licht = 1;
thread_sleep_for( 10000 );
}
else
licht = 0;
}
}
- [Arduino HC-SR501 Motion Sensor Tutorial](http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-hc-sr501-motion-sensor-tutorial/#attachment wp-att-2120/0/)
Timing
HC-SR04
Unter Entfernungsmessung, Abstandsmessung oder Längenmessung versteht man die Messung des Abstandes zweier Punkte im Raum durch direkten oder indirekten Vergleich mit einer Längenmasseinheit wie beispielsweise dem Meter.
Ein Ultraschall Abstandsmesser misst die Entfernung zu einem Objekt (z.B. Wand) in cm.
Der Erkennungszyklus wird mittels eines Impulses von min. 10 Mikrosekunden auf der "pulse trigger" Leitung (Trig) gestartet. Sobald diese Leitung wieder tief wird, sendet der Sensor eine Serie von acht Schaltimpulsen, wartet einen kurzen Moment und setzt dann die Leitung Echo hoch. Das erste Ultraschallecho welches Empfangen wird, setzt die Echo Leitung wieder tief. Durch die Zeitspanne dazwischen, lässt sich den Abstand zu einem Objekt bestimmen.
Die Ganze Arbeit nimmt uns die SR04 Library ab.
- Erkennen von Hindernissen bei Robotern
- VCC - V (5 Volt)
- Trig - A4
- Echo - A5
- GND - G (Ground)
Das Beispiel UltraschallSensor_LowLevelV2 zeigt, wie der Sensor ohne eine zusätzliche Library angesprochen werden kann.
UltraschallSensor_LowLevelV2
#include "mbed.h"
#include "OLEDDisplay.h"
DigitalIn echo( A4 );
DigitalOut trigger( A5 );
Timer t;
OLEDDisplay oled;
float i;
int main()
{
t.start();
printf(" ===[ Ultrasonic Range ]===");
// OLED Display
oled.clear();
while (1)
{
oled.clear();
oled.printf( "Ultrasonic Range" );
// send pulse
trigger=1;
ThisThread::sleep_for( 4ms );
trigger=0;
// wait for the echo line to go high
while (!echo);
// measure the length of the pulse
t.reset();
while (echo);
i = t.elapsed_time().count();
// display result
printf("\n\n\rPulselength %6.0f uS",i);
oled.printf("\n\rPulselength %6.0f uS",i);
i=i/58;
printf("\n\n\rDistance %4.0f cm",i);
oled.printf("\rDistance %4.0f cm",i);
ThisThread::sleep_for( 2000ms );
}
}
Beispiel Anwendung
DHT11
Der DHT11 ist ein multifunktionaler Sensor, der Temperatur und relative Luftfeuchte gleichzeitig misst. Er liefert zuverlässige Messwerte bei einer Luftfeuchtigkeit zwischen 20 % und 90 % und einer Temperatur zwischen 0 ° bis 50 ° Celsius.
Der Sensor benötigt die DHT Library
Tip: zum Testen der Temperatur den Sensor zwischen die Hände halten. Zum Testen der Luftfeuchtigkeit, Sensor anhauchen.
- Überwachen Temperatur und Luftfeuchtigkeit
- Ein- / Ausschalten der Heizung, Klimaanlage etc.
- "+" - +5V (5 Volt)
- OUT - A5
- "-" - GND (Ground)
Das Beispiel TemperaturSensorExtern gibt Temperatur und Luftfeuchtigkeit auf der Console aus.
main.cpp
/** Temperatur Sensor (extern)
*/
#include "mbed.h"
#include "DHT.h"
DHT sensor( A5, DHT11 );
int main()
{
int rc = 0;
float h = 0.0f, c = 0.0f, k = 0.0f, dp = 0.0f;
while( 1 )
{
thread_sleep_for( 2000 );
rc = sensor.readData();
if ( rc == 0 )
{
c = sensor.ReadTemperature(CELCIUS);
k = sensor.ReadTemperature(KELVIN);
h = sensor.ReadHumidity();
dp = sensor.CalcdewPoint(c, h);
printf("Temperator in Kelvin: %4.2f, Celcius: %4.2f, ", k, c);
printf("Luftfeuchtigkeit is %4.2f, Taupunkt: %4.2f\n", h, dp);
}
else
return ( -1 ); // Fehler - Programm beenden
}
}
Hinweis: Ein paar der Übungen funktionieren nur mit dem IoTKitV3 K64F, weil der Encoder benötigt wird.
Wenn sich jemand nähert, Licht einschalten und Akustisches Signal
- Anwendung: Alarmanlage.
Sobald kein magnetisches Feld mehr vorhanden, Akustisches Signal auslösen.
- Anwendung: Fenstersicherung.