HC-05: RX-TX LEVEL 3.3v: résistance?

Merci lesept Ca me mine d'arriver à rien

Ce qui est chiant c'est de n'avoir pas de procédure officielle standard, chacun y va de son truc, un coup on configure windows, un coup non, un coup on met 3.3v, un coup GRND ...

Le pépin maintenant c'est que windows et mes modules sont apairés, je vais essayer de faire en sorte que windows les oublie et je reviens avec un montage.

Donc voilou
Je me base sur le tuto d’Anne-Laure.

Sur la photo, EN est à la masse, selon les préconisations d’Eskimon. Anne-Laure le met sur le 3.3v de l’arduino.

NANO HC05
13LED
5v VCC
GND GND
D3 TX
D2 RX (avec 1k et 2k à la masse)

Je suis sous windows 10 (désolé^^)
Module bloutouffe HC 05
Arduino NANO

premier point:
ENABLE semble déterminer si on met HC05 en esclave ou en maitre.
Je le mets en l’air ou en 3,3v?

ensuite:
Il faut bien dire à windows et à HC05 de s’appairer. Quelle procédure?
Comment définir le port COM?

La photo n’est pas passée, je recommence

J'y arrive avec mon téléphone... avec ce tuto en video j'ai viré les résistances et EN est en l'air.

Il y a des ports COM de toutes sortes sur le pc, je dois cafouiller là...

La variable reçue par NANO est un char. Pour récupérer un INT et pouvoir par exemple incrémenter une variable pour une sortie PWM, un nombre de boucles dans un FOR, que faut-il faire? Ca c'est un point que je maîtrise encore moins que le reste...

kammo: ... Je suis sous windows 10 (désolé^^) Module bloutouffe HC 05 Arduino NANO

premier point: ENABLE semble déterminer si on met HC05 en esclave ou en maitre. Je le mets en l'air ou en 3,3v?

ensuite: Il faut bien dire à windows et à HC05 de s'appairer. Quelle procédure? Comment définir le port COM?

Bonsoir J'ai l'impression que tu coince sur les affectation de ports "comm" sous windows

la 1ere question : ton PC possede bien un adaptateur bluetooth supportant le profil Bluetooth SPP ? fait une copie écran développée de ton gestionnaire de peripherique en ce qui concerne le bluetooth et les ports comm

ça doit donner un truc dans le genre |347x500

Il fait bien Bluetooth. J'ai appairé mon téléphone et déjà mis une oreillette. je n'arrive pas à avoir le même affichage que toi. Je ne trouve même plus paint ...

Je ne trouve même plus paint ...

Putain là c'est grave. Sans paint, Windows n'est plus rien.

One solution : TUX

|500x312

J'y pense vraiment. Je connais pas Linux, ça sent les complications, je vais voir si mon vieux machin dans le placard peut marcher avec Arduino pour commencer à passer à Linux. Ca a des avantages et des inconvénients, faut que je me documente sinon je vais être perdu ^^ J'ai vieilli bon sang >:( :sob: :stuck_out_tongue_closed_eyes: :astonished:

kammo: Il fait bien Bluetooth. J'ai appairé mon téléphone et déjà mis une oreillette. je n'arrive pas à avoir le même affichage que toi. Je ne trouve même plus paint ...

OUI OK mais ça n'indique en rien si le profil SPP est supporté par ton adaptateur BT

J'en ai eu qui ne voulais rien savoir en SPP alors que pour l'audio , ça ne posait pas de problemes

T'inquiète mon pote. Je m'y suis mis il y a dix ans quand mon WINDOWS 2000 a refusé de démarrer deux fois dans le même mois. Je lui ai dit d'aller se faire foutre et j'ai installé Ubuntu 6.06. J'ai depuis cette époque conservé la même partition utilisateur, copiée / collée de machine en machine, en tout cinq je pense.

Rien qu'aujourd'hui au boulot : recherche dans une arborescence de tous les fichier nommés Makefile dans une arborescence (grosse arborescence). Sous WINDOWS : 30 secondes. Sous Ubuntu : 2 secondes.

Sur un beau CORE I7 DELL.

Faut vraiment aimer avoir mal au cul pour utiliser encore WINDOWS pour faire du développement à l'heure actuelle. Et je reste poli, vous aurez remarqué.

Même si tu perds quelques semaines de ta vie à apprendre, tu gagneras des mois ensuite.

@+

Un char, c'est un byte déguisé : pour passer un char en byte (donc en int) tu fais :

byte = char - '0';

C'est tout bête : tu ôtes au char la valeur du code ASCII du 0. Bien sûr ça ne fonctionne que si ton char contient un chiffre de 0 à 9.

kammo: J'y pense vraiment. Je connais pas Linux, ça sent les complications

8) Pas de complications simplement accepter de s'habituer à perdre des habitudes pour en reprendre d'autres :D

