Dies ist eine alte Version des Dokuments!


Sensoren allgemein:

Ein Sensor wandelt ein physikalisches oder chemisches Signal in ein elektrisches Signal um. Im Gegensatz zu Indikatoren registrieren Sensoren auch das Ausmaß der zu messenden Größe. Das physikalische Signal kann abhängig von Temperatur, Feuchtigkeit, Licht, Druck, Masse, Bewegung, Beschleunigung, … sein. Ein Sensor ist gekennzeichnet von

  • der Relation zwischen Ein- und Ausgangssignal,
  • der Messgenauigkeit,
  • dem Messbereich,
  • der Messempfindlichkeit

So ist je nach Anwendungsgebiet, ob ein genauer Wert (z.B. Konzentration in ppm) oder eine ungefähre qualitative Bewertung (z.B. heiß oder kalt) notwendig ist, die Wahl des Sensors entscheidend. Insbesondere ist es im Schulbetrieb nicht ganz so wichtig, exakte Messungen vorzunehmen, da es hier um das Verständnis der eingesetzten Sensoren geht. Außerdem werden vor allem im Schulalltag preisgünstige Sensoren ausgesucht, die dabei noch zusätzlich durch den Einsatz in Schülerexperimenten zusätzliche Beanspruchungen ausgesetzt werden.

Unterschiede in der Kommunikation zwischen Mikrocontroller und Sensor

Der Sensor kann die zu messende Größe in eine physikalische Größe umwandeln, diese muss nun dem Mikrocontroller übermittelt werden. Hierzu müssen geeignete Schnittstellen zur Verfügung stehen.

  1. Analoger Eingang: Der einfachste Fall ist, dass der Sensor aus einem Halbleiterelement besteht. Durch eine Spannungsteiler-Schaltung am Arduino kann der Widerstand des Halbleiterelements bestimmt werden. Das analoge Signal wird mit Hilfe des Analog-Digital-Wandlers des Mikrocontroller in ein digitales Format umgewandelt und steht zur weiteren Verarbeitung bzw. Auswertung zur Verfügung. Mit Hilfe des Datenblattes oder einer vorab durchgeführten Kalibrierung kann daraus die zu messende Größe bestimmt werden.
  2. Digitaler Eingang: Enthält der Sensor schon selbst einen Mikrocontroller, so kann dieser das Signal selbst digitalisieren, kalibrieren, codieren und übermitteln. An einem digitalen Pin kann entweder ein HIGH oder ein LOW Signal liegen, außerdem kann der Mikrocontroller mit Hilfe des PulseIn - Befehles die Länge der HIGH oder LOW-Signale messen.
    Die Kommunikation funktioniert mit nur einer Datenleitung.
  3. I2C -Schnittstelle: Hier kann der Mikrocontroller über ein genau definiertes Protokoll gleich mit mehreren Geräten kommunizieren. Der Sensor hat eine fest vorgegebene Adresse (7 Bit), die man entweder dem Datenblatt entnimmt oder mit Hilfe eines Programmes (I2C-Scanner) ermittelt, welches bei der Standardinstallation der Arduino -IDE automatisch mitgeliefert wird. Bei manchen Geräten braucht man diese auch nicht zu kennen, da diese schon in der Bibliothek integriert ist.
    • OLED-Display mit Treiberchip SSD1306: 0x3C oder 0x3D
    • BMP180 (Luftdruck- und Temperatursensor): 0x77
      Das I2C- Prokoll funktioniert über zwei Leitungen:
    • SCL (serial clock (Takt - Leitung))
    • SDA (serial data (Daten - Leitung))
      Je nach Gerät sind verschiedene Datenübertragungsraten möglich. Beim OLED - Display wird diese mit Wire.setClock(400000L) auf 400 kBit/s (=400 kHz) eingestellt.
      Die Programmierung ist denkbar einfach. Man muss nur die jeweilige Bibliothek installieren und zu Beginn des Programms über den include - Befehl einbinden. Ebenso sollt man noch die Wire - Bibliothek, die für die I2C- Kommunikation notwendig ist, einbinden.

Verwendete Sensoren

  • arduino/sensoren.1651396277.txt.gz
  • Zuletzt geändert: 2022/05/01 11:11
  • von khirling