Arduino: Drucksensor ( SEN-09673 ) Tutorial

Da ich zur Zeit noch an meinem Projekt für den Wettbewerb „Mach flott den Schrott“ bastele und dabei ein Drucksensor zum Einsatz kommen soll, schreibe ich hier schnell ein kurzes Tutorial zur Nutzung des SEN-09673 Drucksensors mit dem Arduino.

Welcher Sensor?
Ich verwende für dieses Tutorial den Drucksensor SEN-09673 (Datenblatt), dieser ist auf der Abbildung (unten) zu sehen. Der Sensor ist sehr klein und ist somit für mein Projekt bestens geeignet. Ein Nachteil des Sensors ist allerdings das er mit ca. 4 – 6 Euro nicht gerade günstig ist. Den Sensor gibt’s zum Beispiel bei Watterott electronic GmbH oder etwas günstiger bei Sparkfun Electronics.

Theorie zum Sensor
Der Sensor misst eine Veränderung des elektrischen Wiederstands. Wenn kein Druck auf den Sensor ausgeübt wird, so ist der Wiederstand größer als 1 MΩ. Bei maximal messbarem Druck liegt der Wiederstand bei ca. 2.5 kΩ.

Der Aufbau
Ein Pin des Sensors wird auf 5V gelegt. Der zweite Pin des Sensors wird auf den Analog Pin 0 gelegt. Zusätzlich wird noch ein Wiederstand auf den Analog Pin 0 gelegt. Das andere Ende des Wiederstandes wird auf GND gelegt. Die Abbildung unten zeigt die genaue Verkabelung im Detail.

Die Programmierung
Alles was nun noch fehlt, sind ein paar Zeilen Code. Listig 1 zeigt einen Beispiel Code, welcher die gemessenen Werte des Drucksensors auf dem Seriellen Port ausgibt.

Listing 1:

/*Variablen initialisieren*/
int analogPin = 0;
int val = 0;

void setup(){
/*Seriellen Port initialisieren*/
  Serial.begin(9600);
}

void loop(){
/* Wert einlesen */
   val = analogRead(analogPin);
/* gelesenen Wert auf dem Seriallen Port ausgeben*/
   Serial.println(val);
/*Kurze Zeit Warten */
   delay(500);
}

Das wars auch schon. Die Werte die der Sensor erzeugt werden über den Analog Pin 0 eingelesen und in der Variable val gespeichert. Diese wird anschließend über den Seriellen Port ausgegeben.

