/*******************************************************************************
Projektname: ACS.cprj
Benötigte Libs´s: IntFunc_lib.cc
Routinen: lcd.cc, PRO-BOT128C_Lib_V2.cc
Autor: Niels
Datum: 09. 04. 2013
Funktion: Hindernisse erkennen und ausweichen
*******************************************************************************/
// Compiler-Direktiven
#define HIGHSPEED 200
#define MIDDLESPEED 180
#define LOWSPEED 0
int Akkuspg(void)
{
LCD_ClearLCD();
//LCD auf Zeile 1 Position 1 setzen:
LCD_Locate(1, 1);
LCD_WriteText("Akkuspannung:"); //Begruessung
LCD_Locate(2, 1);
float Akkuspannung;
Akkuspannung=AKKU_SPG();
LCD_WriteFloat(Akkuspannung, 6);
AbsDelay(2000); //Wait 2 Sec.
return 0;
}
void main(void)
{
PRO_BOT128_INIT(); //PRO-BOT128 Setup
ACS_INIT(1); // Geringste Empfuindlichkeit
AbsDelay(100); //Wait 0,1 Sec.
LCD_Init();
LCD_ClearLCD();
Akkuspg(); // Ausgabe der Akkuspannung
DRIVE_ON(); //Motorspannung an
MOTOR_DIR(1,1); //beide Motoren vorwärts - MOTOR DIRECTION
MOTOR_POWER(MIDDLESPEED, MIDDLESPEED);
// Endlos-Schleife
do
{
if ((ACS_LEFT() == 0) && (ACS_RIGHT() == 0))
{
// Hindernis wurde erkannt
DRIVE_OFF(); // Motor aus!
// LCD-Ausgabe
LCD_ClearLCD();
//LCD auf Zeile 1 Position 1 setzen:
LCD_Locate(1, 1);
LCD_WriteText("Hindernis!");
AbsDelay(1000); //Wait 1 Sec.
LCD_ClearLCD();
}
else
{
DRIVE_ON();
MOTOR_POWER(MIDDLESPEED, MIDDLESPEED);
BLR_ON();
BLL_ON();
//LCD_Locate(1, 1);
//LCD_WriteText("Geht doch super!");
}
}while(1);
}