Go Down

Topic: [HOWTO] Guida (più o meno) completa all'utilizzo di Moduli Bluetooth (Read 87896 times) previous topic - next topic


pitusso

Ciao

Quote
mi dice Livor V1.5


ecco, slave è e slave rimane  ]:)

Sosuke

ecco, lo sapevo  :) la solita fortuna... tu non è che mi puoi linkare un modulo master da comprare? magari già master così non vi rompo più  :P

ma come mai nella descrizione fanno riferimento al fatto che si possa switchare quando non si può?

pitusso

Ciao,

Quote
come mai nella descrizione fanno riferimento al fatto che si possa switchare quando non si può


penso che abbiano copia-incollato la descrizione di un altro modulo..
Nel dubbio, puoi anche provare, danni non ne fai.

Per eventuali acquisti, ti basta essere sicuro che sia un HC-05 oppure qualsiasi altro modulo (HC-06 o HC-07) ma configurato Master.
Qui avevo postato un paio di link:
http://arduino.cc/forum/index.php/topic,104903.msg865842.html#msg865842

Sosuke

ok grazie!

mi spiegheresti solo che vuol dire che bisogna impostare il pio11 come high e a cosa dovrei collegarlo per fare ciò?

lesto

per mettere un pin ad high di solito si mette una resistenza da 10K dal pin a VCC(5v  3v, a seconda della tensione di lavoro sensore)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

pitusso

ciao

Quote
mi spiegheresti solo che vuol dire che bisogna impostare il pio11 come high e a cosa dovrei collegarlo per fare ciò?


innanzitutto verifica se il pin KEY del tuo connettore corrisponde al pin in questione.
Sulla guida, prima parte, trovi la piedinatura del modulo, così puoi vedere dove si trova.

Se è connesso direttamente, sei a posto, altrimenti devi saldarci un filo.

Quando hai preparato tutto, alimenti il modulo.
Solo allora connetti questo piedino ai 5v di arduino con una resistenza da 2k2 (sufficiente, pure una 10k va bene) o direttamente al piedino 3v3.

A questo punto, puoi provare ad utilizzare (sempre con lo sketch prima caricato) i comandi per il cambio modalità.

Madwriter

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

Sosuke


ciao

Quote
mi spiegheresti solo che vuol dire che bisogna impostare il pio11 come high e a cosa dovrei collegarlo per fare ciò?


innanzitutto verifica se il pin KEY del tuo connettore corrisponde al pin in questione.
Sulla guida, prima parte, trovi la piedinatura del modulo, così puoi vedere dove si trova.

Se è connesso direttamente, sei a posto, altrimenti devi saldarci un filo.

Quando hai preparato tutto, alimenti il modulo.
Solo allora connetti questo piedino ai 5v di arduino con una resistenza da 2k2 (sufficiente, pure una 10k va bene) o direttamente al piedino 3v3.

A questo punto, puoi provare ad utilizzare (sempre con lo sketch prima caricato) i comandi per il cambio modalità.



ok, finalmente ora ho capito... grazie mille


Testato

X lesto, per mettere un pin a 1 basta metterlo a vcc, la resistenza serve nel caso debba connettersi sia a 1, che a 0 alternativamente.

Per il discorso master ho postato un link dove si descrive la sostiyuzione del firmware, ma nel tuo caso conviene ricomprarlo.
In pratica tutti i moduli si possono riflashare per diventare hc05
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

lollotek

ho progammato un HC05 con i comandi :

Code: [Select]

AT+ROLE=0
AT+UART=57600,0,0

Quindi come uno slave che si collega a 57600bps e con un 1 bit stop e parity none.

Ora stavo inviando da arduino al cellulare, ma ho notato che l'informazione viene alterata: se voglio inviare il carattere 0xAA (170 decimale), nella controparte sull'app lo vedo come un FFFFFFFFFFFFFFAA (-86 decimale), come se al posto degli 00 ci siano FF, può essere una configurazione del bluetooth? io non ci trovo nulla, è una questione di party bit\stop ?

lollotek

ok, ho scoperto l'inghippo, c'è una divergenza tra tipi dato.
Per arduino il byte è da 0 a 255, mentre i java è da -128 a 127, quindi vedevo il dato sfalsato.
per vedere il dato corretto bisogna dichiararlo come int, oppure applicare l'operazione
Code: [Select]
valhex = (mybite & 0x00FF)
estraendo così correttamente gli ultimi 2 bit meno significativi.

lesto

Quote
estraendo così correttamente gli ultimi 2 bit meno significativi.

?? che significa?
la speigazione è che in java non esistono gli unsigned, e quando fai il cast automatico java prende il bit più a sinistra e lo usa come bit del segno.
facendo l'and bitwise con 0xff (o 0x00ff, stessa roba) invece non fai entrare in campo il cast, 0xFF, anche se vale "solo" 255 è un int, e l'and logico non necessita di cast, ma semplicemente si "accontenta" di fare l'and sui bit della variabile di tipo più piccolo.
Non ho provato, ma in teoria anche questo dovrebbe funzionare;
Code: [Select]
valhex = (mybite | 0)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lollotek


Quote
estraendo così correttamente gli ultimi 2 bit meno significativi.

?? che significa?
la speigazione è che in java non esistono gli unsigned, e quando fai il cast automatico java prende il bit più a sinistra e lo usa come bit del segno.
facendo l'and bitwise con 0xff (o 0x00ff, stessa roba) invece non fai entrare in campo il cast, 0xFF, anche se vale "solo" 255 è un int, e l'and logico non necessita di cast, ma semplicemente si "accontenta" di fare l'and sui bit della variabile di tipo più piccolo.
Non ho provato, ma in teoria anche questo dovrebbe funzionare;
Code: [Select]
valhex = (mybite | 0)

alla fine ho risolto usando int al posto di byte nel programma, grazie

Go Up