23 Gedanken zu „Arduino: Drucksensor ( SEN-09673 ) Tutorial“

    1. Mit Sicherheit lässt sich ein ähnlicher Aufbau auch mit diesem Sensor realisieren. Leider habe ich gerade keinen zur Hand. Das Datenblatt liefert aber alle benötigten Informationen.

      Gruss
      Mario

  1. hallo mario,

    im datenblatt steht, welche pins alle auf gnd kommen müssen. kannst du mir vielleicht kurz skizzieren, wie ich das auf meinem breadboard durchführe?

    liefert der sensor als output wirklich eine stromstärke? kann ich diese auch über einen analogen input einlesen?

    sorry für die dummen fragen. ich bin absoluter neuling auf diesem gebiet.

    viele grüße

    pfeili

    1. Sorry, ich hab zur Zeit viel zu tun da dauert das Antworten schon mal etwas länger. Also wie du ja selber schon richtig erkannt hast kannst du die Spannung mit dem analogen Input auslesen. Allerdings kann ich dir gerade keinen genauen Tipp für die Verkabelung geben, die Seite mit dem Datanblatt scheint ( zur Zeit?) down zu sein.

      Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt. 🙂

  2. hallo mario,

    ich habe jetzt den anschluss so vorgenommen, wie auf dem bild hier (und es funktioniert rein qualitativ erstmal):

    http://s7.directupload.net/file/d/2769/lyj8ucln_jpg.htm

    nun meine fragen:

    1. sollte ich einen widerstand vor +5v legen?

    2. was gibt er mir mit deinem script auf dem seriellen monitor aus? das sind erstmal keine spannungswerte, sondern zahlen (z.b. 110, 111… je nach meinem anliegenden druck). wie kann ich daraus spannungen erhalten, denn eigentlich steht ja, dass der sensor zwischen 0,5 und 4,5 V augibt.

    3. war es richtig, dass ich das unidirectional device anzapfe oder muss ich bidirectional nehmen?

    beste grüße und vielen dank für deine ermutigung.

    felix

  3. hallo mario,

    ich bin mittlerweile schon weiter. die integer-werte entstehen natürlich aus der a/d-wandlung, d.h. weil die auflösung desselben 10 bit beträgt, muss ich mir meine spannung erst mit

    U = 5 V * wert (in bit) / 1024 bit

    ausrechnen. somit wäre frage 2 geklärt. nach dieser erkenntnis hat sich auch frage 3 erledigt, denn der anschluss ist so korrekt. ich habe es anhand eines schrägrohrmanometers nachgeprüft.

    mittlerweile lese ich den arduino über matlab aus, was super funktioniert.

    beste grüße

    pfeili

    1. Hallo pfeili,

      sorry dass ich im Moment nicht immer gleich dazu komme auf deine Kommentare zu antworten. Ich freue mich das du es so weit geschafft hast. Danke das du deine Erfahrungen über den Sensor hier teilst. Ich glaube es wäre Interessant ein Tutorial über den Sensor zu schreiben. Wo hast du den Sensor gekauft bzw. wo liegt der preislich ca. ?

      Danke & Gruss
      Mario

  4. hallo mario,

    da schieb ich gleich noch eine frage hinterher: kann ich denn einen zweiten sensor am arduino mit 5v versorgen (z.b. über eine art spannungswandlung des 3,3v ausgangs) oder benötige ich dann auch ein zweites arduino? gibt es vielleicht ein arduino, welches mehrere +5v-pins zur verfügung stellt oder wie kann man dieses problem anderweiteig lösen?

    beste grüße

    pfeili

    1. Hallo Pfeili,

      es gibt auch noch den Arduino Mega, der hat allerdings soviel ich weiß auch nur einen 5v PIN.
      Wenn es nur um die Versorgungsspannung geht, häng den zweiten Sensor doch einfach an den gleichen 5v PIN, das geht ohne Probleme.
      Du brauchst natürlich für den INPUT einen anderen Analog PIN als für den ersten Sensor, aber davon sind ja noch reichlich frei.

      Gruss
      Mario

  5. hallo mario,

    das mit dem analogen input war mir schon klar. 😉
    wieviele sensoren kann ich denn dann mit der einen spannungsversorgung betreiben? das wird ja begrenzt sein, denn da geht doch die stromstärke in die knie, oder?

    beste grüße

    pfeili

  6. hallo mario,

    und noch eine frage: muss ich als refereznzwert wirklich die 5v der spannungsversorung ansetzen oder die 4v differenz, die zwischen 0,5v und 4,5v outputsignal bestehen?

    beste grüße

    pfeili

  7. hast du schon mal einen bmp085-sensor ausgelesen. alle versuche dies mithilfe diverser inet-beispielen zu tun, scheiterten bei mir.

    beste grüße

    pfeili

  8. Ja habe jetzt mal den Widerstand eingelötet, programm schreib ich noch. Das ist aber nicht der Widerstand der von dem Sensor verändert wird oder?!

  9. Hallo,

    Danke für die Anleitung!

    Warum muss man eigentlich einen Wiederstand zwischen Analog Pin 0 und GND einbauen ?

    Beste
    Grüße

  10. hallo mario (oder jemand anderes),

    muss ich als referenzwert für die umrechnung in die spannung wirklich die 5v der spannungsversorung ansetzen oder die 4v differenz, die zwischen 0,5v und 4,5v outputsignal bestehen? das ist mir noch nicht ganz klar.

    beste grüße

    pfeili

Schreibe einen Kommentar

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

Kommentare werden moderiert. Es kann etwas dauern, bis dein Kommentar angezeigt wird.