// mega uno.c - Criado pelo studio UNO 2.3
// 7 December 2023 9:28:24 am
#include <uno.h>
// Prototipos
void Bumper(void);
void Curvas(void);
//Funcoes do Usuario
void Bumper(void)
{
if ((!__digital_in(5) || !__digital_in(6))) {
__motor_curso(__STOP);
__lcd_clear();
__lcd_goto(0x7f, 5);
__lcd_puts("Objeto Detectado");
__beep();
__motor_curso(__FORWARD);
__lcd_goto(0xbf, 5);
__lcd_puts("Recuando");
for (int __i1 = 0; __i1 < 1; ++__i1) {
__delay(300);
__buzzer(60, 500);
__delay(300);
__buzzer(60, 500);
__delay(300);
__buzzer(60, 500);
__delay(300);
__buzzer(60, 500);
}
__motor_curso(__STOP);
__lcd_clear();
__lcd_goto(0x7f, 6);
__lcd_puts("Parado");
}
}
void Curvas(void)
{
if (!testbit(__IR, 6)) {
if (!testbit(__IR, 1)) {
__digital_out(0, 0);
__motor_curso(__LEFT_TURN);
__lcd_clear();
__lcd_goto(0x7f, 5);
__lcd_puts("Esquerda");
}
if (!testbit(__IR, 3)) {
__digital_out(0, 0);
__motor_curso(__RIGHT_TURN);
__lcd_clear();
__lcd_goto(0x7f, 5);
__lcd_puts("Direita");
}
}
else {
if ((!testbit(__IR, 1) || __LEFT_KEY)) {
__digital_out(0, 0);
__motor_curso(__LEFT_ROTATE);
__lcd_clear();
__lcd_goto(0x7f, 5);
__lcd_puts("Esquerda");
}
if ((!testbit(__IR, 3) || __RIGHT_KEY)) {
__digital_out(0, 0);
__motor_curso(__RIGHT_ROTATE);
__lcd_clear();
__lcd_goto(0x7f, 5);
__lcd_puts("Direita");
}
}
}
//Funcao Principal
void main(void)
{
__inicializa;
__IR__ON();
__backlight(__ON);
__lcd_goto(0x7f, 6);
__lcd_puts("Parado");
__beep();
while(TRUE) {
if ((!testbit(__IR, 0) || __UP_KEY)) {
__digital_out(0, 0);
__motor_curso(__FORWARD);
__lcd_clear();
__lcd_goto(0x7f, 6);
__lcd_puts("Frente");
}
if ((!testbit(__IR, 4) || __BOTTOM_KEY)) {
__digital_out(0, 0);
__motor_curso(__BACKWARD);
__lcd_clear();
__lcd_goto(0x7f, 7);
__lcd_puts("Tras");
}
if ((!testbit(__IR, 2) || __ENTER_KEY)) {
__digital_out(0, 1);
__motor_curso(__STOP);
__lcd_clear();
__lcd_goto(0x7f, 6);
__lcd_puts("Parado");
__beep();
}
Curvas();
Bumper();
}
while(TRUE) { }
}