Sharp GP2D12 IR Distanzsensoren an Uno / 2009 ?

hallo, ich möchte über die analogen Uno-/2009-Eingänge 0-3 4x Sharp GP2D12 IR Distanzsensoren auslesen:

http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCIQFjAA&url=http%3A%2F%2Fwww.sharpsma.com%2Fwebfm_send%2F1203&ei=oyqkU-iaLun8ygO_uYLADA&usg=AFQjCNGNoqB6A55itxUrxeSzuOkdj28U1w&sig2=DQLiu_lpySahg4yRIfqmJg

Diese arbeiten bei 3-5 V (ok) und liefern je nach Entfernung eine Vout von 0...+2,7 V mein Problem - wie kann ich die Spannungen mit dem Arduino messen (10bit ADC, möglichst genau auch nur dieses Messwerte-Fenster)? Momentan kann ich das nur für Widerstände durchführen.

Danke im vorraus! Helmut

Im Datenblatt steht ja folgendes:

Output Terminal Voltage VO -0.3 to (VCC+ 0.3)

Also würde er bei 5V Versorgungsspannung maximal 4,7V liefern, und mit diesem Verlust an Genauigkeit musst Du wohl leben.

Grüße,

Sven

hallo, 0,3V+/- wär natürlich überhaupt kein Problem, ich hatte mich nur an der Grafik auf der letzten Seite orientiert (Entfernung vs. Output-Voltage). Ich meine mich zu erinnern, dass das auch bei 5V Versorgungsspannung genau so aussieht.

Wie auch immer, erstmal grundsätzlich das Problem - wie messe ich diese [u]Spannungen[/u] mit dem Arduino?

:zipper_mouth_face: http://bit.ly/SXtyOT

:cold_sweat: geht's vllt ein bisschen genauer - Spannungen von 0 bis 3V messen... ? 8)

Direkt der erste Link, ein bisschen eigeninitiative wäre da nicht schlecht.

/*
 * Display5vOrless Sketch
 * Gibt die Spannung am Analogpin über den seriellen Port aus
 * Warnung - schließen Sie nicht mehr als 5V direkt an den Arduino-Pin an.
 */

const float referenceVolts = 5.0;  // Referenzspannung eines 5-Volt-Boards
const int batteryPin = 0;          // Batterie ist mit Analogpin 0 verbunden

void setup()
{
   Serial.begin(9600);
}

void loop()
{
   int val = analogRead(batteryPin);  // Wert vom Sensor einlesen
   float volts = (val / 1023.0) * referenceVolts;  // Verhältnis berechnen
   Serial.println(volts);  // und Wert in Volt ausgeben
}

Die Distanz lässt sich dann anhand des Datenblatts bestimmen.

tausend Dank für den kompletten Code! super gut ! :D