Salve a tutti;
Da qualche giorno ho ordinato da internet il modulo bluetooth per arduino, il modello HC-05. Dopo aver fatto alcune ricerche su google, ho trovato "il modo" per collegare il modulo nel mio arduino (modello leonardo). Ho caricato uno sketch che ho trovato online da HowToMechatronics,Questa è la pagina. Ho installato la app sul mio cellulare "quella che si trova nella pagina web" e ho provato a far funzionare il tutto. Per prima cosa ho provato a vedere se il computer leggeva il modulo HC-05, e qui ci siamo. Ho provato la stessa cosa con l' applicazione che riesce a riconoscere perfettamente il modulo. Quando provo ad accendere il led, però, non funziona nulla. Credo di non aver sbagliato nulla nella parte hardware e ho seguito lo stesso identico software presente sul sito, ma nulla, per questo mi sono rivolto ad un forum attivo come quello di arduino
Grazie in anticipo
Come hai collegato il modulo HC-05 alla leonardo ? Che pin hai usato ? Che modulo hai (link) ? E' 5V tolerant sia sui dati che sull'alimentazione ? Che codice stai usando ? mettilo qui (... mi raccomando, in conformità al regolamento, punto 7, racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra) ...
Insomma, NON siamo indovini, tocca che ci dai più informazioni !
E' 5V tolerant sia sui dati che sull'alimentazione ?
Si da quel che so dovrebbe essere 5V tollerant sia sui dati che sull' alimentazione
Che codice stai usando ?
Il codice che sto usando è questo
#define ledPin 13
int state = 0;
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.begin(38400); // Default communication rate of the Bluetooth module
}
void loop() {
if(Serial.available() > 0){ // Checks whether data is comming from the serial port
state = Serial.read(); // Reads the data from the serial port
}
if (state == '0') {
digitalWrite(ledPin, LOW); // Turn LED OFF
Serial.println("LED: OFF"); // Send back, to the phone, the String "LED: ON"
state = 0;
}
else if (state == '1') {
digitalWrite(ledPin, HIGH);
Serial.println("LED: ON");;
state = 0;
}
}
Il manuale del HC-05 dice che la tensione di funzionamento deve essere 3.3V (min 3V e max 4.2V).
Di conseguenza, i pin TXD ed RXD lavorano a 3.3V.
Tuttavia esiste una versione a 5V che ha un regolatore lineare a bordo che trasforma i 5V in 3.3V necessari al funzionamento ed ha anche un traslatore di livello per la connessione di RXD.
Infatti, mentre lo RX di Arduino (che accetta un HIGH anche di 3.3V) può essere collegato direttamente al TXD del modulo, il pin TX di Arduino deve limitare la tensione attraverso un diodo od un partitore di tensione per essere collegato al RXD del modulo.
Probabilmente hai la versione a 5V, caratterizzata da una strip line maschio a 6 pin.
Se è così, il collegamento che hai fatto è corretto, ma essendo una LEONARDO, la seriale è la Serial1, in quanto la Serial(0) è simulata via firmware e serve al collegamento con il PC attraverso la USB.
cyberhs:
Se è così, il collegamento che hai fatto è corretto, ma essendo una LEONARDO, la seriale è la Serial1, in quanto la Serial(0) è simulata via firmware e serve al collegamento con il PC attraverso la USB.
Difatti ... il problema è che avendo dato lui per scontato, senza leggere il reference, che la Leonardo fosse uguale alla UNO, ha usato la classe Serial, mentre sul reference che gli ho linkato, c'è chiaramente specificato che, sulla Leonardo, la Serial si riferisce alla USB, mentre la Serial1 si riferisce ai pin 0 e 1.
Spero comunque che sia fortunato ...
... sono una bassa percetuale i moduli HC-05 che funzionano bene connessi alla vera seriale della MCU (... e basta fare una ricerca qui sul forum per verificarlo). NON per nulla consigliamo sempre di usare la SoftwareSerial e di creare una seriale vertituale sui pin 10 (RX) e 11 (TX).
Comunque ... provare prima con Serial1 è d'obbligo ... se va bene, meglio così, altrimenti, si ripiega sulla SoftwareSerial.