Bonjour,

Voici mon projet :
Un petit robot qui se pilote en Bluetooth.

Voici mon problème :
Aucun problème pendant la compilation. La communication Bluetooth fonctionne bien. Dans le terminal, je peux bien voir les données transmises. Mais par contre impossible de tester ces données. Il ne rentre pas dans les conditions et n’exécute pas les commandes demandées (avancer, reculer...)

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
 
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
 
//Bluetooth
SoftwareSerial Bluetooth(6, 7); // (RX, TX) (pin Rx BT, pin Tx BT)
int Donnees=0;
// Ecran LCD
const int rs = 13, en = 12, d4 = 11, d5 = 10, d6 = 9, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Moteur CC
const byte MotorA1 = 2;
const byte MotorA2 = 3;
const byte MotorB1 = 4;
const byte MotorB2 = 5;
 
 
void setup() {
 
  // Ouvre la voie série avec le module BT
  Bluetooth.begin(9600);
 
  // Démarrage sur port série PC
  Serial.begin(9600);
 
  // Clignotement "PRET"
  lcd.clear(); // Effacer l'écran LCD
  delay(1000);
  lcd.write("PRET"); // "PRET" clignotement
  delay(1000);
}
 
void loop() {
  // put your main code here, to run repeatedly:
  if (Bluetooth.available()) {
    Donnees = Bluetooth.read();
    Serial.write(Donnees);
    if (Donnees==1){
      Serial.write("AVANCER"); 
      Avancer();
    }
    else if (Donnees==2){
      Reculer();
    }
    else if (Donnees==3){
      Gauche();
    }
    else if (Donnees==4){
      Droite();
    }
    else if (Donnees==5){
      Droite();
    }
  }
}
 
void Avancer(){
  lcd.clear();
  lcd.write("AVANCER"); 
  Serial.write("AVANCER"); 
  digitalWrite (MotorA1, LOW);
  digitalWrite (MotorA2, HIGH);
  digitalWrite (MotorB1, LOW);
  digitalWrite (MotorB2, HIGH);
  delay(3000);
}
 
void Reculer(){
  lcd.clear();
  lcd.write("RECULER");  
  digitalWrite (MotorA1, HIGH);
  digitalWrite (MotorA2, LOW);
  digitalWrite (MotorB1, HIGH);
  digitalWrite (MotorB2, LOW);
}
 
void Arret(){
  lcd.clear();
  lcd.write("ARRET");  
  digitalWrite (MotorA1, LOW);
  digitalWrite (MotorA2, LOW);
  digitalWrite (MotorB1, LOW);
  digitalWrite (MotorB2, LOW);
}
 
void Droite(){
  lcd.clear();
  lcd.write("DROITE");  
  digitalWrite (MotorA1, HIGH);
  digitalWrite (MotorA2, LOW);
  digitalWrite (MotorB1, LOW);
  digitalWrite (MotorB2, HIGH);
}
 
void Gauche(){
  lcd.clear();
  lcd.write("GAUCHE");  
  digitalWrite (MotorA1, LOW);
  digitalWrite (MotorA2, HIGH);
  digitalWrite (MotorB1, HIGH);
  digitalWrite (MotorB2, LOW);
}
Merci pour votre aide