LBotics.at

Mit dem Reflexionssensor kann die Intensität von reflektiertem Licht einer Oberfläche bestimmt werden. Diese Intensität entspricht einer Spannung zwischen 0 und 5 V, die vom Sensor ausgegeben wird. Um diese messen zu können, muss ein Reflexionssensor an einen analogen Eingang (IO1, IO5, IO6, IO7, IO8) des Mainboards angeschlossen werden.

Programmbeispiel - Einlesen der gemessenen Intensität eines Reflexionssensors

Ein Reflexionssensor ist an einen IO-Port an dem analoge Spannungen gemessen werden können angeschlossen. In diesem Beispiel an den Port IO1, es wird der aktuelle Wert des Reflexionssensors eingelesen und am Display angezeigt.

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

Zeile 14: LichtWert = READ_IO_ANALOG(IO1,1);

Mit der Funktion READ_IO_ANALOG(port,sensor) wird die am jeweiligen Kanals des AD-Wandlers anliegende Spannung gemessen. Die gemessenen Spannungen werden digitalen Werten zugeordnet, die zwischen 0 und 1023 liegen können und der Variable LichtWert zugewiesen werden.

Mit dem Parameter port wird der gewünschte Port (AD-Wandler, dessen Spannungswert man erhalten möchte) festgelegt: IO1, IO5, IO6, IO7, IO8

Als Rückgabewert liefert diese Funktion die Werte zwischen 0 und 1023.

Zeile 15: WRITE_LCD_INT(12, 1, LichtWert1, 4);

Der Wert der Variable LichtWert1 wird in der ersten 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.