Etape 11 : Programme/croquis
#include
#include
Innovente LCD(10,9,5,4,3,2) ;
int i ;
j char ;
int redled = 0 ;
int blueled = 1 ;
int trigPin = 12 ;
int echoPin = 13 ;
int left1motor = 6 ;
int left2motor = 7 ;
int right1motor = 8 ;
int right2motor = 11 ;
float pingTime ;
float targetDistance ;
void setup() {}
Serial.Begin(9600) ;
pinMode (trigPin, sortie) ;
pinMode (echoPin, entrée) ;
pinMode (left1motor, sortie) ;
pinMode (left2motor, sortie) ;
pinMode (right1motor, sortie) ;
pinMode (right2motor, sortie) ;
pinMode (redled, sortie) ;
pinMode (blueled, sortie) ;
LCD.begin(16,2) ;
LCD_start() ;
while (!. Serial.available()) ;
j=Serial.Read() ;
}
void loop() {}
Si (j == « a » || j == 'A')
{j = « Z » ;
pour (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i) ;
LCD.print("") ;
}
Char [] displayitem1 = {'A', 'U', ' t ', 'O', suis ', 'A', ' t ', 'I","C",""," C", ' t", "R", "L"} ;
Char [] displayitem2 = {"A", "C", ' t ', 'I', 'V', 'A', ' t ', 'E','d '} ;
pour (i = 0; i < 14; i ++)
{
LCD.setCursor(i,0) ;
LCD.print(displayitem1[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 9; i ++)
{
LCD.setCursor(i,1) ;
LCD.print(displayitem2[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 3; i ++)
{
Delay(500) ;
LCD.setCursor(9,1) ;
LCD.print("") ;
Delay(500) ;
LCD.setCursor(9,1) ;
LCD.print("_") ;
}
Automatic() ;
}
ElseIf (j == suis ' || j == suis ')
{
j = « Z » ;
pour (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i) ;
LCD.print("") ;
}
Char [] displayitem3 = {suis ', 'A', ' n, 'U', 'A', 'L', '',' C', 'O', ' n, ' t ', 'R', 'O', 'L'} ;
Char [] displayitem4 = {"A", "C", ' t ', 'I', 'V', 'A', ' t ', 'E','d '} ;
pour (i = 0; i < 14; i ++)
{
LCD.setCursor(i,0) ;
LCD.print(displayitem3[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 9; i ++)
{
LCD.setCursor(i,1) ;
LCD.print(displayitem4[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 3; i ++)
{
Delay(500) ;
LCD.setCursor(9,1) ;
LCD.print("") ;
Delay(500) ;
LCD.setCursor(9,1) ;
LCD.print("_") ;
}
Manual() ;
}
d’autre
{
pour (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 », les de ', ' t ', 'R', 'U', 'C', ' t ', 'I', 'O', ' ne} ;
pour (i = 0; i < 12; i ++)
{
LCD.setCursor(i,0) ;
LCD.print(displayitem5[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 11; i ++)
{
LCD.setCursor(i,1) ;
LCD.print(displayitem6[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 3; i ++)
{
Delay(500) ;
LCD.setCursor(11,1) ;
LCD.print("") ;
Delay(500) ;
LCD.setCursor(11,1) ;
LCD.print("_") ;
}
}
while (!. Serial.available()) ;
j=Serial.Read() ;
}
Sub manual()
{
char de com ;
while (!. Serial.available()) ;
g:
com=Serial.Read() ;
Si (com == « w » || com == 'W')
{
while (!. Serial.available())
{
digitalWrite (left1motor, HIGH) ;
digitalWrite (left2motor, basse) ;
digitalWrite (right1motor, HIGH) ;
digitalWrite (right2motor, basse) ;
LCD_normal() ;
Serial.println("Forward") ;
}
}
ElseIf (com == de ' || com == les de ')
{
while (!. Serial.available())
{
digitalWrite (left1motor, basse) ;
digitalWrite (left2motor, HIGH) ;
digitalWrite (right1motor, basse) ;
digitalWrite (right2motor, HIGH) ;
LCD_normal() ;
Serial.println("backward") ;
}
}
ElseIf (com == « a » || com == 'A')
{
while (!. Serial.available())
{
digitalWrite (left1motor, basse) ;
digitalWrite (left2motor, HIGH) ;
digitalWrite (right1motor, HIGH) ;
digitalWrite (right2motor, basse) ;
LCD_obstacle() ;
Serial.println ("virage à gauche") ;
}
}
ElseIf (com == a ' || com == a ')
{
while (!. Serial.available())
{
digitalWrite (left1motor, HIGH) ;
digitalWrite (left2motor, basse) ;
digitalWrite (right1motor, basse) ;
digitalWrite (right2motor, HIGH) ;
LCD_obstacle() ;
Serial.println ("virage à droite") ;
}
}
Si (com == « a » || com == « A » || com == de ' || com == les de ' || com == « A » || com == « a » || com == a ' || com == a ')
Goto g ;
ElseIf (com == « e » || com == "E")
{
digitalWrite (left1motor, basse) ;
digitalWrite (left2motor, basse) ;
digitalWrite (right1motor, basse) ;
digitalWrite (right2motor, basse) ;
LCD_final() ;
Serial.println("Stopped") ;
}
}
Sub automatic()
{
g:
while (!. Serial.available())
{
digitalWrite (trigPin, basse) ;
delayMicroseconds(2) ;
digitalWrite (trigPin, HIGH) ;
delayMicroseconds(10) ;
digitalWrite (trigPin, basse) ;
pingTime = pulseIn (echoPin, HIGH) ;
pingTime = pingTime/29 ;
targetDistance = pingTime/2 ;
Serial.Print ("est la Distance à la cible:") ;
Serial.Print(targetDistance) ;
Serial.println ("cm") ;
Delay(10) ;
if(targetDistance==0.0)
{
digitalWrite (left1motor, HIGH) ;
digitalWrite (left2motor, basse) ;
digitalWrite (right1motor, HIGH) ;
digitalWrite (right2motor, basse) ;
LCD_normal() ;
Serial.println("Forward") ;
}
d’autre if(targetDistance>30.0)
{
digitalWrite (left1motor, HIGH) ;
digitalWrite (left2motor, basse) ;
digitalWrite (right1motor, HIGH) ;
digitalWrite (right2motor, basse) ;
LCD_normal() ;
Serial.println("Forward") ;
}
d’autre if(targetDistance<10.0)
{
digitalWrite (left1motor, basse) ;
digitalWrite (left2motor, HIGH) ;
digitalWrite (right1motor, basse) ;
digitalWrite (right2motor, HIGH) ;
LCD_normal() ;
Serial.println("backward") ;
}
d’autre if(targetDistance<30.0)
{
digitalWrite (left1motor, basse) ;
digitalWrite (left2motor, HIGH) ;
digitalWrite (right1motor, HIGH) ;
digitalWrite (right2motor, basse) ;
LCD_obstacle() ;
Serial.println ("virage à gauche") ;
}
}
int com=Serial.read() ;
Si (com! = « e » || com! = 'E')
Goto g ;
}
Sub LCD_start()
{
int i ;
LCD.setCursor(0,0) ;
LCD.print ("* bienvenu SIR *") ;
Delay(1000) ;
LCD.setCursor(0,1) ;
LCD.print ("projet : Carl") ;
Delay(2000) ;
pour (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i) ;
LCD.print("") ;
}
Char [] displayitem7 = {"C", "H", "E", "C", "K", 'I', « n », « G », « ', suis ', 'O', ' t ', 'O', 'R', de '} ;
Char [] displayitem8 = {"C", "O", suis ', 'P', 'L', 'E', ' t ', 'E','d '} ;
pour (i = 0; i < 15; i ++)
{
LCD.setCursor(i,0) ;
LCD.print(displayitem7[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 3; i ++)
{
Delay(200) ;
LCD.setCursor(15,0) ;
LCD.print("_") ;
Delay(200) ;
LCD.setCursor(15,0) ;
LCD.print("") ;
}
pour (i = 0; i < 9; i ++)
{
LCD.setCursor(i,1) ;
LCD.print(displayitem8[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 3; i ++)
{
Delay(500) ;
LCD.setCursor(9,1) ;
LCD.print("") ;
Delay(500) ;
LCD.setCursor(9,1) ;
LCD.print("_") ;
}
pour (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i) ;
LCD.print("") ;
}
Char [] displayitem9 = {'B', 'A', les de ', 'E', 'C', 'O','d, "E"} ;
Char [] displayitem10 = {'U', 'P','d ', 'A', ' t ', 'E','d '} ;
pour (i = 0; i < 8; i ++)
{
LCD.setCursor(i,0) ;
LCD.print(displayitem9[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 3; i ++)
{
Delay(200) ;
LCD.setCursor(8,0) ;
LCD.print("_") ;
Delay(200) ;
LCD.setCursor(8,0) ;
LCD.print("") ;
}
pour (i = 0; i < 7; i ++)
{
LCD.setCursor(i,1) ;
LCD.print(displayitem10[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 3; i ++)
{
Delay(500) ;
LCD.setCursor(7,1) ;
LCD.print("") ;
Delay(500) ;
LCD.setCursor(7,1) ;
LCD.print("_") ;
}
pour (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 = {les de ', 'E', 'Q', 'U', 'E', ' n, "C", "E"} ;
pour (i = 0; i < 11; i ++)
{
LCD.setCursor(i,0) ;
LCD.print(displayitem11[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 8; i ++)
{
LCD.setCursor(i,1) ;
LCD.print(displayitem12[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 3; i ++)
{
Delay(500) ;
LCD.setCursor(8,1) ;
LCD.print("") ;
Delay(500) ;
LCD.setCursor(8,1) ;
LCD.print("_") ;
}
pour (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 », les de ', ' t ', 'R', 'U', 'C', ' t ', 'I', 'O', ' ne} ;
pour (i = 0; i < 12; i ++)
{
LCD.setCursor(i,0) ;
LCD.print(displayitem5[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 11; i ++)
{
LCD.setCursor(i,1) ;
LCD.print(displayitem6[i]) ;
LCD.print("_") ;
Delay(50) ;
}
pour (i = 0; i < 3; i ++)
{
Delay(500) ;
LCD.setCursor(11,1) ;
LCD.print("") ;
Delay(500) ;
LCD.setCursor(11,1) ;
LCD.print("_") ;
}
}
Sub LCD_normal()
{
pour (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) ;
}
Sub LCD_obstacle()
{
pour (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) ;
}
Sub LCD_final()
{
LCD.setCursor(0,0) ;
LCD.print ("** Merci **") ;
Delay(1000) ;
LCD.setCursor(0,1) ;
LCD.print ("projet : Carl") ;
Delay(2000) ;
pour (i = 0; i < 2; i ++)
{
LCD.setCursor(0,i) ;
LCD.print("") ;
}
}