ricki158 ha scritto:io ho un problema su quei due pin: ho un arduino 2009 e i pin 0 e 1, che sarebbero l' rx e il tx, arrivano direttamente dal chip ftdi e vanno all'atmega. ho fatto il convertitore seriale 232 su breadboard come te e mi sono collegato appunto a quei pin la, solo che quando carico lo sketch il chip ftdi mi manda tutto su quei piedini la perchè sono quelli che comunicano, inviano e ricevono il segnale, solo che mi becca il chip 232 e il software sul computer non riconosce la scheda di arduino, dandomi un errore particolare. tu hai avuto lo stesso mio problema?
...
E' esattamente il problema che ho avuto anch'io, risolto poi con l'incrocio di rx e tx che collegano pin 0 e 1 di arduino all'RS232 tramite relè.
Ho optato per questa soluzione in quanto TunerStudio non mi si connetteva alla MS a 115200 baud (mentre a 9600 si), utilizzando arduino come convertitore USB-seriale.
Leggendo in giro pareva che la libreria "SoftwareSerial" non permettesse di arrivare a 115200, ma nella documentazione si legge che invece ci dovrebbe arrivare. Bohh.
I casi sono due: mettici anche tu un relè, oppure se hai voglia e tempo prova prima via software.
Il trucco è quello di inizializzare la seriale solo quando è arduino a comunicare con la MS e non l'FTDI.
Per fare questo avevo fatto in modo che nel momento in cui volevo collegare il portatile alla MS, spegnevo arduino e riaccendendolo tenevo premuto uno qualsiasi dei pulanti che avrai visto in foto, e questo mi generava un loop infinito evitando così che l'esecuzione del codice procedesse con l'inizializzazione della seriale col Serial.begin(115200)
Questo è quanto avevo fatto e spero ti sia utile.
void setup() {
...
...
...
lcd.begin(20, 4);
sensorValue = analogRead(pulsantiera);
int pushButton = map(sensorValue, 0, 1023, 0, 5);
if (pushButton > 0 )
{
lcd.print("USB attiva!"); // se viene premuto uno dei pulsanti
lcd.setCursor(0,2); lcd.print("connessione");
lcd.setCursor(0,3); lcd.print("laptop...");
while(true) { continue; } // genera il loop infinito per bloccare il codice
}
Serial.begin(115200);
...
...
...
}
PS:
Ora che ci penso bene (son passati ormai due mesi), se non si effettua l'inversione di rx e tx via software, è comunque necessario scollegare uno dei due, ma non ricordo quale, fai una prova.
Spero di aver tenuto qualcosa di quel che ho fatto col SoftwareSerial, domani ci guardo!
Scusa per la confusione