Paso 11: Programa/Sketch
#include
#include
LiquidCrystal LCD(10,9,5,4,3,2);
int i;
j Char;
int rojo = 0;
blueled int = 1;
trigPin INT = 12;
echoPin int = 13;
int left1motor = 6;
int left2motor = 7;
int right1motor = 8;
int right2motor = 11;
Float pingTime;
Float targetDistance;
void setup() {}
Serial.Begin(9600);
pinMode (trigPin, salida);
pinMode (echoPin, entrada);
pinMode (left1motor, salida);
pinMode (left2motor, salida);
pinMode (right1motor, salida);
pinMode (right2motor, salida);
pinMode (rojo, salida);
pinMode (blueled, salida);
LCD.begin(16,2);
LCD_start();
mientras (!. Serial.Available());
j=serial.Read();
}
void loop() {}
Si (j == 'a' || j == 'A')
{j = 'Z';
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
char displayitem1 [] = {'A', 'U', ' t ', 'O' estoy ', 'A', ' t ', 'I', 'C', '','C ', ' t ', 'R', 'L'};
char displayitem2 [] = {'A', 'C', ' t ', 'I', 'V', 'A', ' t ', 'E','d '};
para (i = 0; i < 14; i ++)
{
LCD.setCursor(i,0);
LCD.print(displayitem1[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 9; i ++)
{
LCD.setCursor(i,1);
LCD.print(displayitem2[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 3; i ++)
{
Delay(500);
LCD.setCursor(9,1);
LCD.print("");
Delay(500);
LCD.setCursor(9,1);
LCD.print("_");
}
Automatic();
}
else if (j == soy ' || j == estoy ')
{
j = 'Z';
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
char displayitem3 [] = {estoy ', 'A', ' n ', 'U', 'A', 'L', '',' C', 'O', ' n ', ' t ', 'R', 'O', 'L'};
char displayitem4 [] = {'A', 'C', ' t ', 'I', 'V', 'A', ' t ', 'E','d '};
para (i = 0; i < 14; i ++)
{
LCD.setCursor(i,0);
LCD.print(displayitem3[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 9; i ++)
{
LCD.setCursor(i,1);
LCD.print(displayitem4[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 3; i ++)
{
Delay(500);
LCD.setCursor(9,1);
LCD.print("");
Delay(500);
LCD.setCursor(9,1);
LCD.print("_");
}
manual();
}
otra cosa
{
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
char displayitem5 [] = {'W', 'A', 'I', ' t ', 'I', ' n ', 'G', '',' ', 'F', 'O', 'R'};
char displayitem6 [] = {'I', ' n ', de ', ' t ', 'R', 'U', 'C', ' t ', 'I', 'O', ' n '};
para (i = 0; i < 12; i ++)
{
LCD.setCursor(i,0);
LCD.print(displayitem5[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 11; i ++)
{
LCD.setCursor(i,1);
LCD.print(displayitem6[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 3; i ++)
{
Delay(500);
LCD.setCursor(11,1);
LCD.print("");
Delay(500);
LCD.setCursor(11,1);
LCD.print("_");
}
}
mientras (!. Serial.Available());
j=serial.Read();
}
void manual()
{
char la com;
mientras (!. Serial.Available());
g:
com=serial.Read();
Si (com == 'w' || com == 'W')
{
mientras (!. Serial.Available())
{
digitalWrite (left1motor, HIGH);
digitalWrite (left2motor, bajo);
digitalWrite (right1motor, HIGH);
digitalWrite (right2motor, bajo);
LCD_normal();
Serial.println("forward");
}
}
else if (com == de ' || com == de ')
{
mientras (!. Serial.Available())
{
digitalWrite (left1motor, bajo);
digitalWrite (left2motor, HIGH);
digitalWrite (right1motor, bajo);
digitalWrite (right2motor, HIGH);
LCD_normal();
Serial.println("Backward");
}
}
else if (com == 'a' || com == 'A')
{
mientras (!. Serial.Available())
{
digitalWrite (left1motor, bajo);
digitalWrite (left2motor, HIGH);
digitalWrite (right1motor, HIGH);
digitalWrite (right2motor, bajo);
LCD_obstacle();
Serial.println ("giro a la izquierda");
}
}
else if (com == había ' || com == había ')
{
mientras (!. Serial.Available())
{
digitalWrite (left1motor, HIGH);
digitalWrite (left2motor, bajo);
digitalWrite (right1motor, bajo);
digitalWrite (right2motor, HIGH);
LCD_obstacle();
Serial.println ("la derecha");
}
}
Si (com == 'a' || com == 'A' || com == de ' || com == de ' || com == 'A' || com == 'a' || com == había ' || com == había ')
Goto g;
else if (com == 'e' || com == 'E')
{
digitalWrite (left1motor, bajo);
digitalWrite (left2motor, bajo);
digitalWrite (right1motor, bajo);
digitalWrite (right2motor, bajo);
LCD_final();
Serial.println("Stopped");
}
}
void automatic()
{
g:
mientras (!. Serial.Available())
{
digitalWrite (trigPin, LOW);
delayMicroseconds(2);
digitalWrite (trigPin, HIGH);
delayMicroseconds(10);
digitalWrite (trigPin, LOW);
pingTime = pulseIn (echoPin, HIGH);
pingTime = pingTime/29;
targetDistance = pingTime/2;
Serial.Print ("la distancia al objetivo es:");
Serial.Print(targetDistance);
Serial.println ("cm");
Delay(10);
if(targetDistance==0.0)
{
digitalWrite (left1motor, HIGH);
digitalWrite (left2motor, bajo);
digitalWrite (right1motor, HIGH);
digitalWrite (right2motor, bajo);
LCD_normal();
Serial.println("forward");
}
otro if(targetDistance>30.0)
{
digitalWrite (left1motor, HIGH);
digitalWrite (left2motor, bajo);
digitalWrite (right1motor, HIGH);
digitalWrite (right2motor, bajo);
LCD_normal();
Serial.println("forward");
}
otro if(targetDistance<10.0)
{
digitalWrite (left1motor, bajo);
digitalWrite (left2motor, HIGH);
digitalWrite (right1motor, bajo);
digitalWrite (right2motor, HIGH);
LCD_normal();
Serial.println("Backward");
}
otro if(targetDistance<30.0)
{
digitalWrite (left1motor, bajo);
digitalWrite (left2motor, HIGH);
digitalWrite (right1motor, HIGH);
digitalWrite (right2motor, bajo);
LCD_obstacle();
Serial.println ("giro a la izquierda");
}
}
int com=Serial.read();
Si (com! = 'e' || com! = 'E')
Goto g;
}
void LCD_start()
{
int i;
LCD.setCursor(0,0);
LCD.print ("* ¡ Bienvenido Señor *");
Delay(1000);
LCD.setCursor(0,1);
LCD.print ("proyecto: EE");
Delay(2000);
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
char displayitem7 [] = {'C', 'H', 'E', 'C', 'K', 'I', ' n ', 'G',' ', soy ', 'O', ' t ', 'O', 'R', de '};
char displayitem8 [] = {'C', 'O' estoy ', 'P', 'L', 'E', ' t ', 'E','d '};
para (i = 0; i < 15; i ++)
{
LCD.setCursor(i,0);
LCD.print(displayitem7[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 3; i ++)
{
Delay(200);
LCD.setCursor(15,0);
LCD.print("_");
Delay(200);
LCD.setCursor(15,0);
LCD.print("");
}
para (i = 0; i < 9; i ++)
{
LCD.setCursor(i,1);
LCD.print(displayitem8[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 3; i ++)
{
Delay(500);
LCD.setCursor(9,1);
LCD.print("");
Delay(500);
LCD.setCursor(9,1);
LCD.print("_");
}
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
char displayitem9 [] = {'B', 'A', de ', 'E', 'C', 'O','d ', 'E'};
char displayitem10 [] = {'U', 'P','d ', 'A', ' t ', 'E','d '};
para (i = 0; i < 8; i ++)
{
LCD.setCursor(i,0);
LCD.print(displayitem9[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 3; i ++)
{
Delay(200);
LCD.setCursor(8,0);
LCD.print("_");
Delay(200);
LCD.setCursor(8,0);
LCD.print("");
}
para (i = 0; i < 7; i ++)
{
LCD.setCursor(i,1);
LCD.print(displayitem10[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 3; i ++)
{
Delay(500);
LCD.setCursor(7,1);
LCD.print("");
Delay(500);
LCD.setCursor(7,1);
LCD.print("_");
}
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
char displayitem11 [] = {'I', ' n ', ' t ', 'I', 'A', 'L', 'I', de ', 'I', ' n ', 'G'};
char displayitem12 [] = {de ', 'E', 'Q', 'U', 'E', ' n ', 'C', 'E'};
para (i = 0; i < 11; i ++)
{
LCD.setCursor(i,0);
LCD.print(displayitem11[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 8; i ++)
{
LCD.setCursor(i,1);
LCD.print(displayitem12[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 3; i ++)
{
Delay(500);
LCD.setCursor(8,1);
LCD.print("");
Delay(500);
LCD.setCursor(8,1);
LCD.print("_");
}
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
char displayitem5 [] = {'W', 'A', 'I', ' t ', 'I', ' n ', 'G', '',' ', 'F', 'O', 'R'};
char displayitem6 [] = {'I', ' n ', de ', ' t ', 'R', 'U', 'C', ' t ', 'I', 'O', ' n '};
para (i = 0; i < 12; i ++)
{
LCD.setCursor(i,0);
LCD.print(displayitem5[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 11; i ++)
{
LCD.setCursor(i,1);
LCD.print(displayitem6[i]);
LCD.print("_");
Delay(50);
}
para (i = 0; i < 3; i ++)
{
Delay(500);
LCD.setCursor(11,1);
LCD.print("");
Delay(500);
LCD.setCursor(11,1);
LCD.print("_");
}
}
void LCD_normal()
{
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
LCD.setCursor(0,0);
LCD.print("ULTRASONIC");
LCD.setCursor(0,1);
LCD.print("INITIATED");
LCD.setCursor(11,0);
LCD.print(targetDistance);
Delay(50);
}
void LCD_obstacle()
{
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
LCD.setCursor(0,0);
LCD.print("OBSTACLE");
LCD.setCursor(0,1);
LCD.print("DETECTED");
LCD.setCursor(11,0);
LCD.print(targetDistance);
Delay(100);
}
void LCD_final()
{
LCD.setCursor(0,0);
LCD.print ("** gracias **");
Delay(1000);
LCD.setCursor(0,1);
LCD.print ("proyecto: EE");
Delay(2000);
para (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i);
LCD.print("");
}
}