probleme de programmation? LED / bluetooth

Bonjour, je suis débutant sur arduino et j'essaie de piloter une led à partir d'une tablette via une liaison bluetooth.

J'ai réalisé sur app inventor une application simple qui envoie un 1 quand je clique "sur allumer" et 0 quand je clique sur "éteindre"

Apparemment la liaison tablette / arduino s'effectue bien, mais quand je clique sur les bouton rien ne se passe!

Mon programme est-il faux?

j'ai une arduino Uno avec un shield et une LED grove et un module bluetooth v3.0.

J'ai connecté ma led sur le shield sur D4 et mon module bluetooth sur D6

Merci d'avance de votre aide!

en pièces jointes: image de l'application android
image du programme bloc pour l'applicatio
image du programme arduino sur blockly

et sur IDE: voici le programme

#include <SoftwareSerial.h>

char bluetooth;

SoftwareSerial COMserie_2(6,7);

void setup() {
COMserie_2.begin(300);
pinMode(4, OUTPUT);
}

void loop() {
if (COMserie_2.available()) {
bluetooth = COMserie_2.read();
if (bluetooth == 1) {
digitalWrite(4,HIGH);

}
if (bluetooth == 0) {
digitalWrite(4,LOW);

}

}

}

Le code dans les balises c'est mieux :wink:

D'après ton code
SoftwareSerial COMserie_2(6,7);

Donc ton bluetooth doit êtres relié avec D6 et D7 pour TX Rx toi tu ne parles que de D6.

Désolé, Rhamkota mais j'ai du mal a comprendre!

???Le code dans les balises c'est mieux ;-)???

Je ne sais pas écrire du code dans l'IDE, le code vient de blockly@rduino. le code n'est pas dans les balises?

Mon module bluetooth est connecté à une carte shield sur la connectique D6, elle correspond à RX 6 et TX 7

Ké galère!!!
je cherche une solution mais cela ne marche toujours pas.

Est ce que cela peut venir d'une incompatibilité entre le module serial bluetooth v3.0 et la base shield v2.1?

Comment le savoir, j'ai rien trouvé sur internet.
Comment tester la liaison?

Bonjour,

N'y aurait-il pas confusion entre la valeur numérique 1, 2... et le caractère "1", "2"... ?

Peut-être!

Comment faire pour eviter cette confusion? Merci

Bonjour,

