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
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?
f-leb
February 17, 2017, 4:22pm
5
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
kamill
February 17, 2017, 7:37pm
7
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.
al1fch
February 18, 2017, 8:24am
9
Bonjour
@cedric08 :
???Le code dans les balises c'est mieux
"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);
}
}
}
kamill
February 18, 2017, 9:12am
11
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.
kamill
February 18, 2017, 12:30pm
13
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!!
kamill
February 18, 2017, 1:37pm
15
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.
kamill
February 18, 2017, 3:40pm
17
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?
icare
February 18, 2017, 5:47pm
20
Bonjour,
Rajoute le t manquant dans bluetoot h