j'avais eu qq bonnes experiences avec linux , il y a qq années , j'ai toujours un ancien desktop en double boot windows/linux (qui ne voit pas beaucoup la lumière aujourd'hui :grin: )

Perso pour ce qui concerne environnement "Arduino" et comme j'avais un peu de temps, du materiel exploitable

J'ai décidé fin 2017 début 2018 de retenter Linux avec une approche plus pragmatique centrée sur "l'IDE arduino "

çà demande un peu de temps d'approche (surtout pour le choix d'une distribution) , mais franchement rien de rédhibitoire.

Et franchement , ( pour de la config hard +/- equivalente) , ne serait ce que les temps de compilations , c'est le jour et la nuit.

tu peux lire ici , mes reflexions

Artouste: - pour le windows , compile en 4'50" - pour le xubuntu, compile en 37"

dans les 2 cas je démarre le chronométrage, apres avoir ouvert l'IDE et chargé l'exemple.

La différence me semble quand même "énorme"

Non, le temps de compilation Linux est normal. Le filesystem Windwos NTFS est construit sur le même principe que ce qui se faisait à l'époque des bandes magnétiques, c'est tout. Cela date de l'âge de pierre.

Une bonne machine Windows doit posséder un CoreI7, 16G0 de RAM et un SSD, sinon ça rame.

@+

Bonjour

L'indispensable antivirus pénalise également Windows !!

J'ai fait un test en excluant :

C:\users**\AppData\Local\Àrduino15 C:\Users***\AppData\Temp

des répertoires à surveiller

Compilation plus rapide

lesept:
Un char, c’est un byte déguisé : pour passer un char en byte (donc en int) tu fais :

byte = char - ‘0’;

C’est tout bête : tu ôtes au char la valeur du code ASCII du 0. Bien sûr ça ne fonctionne que si ton char contient un chiffre de 0 à 9.

C’est dejà pas mal, mais si je veux un float ou un int pour, par exemple, régler un PID … je fais comment?

int = char - ‘0’;
float =char-‘0’;

Presque sur que ça marche pas…

Et bah si, ça marche! et du premier coup. Si Arduino était compliqué ça se saurait! :grinning:

#include<SoftwareSerial.h>

#define TxD 3
#define RxD 2
#define LED_PIN 13

SoftwareSerial bluetoothSerial(TxD, RxD);

float c;//char, int, byte, tout c'qu'on veut c'est merveilleux, c'est la fête

void setup() {
  bluetoothSerial.begin(9600);
  Serial.begin(9600);
  pinMode(LED_PIN, OUTPUT);
  }

void loop() {
  if(bluetoothSerial.available()){
    c = bluetoothSerial.read();
    Serial.println(c);
    if(c=='1'){
      digitalWrite(LED_PIN, HIGH);          
    }
    if(c=='0'){
      digitalWrite(LED_PIN, LOW);
    }
  }
}

Vous m’avez bien fait flipper hier. Un truc qui marche pas, personne sur mon post, et hop, maintenant c’est le bar du coin ^^
Alors plutôt que de chercher partout les versions de Linux, je pense ouvrir un post, peut-être plutôt dans le bar, ça m’évitera un kick ^^
Ouais tiens, je lance un sujet au bar: LINUX: à vos souhaits? (pas trouvé mieux j’ai mal dormi)

NON en fait ça marche pas…
Si je lui dis de récupérer la variable en int, ce petit malin récupère la valeur ASCII

#include<SoftwareSerial.h>

#define TxD 3
#define RxD 2
#define LED_PIN 13

SoftwareSerial bluetoothSerial(TxD, RxD);

int c;//hmmm ya un truc qui cloche, notez qu'un partie du code est entre /* */

void setup() {
  bluetoothSerial.begin(9600);
  Serial.begin(9600);
  pinMode(LED_PIN, OUTPUT);
  }

void loop() {
  if(bluetoothSerial.available()){
    c = bluetoothSerial.read();
    Serial.println(c);
    /*if(c=='1'){
      digitalWrite(LED_PIN, HIGH);          
    }
    if(c=='0'){
      digitalWrite(LED_PIN, LOW);
    }*/
    for (int i=0; i<c; i++) {
      digitalWrite(LED_PIN, HIGH); 
      delay(50);
      digitalWrite(LED_PIN, LOW);
      delay(150);}
    }
  }

Et voici ce qu’affiche le moniteur quand j’envoie ‘3’ depuis mon smartphone:

51
13
10

51, ok, c’est l’ASCII… le reste je sais pas.

Est-il possible de récupérer autre chose que de l’ASCII?

Oui, 51 c'est le code ASCII de 3 (en décimal) : Apprends cette table par coeur, ça t'aidera pour plus tard ! 13 c'est CR et 10 LF : ça correspond à '\n'

Donc tu fais : c = bluetoothSerial.read() - '0';et tu obtiendras bien un 3 dans ton float.