LBotics.at

Ein Liniensensor wird an einen der beiden SPI-Ports angeschlossen und die Werte der 8 Reflexionssensoren werden am Display angezeigt. Mit den Potentiometern kann die Empfindlichkeit jedes einzelnen Sensors eingestellt werden.

Programmierbeispiel - Einlesen und Anzeigen aller Werte eines Liniensensors
#include "KeplerOpenBOT.h"
 
uint16_t LichtWert1;
uint16_t LichtWert2;
uint16_t LichtWert3;
uint16_t LichtWert4;
uint16_t LichtWert5;
uint16_t LichtWert6;
uint16_t LichtWert7;
uint16_t LichtWert8;
 
void setup()
{
KeplerOpenBOT_INIT();
}
 
void loop()
{
LichtWert1 = READ_SPI_LINE(SPI1,1);
LichtWert2 = READ_SPI_LINE(SPI1,2);
LichtWert3 = READ_SPI_LINE(SPI1,3);
LichtWert4 = READ_SPI_LINE(SPI1,4);
LichtWert5 = READ_SPI_LINE(SPI1,5);
LichtWert6 = READ_SPI_LINE(SPI1,6);
LichtWert7 = READ_SPI_LINE(SPI1,7);
LichtWert8 = READ_SPI_LINE(SPI1,8);
WRITE_LCD_INT(1, 1, LichtWert1, 4);
WRITE_LCD_INT(1, 6, LichtWert2, 4);
WRITE_LCD_INT(2, 1, LichtWert3, 4);
WRITE_LCD_INT(2, 6, LichtWert4, 4);
WRITE_LCD_INT(3, 1, LichtWert5, 4);
WRITE_LCD_INT(3, 6, LichtWert6, 4);
WRITE_LCD_INT(4, 1, LichtWert7, 4);
WRITE_LCD_INT(4, 6, LichtWert8, 4);
}
Erklärungen zu diesem Programmbeispiel

Zeile 19: LichtWert1 = READ_SPI_LINE(SPI1,1);

Mit der Funktion READ_SPI_LINE(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 festgelegt: SPI1 oder SPI2

Der Parameter sensor beschreibt den Eingang des AD-Wandlers, dessen anliegenden Spannungswert man erhalten möchte: 1, 2, ..., 8

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

Zeile 27: WRITE_LCD_INT(1, 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.