Problema Modulo Bluetooth HC-05

Se effettuo con un terminale linux un echo tramite

echo -en  'AT+VERSION?\r\n' > /dev/ttyACM0

con cat mi dovrebbe dare la versione del software e invece non ho nessuna risposta!

Continui a non rispondere ... ... come lo hai collegato a Linux ???

Guglielmo

Nello screen che ho postato /dev/ttyACM0 è la usb di arduino dove ho caricato

#include <SoftwareSerial.h>     //IDE >= 1.0
//#include <NewSoftSerial.h>    //IDE <= 0023
const int rxPin = 2;
const int txPin = 3;
const int atPin = 4;
SoftwareSerial bluetooth(rxPin, txPin);  //IDE >= 1.0
//NewSoftSerial bluetooth(rxPin, txPin);   //IDE <= 0023
void setup() {
 
  Serial.begin(9600);
  bluetooth.begin(9600);
  pinMode(atPin, OUTPUT);
  Serial.println("Seriali attive...");
  digitalWrite(atPin, HIGH);
}
void loop() {
  if (bluetooth.available()) {  
    Serial.write(bluetooth.read());
  }
 
  if (Serial.available()) {
    bluetooth.write(Serial.read());
  }
}

della guida che mi ha linkato prima!

... ok, quindi :

  1. perché non usi il Serial Monitor del IDE invece di comandi da linea comando ? Almeno vedresti meglio cosa accade

  2. T'ho già detto che se così speri di dargli i comandi AT e speri che il modulo ti risponda ... te lo puoi scordare. Hai letto quanto ho scritto poco sopra ? E quanto ti ha detto lelebum ?

Guglielmo

1) Se uso il serial monitor dell'ide va in crash tutto :0 2) Selezionando la porta associata all'arduino setto così il modulo.Così effettuo una connessione seriale e non radio! E' ciò che si evince dalla guida che ho seguito(quella che lei mi ha postato) . A meno che non sia stupido questo ho capito! =(

No, è che non leggi quanto ti si dice ...

post di lelebum qui :

lelebum: ...... con velocità 38400.

mio post poco sopra, qui :

gpb01: ... il pin KEY deve essere messo HIGH altrimenti, comunque, non ci entrerai mai !

Ora, io vedo la velocità a 9600 e non parli di come hai messo il pin KEY ... quindi ... ]:D

Guglielmo

gtony: 1) Se uso il serial monitor dell'ide va in crash tutto

... e questo dimostra che hai anche installato male l'IDE di Arduino (devi scaricarlo da QUI e non usare quello che ti installa ubuntu) e, probabilmente, non hai settato i giusti permessi ... :roll_eyes:

Di nuovo, fatti un po' di ricerche qui sul forum, il problema dei permessi con linux è cosa di cui si hanno discusso più e più volte.

Guglielmo

  1. Il pin qui è settato su HIGH
void setup() {
 
  Serial.begin(9600);
  bluetooth.begin(9600);
  pinMode(atPin, OUTPUT);
  Serial.println("Seriali attive...");
digitalWrite(atPin, HIGH);
}
  1. Devo modificare la velocità della serial a 38400
    quindi
Serial.begin(38400);
  bluetooth.begin(9600);

In questo modo? :roll_eyes:

Il problema del crash l’ho risolto con un group

gtony: 1) Il pin qui è settato su HIGH

Sperando che lo senta ... ... io, di solito, lo collego fisicamente al +5 quando, quelle rare volte, mi serve di usare i comandi AT ... :roll_eyes:

gtony: 2) Devo modificare la velocità della serial a 38400 ...

Devi modificare la seriale a cui è connesso il modulo ... la SoftwareSerial ... è verso il modulo che occorre andare a 38400.

Guglielmo

Nulla! Ma che noia! :0 =(

Fai una foto NITIDA del tutto che controlliamo i collegamenti ... ... inoltre per la SoftwareSerial, come ti avevo detto, ti consiglio i pin 10 RX e 11 TX (... ragioni di compatibilità anche con altre board oltre alla UNO).

Guglielmo

Partendo da sinistra

Pin Colore Arduino
EN ->Nero → 6
Vcc ->Rosso ->5V
Gnd->Blu ->Gnd
Tx → Verde → 11
Rx ->Bianco ->10

Per quanto riguarda il ponte tra quali pin devo farli? 5 V e EN?

Sto per rinunciarci … tu non leggi quello che ti si dice …
… guarda come hai fatto i tuoi collegamenti !

EN … t’ho detto, collegalo direttamente al +5 per andare in modo AT

Poi :

RX bluetooth <— TX Arduino
TX bluetooth —> RX Arduino

… e, se vedo bene, tu li hai invertiti !!!

Guglielmo

No Sono collegati bene!
Tx → Verde → 11
Rx ->Bianco ->10

Se metto EN sui 5 V - atPin = 6 quindi non ha significato metterlo o sbaglio?
Il codice è questo

#include <SoftwareSerial.h>     //IDE >= 1.0
//#include <NewSoftSerial.h>    //IDE <= 0023
const int rxPin = 10;
const int txPin = 11;
const int atPin = 6;
SoftwareSerial bluetooth(rxPin, txPin);  //IDE >= 1.0
//NewSoftSerial bluetooth(rxPin, txPin);   //IDE <= 0023
void setup() {
 
  Serial.begin(9600);
  bluetooth.begin(38400);
  pinMode(atPin, OUTPUT);
  Serial.println("Seriali attive...");
  digitalWrite(atPin, HIGH);
}
void loop() {
  if (bluetooth.available()) {  
    Serial.write(bluetooth.read());
  }
 
  if (Serial.available()) {
    bluetooth.write(Serial.read());
  }
}

No Sono collegati bene! Tx -> Verde -> 11 Rx ->Bianco ->10

no, sono invertiti

l'RX e' il ricevente del modulo e lo devi collegare con il Tx di Arduino

const int rxPin = 10;
const int txPin = 11;

quindi li devi invertire

Io ci rinuncio ... tanto fa come gli pare ...

Guglielmo

Chiedo venia…
OK adesso ho capito !

Rx modulo -Tx Arduino
Tx modulo -Rx Arduino
EN - 5V

Ok adesso quando provo ad inviare il comando AT non esce nulla fin quando non tolgo l’alimentazione al modulo (uscita di caratteri strani)

Ringrazio a tutti ma in particolare al Signor Guglielmo per la PAZIENZA e la DISPONIBILITA’ mostratomi…
Ho risolto andando in modalità command.
Grazie Grazie Grazie :smiley:
Buona Serata!

Nuova immagine bitmap.bmp (223 KB)

Bene, sono contento ! :)

Guglielmo

Il livello logico di questo modulo è 3.3V o 5V?