Go Down

Topic: [ RISOLTO ]Settare PWM da SerialMonitor + Bluetooth (Read 10047 times) previous topic - next topic

testato

#15
Nov 01, 2013, 10:57 pm Last Edit: Nov 01, 2013, 11:03 pm by Testato Reason: 1

Quello che mi chiedo è: come mai se scollego USB e collego HC05 al pin 0 e 1 non funziona la serial????

Semplice, staccando l'usb non stacchi la connessione seriale tra il convertitore usb/seriale ed il micro   ;)
quello che vuoi fare tu puoi farlo solo sui modelli di arduino che non hanno il convertitore, tipo Arduino ProMini
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

gpb01

@Testato :
Credo che comunque i pin 0 e 1 possano essere usati come seriale anche sullo UNO, difatti, la scheda del prodotto riporta chiaramente :

Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip.

... ma non dice che NON li puoi usare, anzi ... dice solo che sono in parallelo e quindi di fare attenzione ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

testato

giglielmo attenzione su cosa ? parliamo della seriale, non accetta due connessioni contemporaneamente, non si puo' usare

Se proprio vuoi farlo con la Uno la soluzione c'e', togli il micro dallo zoccolo e con molta delicatezza pieghi i due piedini che ti servono e ci saldi direttamente due cavetti verso il Bluetooth
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

gpb01

Certo che NON contemporaneamente, o mandi i dati via USB o li mandi sui pin 0 e 1, ma non devi dissaldare/piegare nulla, devi solo non collegare la USB ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

testato

ma la connessione lato seriale tra il 16u2 ed il 328p non viene instaurata anche senza l'usb inserita ?
non ho mai provato, ad esempio quando si vuole usare arduino come convertitore seriale/usb si toglie il micro, ma al contrario non si puo' fare, cioe' non si puo' togliere il 16u2
non so come il 16u2 gestisce la cosa, se non instaura la connessione potrebbe andare anche come dici te
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

gpb01

No, sembrerebbe che il 16u2 NON dia fastidio ... puoi fare rapidamente una prova ... collega un modulo BT al pin 0 e 1 e fai un programmino di echo della Serial ;)

Quello che trasmetti dal BT lo dovresti ricevere indietro :)

Guglielmo
Search is Your friend ... or I am Your enemy !

leo72

L'8U2 o il 16U2 non usano la seriale normalmente, lo dimostra il fatto che a scheda Arduino agganciata al PC con cavetto seriale tu puoi dialogare con una periferica seriale tramite i pin D0 e D1.
Siccome, come giustamente fa notare Testato, il 328 ha una sola seriale e la seriale non può essere condivisa fra più di 2 periferiche, nel momento in cui ad esempio si apre un terminale seriale sul computer, il chip convertitore prende possesso della linea, resetta la MCU e mette in comunicazione il 328 col computer.

L'alternativa è usare una SoftwareSerial per comunicare con il dispositivo bluetooth mentre contemporaneamente si può tenere aperta la seriale verso il PC

gpb01


....
Siccome, come giustamente fa notare Testato, il 328 ha una sola seriale e la seriale non può essere condivisa fra più di 2 periferiche, nel momento in cui ad esempio si apre un terminale seriale sul computer, il chip convertitore prende possesso della linea, resetta la MCU e mette in comunicazione il 328 col computer.
...


Leo ... perché io che ho scritto due post più su ????


Certo che NON contemporaneamente, o mandi i dati via USB o li mandi sui pin 0 e 1, ma non devi dissaldare/piegare nulla, devi solo non collegare la USB ;)


:P :P :P

Guglielmo
Search is Your friend ... or I am Your enemy !

dxcoco2

Intanto grazie a tutti voi per il supporto che mi state dando.
Giusto per fare chiarezza:
- Arduino Uno Rev 3
- Modulo HC05 collegato ai Pin 1 e 0 di arduino

Se con il mio Telefono mi collego al modulo, e attraverso una pressione del tasto reset di Arduino, il cellulare riceve il testo Ready....quindi in ricezione funziona.... però se dal cellulare invio un comando, non accade nulla....come se non andasse la trasmissione sul pin di arduino.

Se questa operazione la eseguo ad esempio sui pin 10 e 11 allora tutto va a gonfievele....però come spiegato all'inizio della discussione, non posso farlo in quanto sono obbligato ad utilizzare la libreria SERIALCOMMAND.

Quindi mi trovo davantiad un bivio:
- Sfrutto la SoftwareSerial, ma devo trovare un modo per leggere più caratteri (anzichè inviare un 1 dovrei mandare un 10Z per sempio...)
- Sfrutto la SerialCommand ma devo trovare la maniera di impostare i pin rx e tx sul 10 e 11.....
Insomma...mi pare una cosa parecchio difficile....


dxcoco2

#24
Nov 02, 2013, 02:35 pm Last Edit: Nov 02, 2013, 02:38 pm by dxcoco2 Reason: 1
Facendo come diceva Guglielmo, ho fatto la prova di Echo sulla Serial tramite questo codice

Code: [Select]
/* Simple Serial ECHO script : Written by ScottC 03/07/2012 */

/* Use a variable called byteRead to temporarily store
  the data coming from the computer */
byte byteRead;

void setup() {                
// Turn the Serial Protocol ON
 Serial.begin(9600);
}

void loop() {
  /*  check if data has been sent from the computer: */
 if (Serial.available()) {
   /* read the most recent byte */
   byteRead = Serial.read();
   /*ECHO the value that was read, back to the serial port. */
   Serial.write(byteRead);
 }
}



Risultato... nessuna risposta...

Aggiungendo però
Serial.write("CIAO");
prima del Loop se premo reset su arduino con device collegato ricevo regolarmente CIAO
quindi la Trasmissione di arduino va...è RX che....non va!

gpb01


Facendo come diceva Guglielmo, ho fatto la prova di Echo sulla Serial tramite questo codice
...
Risultato... nessuna risposta...


Naturalmente alimentavi Arduino UNO tramite il jack di alimentazione, la USB era libera e NON c'era il PC attaccato vero ???

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01


...
Quindi mi trovo davantiad un bivio:
- Sfrutto la SoftwareSerial, ma devo trovare un modo per leggere più caratteri (anzichè inviare un 1 dovrei mandare un 10Z per sempio...)
- Sfrutto la SerialCommand ma devo trovare la maniera di impostare i pin rx e tx sul 10 e 11.....
Insomma...mi pare una cosa parecchio difficile....


Dimentichi una TERZA opzione, dedicare un po' di tempo (... e guarda che ne basta poco) a scrivere una piccola routine che riceve i caratteri uno alla volta, li mette in un array e, quando arriva un carattere terminatore elabori l'array (... che, se lo termini con 0x00, altro non è che una stringa) ...  :smiley-roll:

Guglielmo
Search is Your friend ... or I am Your enemy !

dxcoco2

Ora mi viene un dubbio....
La porta USB di Arduino è collegato ad una batteria portatile....secondo voi è questo il problema?

gpb01

#28
Nov 02, 2013, 02:47 pm Last Edit: Nov 02, 2013, 02:51 pm by gpb01 Reason: 1

Ora mi viene un dubbio....
La porta USB di Arduino è collegato ad una batteria portatile....secondo voi è questo il problema?


Non vorrei che alimentando la USB ... il 16U2 prenda il sopravvento ... comunque alimenta tramite il Jack e facci sapere ... ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

dxcoco2

Provato adesso...niente da fare...continua a non risposndere...riceve solo CIAO

Altro dubbio....per caso devo configurare qualcosa nel HC05???

Go Up