LBotics.at

Auch die Infrarot Abstandssensoren GP2Y0Axxx  der Firma Sharp stellen die gemessenen Entfernungen in Form von Spannungen zwischen 0 und 5 V zur Verfügung. Um die Messwerte auszulesen und in der Folge in Entfernungen umzurechnen, müssen diese Sensoren an einen Port am Mainboard angeschlossen werden, die analoge Spannungen messen können.

Detaillierte Informationen zu den Zusammenhängen zwischen den gemessenen Spannungen und den Entfernungen sind den Datenblättern dieser Sensoren zu entnehmen.

Programmbeispiel - Einlesen des Werts eines IR Abstandssensors

Ein IR Abstandssensor ist an einen IO-Port an dem analoge Spannungen gemessen werden können oder an einen der fünf analogen Eingänge angeschlossen. In diesem Beispiel an den IO-Port IO1, es wird der aktuelle Wert des Abstandssensors eingelesen und am Display angezeigt.

#include "KeplerOpenBOT.h"
 
uint16_t EntfernungWert;
 
void setup()
{
KeplerOpenBOT_INIT();
WRITE_LCD_TEXT(1, 1, "Entfernung:");
EntfernungWert = 0;
}
 
void loop()
{
EntfernungWert = READ_IO_ANALOG(IO1);
WRITE_LCD_INT(1, 2, EntfernungWert, 4);
}
Erklärungen zu diesem Programmbeispiel

Zeile 14: EntfernungWert = READ_IO_ANALOG(IO1);

Mit der Funktion READ_IO_ANALOG(port) wird die am jeweiligen Port anliegende Spannung gemessen und einem digitalen Wert zwischen 0 und 1023 zugewiesen.

Mit dem Parameter port wird der gewünschte Port festgelegt: IO1, IO5, IO6, IO7, IO8

Der Rückgabewert dieser Funktion kann Werte zwischen 0 und 1023 annehmen.

Zeile 15: WRITE_LCD_INT(1, 2, EntfernungWert, 4);

Der Wert der Variable EntfernungWert wird in der zweiten Zeile an Position eins ausgegeben. Dabei ist zu berücksichtigen, dass der größte Wert (1023) eine Länge von 4 Zeichen benötigt, weshalb dieser Funktion die Zahl 4 als vierter Parameter übergeben wird.