Bonjour,
Pour débuter avec l’arduino, je suis parti sur la réalisation d’un distributeur de boisson. J’ai réussi à faire fonctionner la connexion bluetooth à l’arduino et les déclenchements des pompes suivants les cocktails commandés. MAIS car il y a un mais, je bloque sur une amélioration pour simplifier la transmission des données du smartphone à l’arduino. Mon code fonctionne bien si les cocktails sont codifiés 1, 2 3, ou a, b ,c , d mais je voudrais que la codification corresponde aux trois premières lettres du cocktail, exemple pour le cocktail Alabama dans MIT App la fonction est Appeler Bluetooth Envoyer Texte : ala, pour un moijto ce sera moj.
Mais ca ne marche pas. Mon erreur vient du parametrage dans le code arduino. Si j’ai bien compris le Serial.Read ne lit que le premier caractère et non pas les 3. Le Serial.readString ne fait un code erreur. J’ai besoin d’un coup de main pour m’aider pour pouvoir faire lire un groupe de 3 caractères à mon arduino pour qu’il suive un cycle de démarrage de pompe.
Voici mon code de test…qui ne fonctionne pas. Il ne doit pas manquer grand chose mais là je bloque. Merci d’avance de vos réponses.
Peut-etre le problème ne vient-il pas de Serail.read mais d’un autre ligne, je ne sais plus…
#include <SoftwareSerial.h>
SoftwareSerial HC05(0,1);
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT); // led sur sortie 10
Serial.begin(9600); // blth en 9600
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
//digitalWrite(ROUGE,HIGH);
}
void loop()
{
while (Serial.available() == 0);
char b = Serial.read();
if (b == "ala")
{
digitalWrite(2, LOW); //pompe 1
delay(1000);
digitalWrite(2, HIGH);
delay(1500);
digitalWrite(3, LOW); //pompe 2
delay(2000);
digitalWrite(3, HIGH);
delay(1500);
digitalWrite(4, LOW); //pompe 3
delay(3000);
digitalWrite(4, HIGH);
delay(1500);
digitalWrite(5, LOW); //pompe 4
delay(4000);
digitalWrite(5, HIGH);
delay(1500);
digitalWrite(6, LOW); //pompe 5
delay(5000);
digitalWrite(6, HIGH);
delay(1500);
digitalWrite(7, LOW); //pompe 6
delay(6000);
digitalWrite(7, HIGH);
delay(1500);
digitalWrite(8, LOW); //pompe 7
delay(7000);
digitalWrite(8, HIGH);
delay(1500);
digitalWrite(9, LOW); //pompe 8
delay(8000);
digitalWrite(9, HIGH);
delay(1500);
digitalWrite(10, LOW); //pompe 8
delay(4000);
digitalWrite(10, HIGH);
delay(1500);
}
if (b == "moj")
{
digitalWrite(2, HIGH); //pompe 1
delay(544);
digitalWrite(2, LOW);
delay(1500);
digitalWrite(3, HIGH); //pompe 1
delay(1088);
digitalWrite(3, LOW);
delay(1500);
digitalWrite(6, HIGH); //pompe 1
delay(3000);
digitalWrite(6, LOW);
delay(1500);
digitalWrite(8, HIGH); //pompe 1
delay(1750);
digitalWrite(8, LOW);
delay(1500);
}
delay(100);
}