Pour tester des caractères:

  if (bluetooth == '1') {
...
  if (bluetooth == '0') {

je viens d'essayer avec la modification de Kamill au sujet des caractères:

Programme:

#include <SoftwareSerial.h>

char bluetooth;

SoftwareSerial COMserie_11(6,7);

void setup() {
COMserie_11.begin(9600);
pinMode(4, OUTPUT);
}

void loop() {
if (COMserie_11.available()) {
bluetooth = COMserie_11.read();
if (bluetooth == '1') {
digitalWrite(4,HIGH);

}
if (bluetooth == '0') {
digitalWrite(4,LOW);

}

}

}

mais toujours impossible de piloter la del

Mon programme sur app inventor demande quand le bouton ON est cliqué , appeler client bluetooth1.envoyer 1 octet, nombre 1

j'ai également essayé sur app inventor quand le bouton ON est cliqué , appeler client bluetooth1.envoyer texte, texte "1"

mais cela ne marche pas également.

Merci de votre aide.

Bonjour
@cedric08 :

???Le code dans les balises c'est mieux :wink:???

"code entre balises" veut dire : sur ce forum utiliser les balises 'code' pour insérer du code
le résultat est visible dans le message #6 de kamill.

cf message fixe en tête du forum :"Faire un nouveau mesage avec des balises".

merci al1fch, je corrige:

#include <SoftwareSerial.h>

char bluetooth;

SoftwareSerial COMserie_11(6,7);

void setup() {
  COMserie_11.begin(9600);
  pinMode(4, OUTPUT);
}

void loop() {
  if (COMserie_11.available()) {
    bluetooth = COMserie_11.read();
    if (bluetooth == '1') {
      digitalWrite(4,HIGH);

    }
    if (bluetooth == '0') {
      digitalWrite(4,LOW);

    }

  }

}

Déjà il faut savoir si tu reçoit et ce que tu reçoit
Utilise Serial.print() pour afficher la variable bluetooth sur le moniteur série.

merci kamill, je pense que cela aider car je sais pas vraiment si cela transmet !
ok, je vais tester ! mais comment faire je suis novice!
je mets Serial.print() dans le programme ou dans la fenetre du moniteur serie.
Quelle est la démarche à suivre?
Merci.

Dans le setup tu initialise la liaison avec
Serial.begin(9600);

Après la lecture de la liason
bluetooth = COMserie_11.read();

Tu mets:
Serial.println(bluetooth);

Tu lances le moniteur série dans l'IDE (en haut à droite) et tu vérifie que la config du moniteur est la même que dans ton programme (9600 bds)

si j'ai bien compris, je fais le programme suivant:

SoftwareSerial COMserie_11(6,7);

void setup() {
  COMserie_11.begin(9600);
  pinMode(4, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (COMserie_11.available()) {
    bluetooth = COMserie_11.read();
  Serial.printIn(bluetooh);
    if (bluetooth == 1) {
      digitalWrite(4,HIGH);

    }
    if (bluetooth == 0) {
      digitalWrite(4,LOW);

    }

  }

}

quand je vérifie le programme, il y a le message d'erreur suivant:

C:\Users\chach\AppData\Local\Temp\arduino_modified_sketch_484559\sketch_feb18a.ino: In function 'void loop()':

sketch_feb18a:16: error: 'class HardwareSerial' has no member named 'printIn'

Serial.printIn(bluetooh);

^

sketch_feb18a:16: error: 'bluetooh' was not declared in this scope

Serial.printIn(bluetooh);

^

exit status 1
'class HardwareSerial' has no member named 'printIn'

Quand je clique sur moniteur série, la fenêtre apparait vide!!

Tu as mis printIn à la place de printIn
C'est un l comme lapin

ok merci! je rectifie....mais la fenêtre apparait vide!!

et

message d'erreur:

Arduino : 1.8.1 (Windows 7), Carte : "Arduino/Genuino Uno"

sketch_feb18a:1: error: 'SoftwareSerial' does not name a type

SoftwareSerial COMserie_11(6,7);

^

C:\Users\chach\AppData\Local\Temp\arduino_modified_sketch_603652\sketch_feb18a.ino: In function 'void setup()':

sketch_feb18a:4: error: 'COMserie_11' was not declared in this scope

COMserie_11.begin(9600);

^

C:\Users\chach\AppData\Local\Temp\arduino_modified_sketch_603652\sketch_feb18a.ino: In function 'void loop()':

sketch_feb18a:10: error: 'COMserie_11' was not declared in this scope

if (COMserie_11.available()) {

^

sketch_feb18a:11: error: 'bluetooth' was not declared in this scope

bluetooth = COMserie_11.read();

^

exit status 1
'SoftwareSerial' does not name a type

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Dans ton dernier programme il manque ca:

#include <SoftwareSerial.h>

char bluetooth;

Desolé kamill de l'erreur, mauvais copier/coller!

#include <SoftwareSerial.h>

char bluetooth;


SoftwareSerial COMserie_11(6,7);

void setup() {
  COMserie_11.begin(9600);
  pinMode(4, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (COMserie_11.available()) {
    bluetooth = COMserie_11.read();
  Serial.println(bluetooh);
    if (bluetooth == 1) {
      digitalWrite(4,HIGH);

    }
    if (bluetooth == 0) {
      digitalWrite(4,LOW);

    }

  }

}

j'ai rectifié mais nouveau message d'erreur! le voici:

Arduino : 1.8.1 (Windows 7), Carte : "Arduino/Genuino Uno"

C:\Users\chach\AppData\Local\Temp\arduino_modified_sketch_645171\sketch_feb18a.ino: In function 'void loop()':

sketch_feb18a:17: error: 'bluetooh' was not declared in this scope

Serial.println(bluetooh);

^

exit status 1
'bluetooh' was not declared in this scope

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

toujours rien dans le Moniteur série. Mon programme vous semble t-il à première vu bon?

Bonjour,
Rajoute le t manquant dans bluetooth