hehehe certamente... ma grazie lo stesso
Mi sono impantanato
Costruiamo un visualizzatore per 4 sonde EGT??
- Fabius72
- Messaggi: 878
- Iscritto il: 09/02/2013, 16:55
- ECU: MS2 V3.0
- Località: Valle d'Aosta
- Fabius72
- Messaggi: 878
- Iscritto il: 09/02/2013, 16:55
- ECU: MS2 V3.0
- Località: Valle d'Aosta
Re: Costruiamo un visualizzatore per 4 sonde EGT??
Dopo tanto smadonnare con le connessioni, i loop e il MiniTerminal, ho scoperto l'arcano.
In pratica succede che per una qualche ragione a me ignota, RX e TX di arduino si scambiano i ruoli!!!
Intendo dire che:
- se collego l'usb al computer, in modo che sia TunerStudio a dialogare con la centralina, RX e TX sono collegati in un modo.
- se scollego l'usb (e alimento arduino con la 5V) per fare in modo che sia arduino a dialogare con la MS, RX e TX vanno invertiti!!
Caaazzzz
Adoperando un relè doppio scambio riesco ad ottenere l'inversione... maccheppalllleeeee
Almeno ci sono arrivato e ora mi trovo sul display una sequenza bella lunga di numeri.
EDIT: Ho scoperto che esiste una furbata software per invertire le 2 porte. Funzia...
In pratica succede che per una qualche ragione a me ignota, RX e TX di arduino si scambiano i ruoli!!!
Intendo dire che:
- se collego l'usb al computer, in modo che sia TunerStudio a dialogare con la centralina, RX e TX sono collegati in un modo.
- se scollego l'usb (e alimento arduino con la 5V) per fare in modo che sia arduino a dialogare con la MS, RX e TX vanno invertiti!!
Caaazzzz
Adoperando un relè doppio scambio riesco ad ottenere l'inversione... maccheppalllleeeee
Almeno ci sono arrivato e ora mi trovo sul display una sequenza bella lunga di numeri.
EDIT: Ho scoperto che esiste una furbata software per invertire le 2 porte. Funzia...
Fabio
- Vicus
- Messaggi: 2753
- Iscritto il: 15/11/2010, 19:59
- Località: Rossano Veneto
Re: Costruiamo un visualizzatore per 4 sonde EGT??
I pin tx e rx (almeno nella versione che ho io) vengono usati dalla usb. C'è un chip ftdi che fa da interfaccia.
- Fabius72
- Messaggi: 878
- Iscritto il: 09/02/2013, 16:55
- ECU: MS2 V3.0
- Località: Valle d'Aosta
Re: Costruiamo un visualizzatore per 4 sonde EGT??
Infatti... anche nel mio.
Solo che l'FTDI adopera le uscite in un modo, mentre il codice caricato le adopera nel senso opposto.
Assurdo ma tant'è...
Ho scoperto che esiste SoftwareSerial e in questo modo son riuscito ad avere l'inversione...
#include <SoftwareSerial.h>
#define rxPin 1
#define txPin 0
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
void setup()
{// Serial.begin(115200); // initialize serial:
// define pin modes for tx, rx:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
mySerial.begin(115200);
}
Occorre però disabilitare (con un interruttore su un I/O) le letture via seriale da parte del codice quando si vuole attaccare la usb, altrimenti vanno in conflitto.
e così la MS viene letta in ogni modo.
Solo che l'FTDI adopera le uscite in un modo, mentre il codice caricato le adopera nel senso opposto.
Assurdo ma tant'è...
Ho scoperto che esiste SoftwareSerial e in questo modo son riuscito ad avere l'inversione...
#include <SoftwareSerial.h>
#define rxPin 1
#define txPin 0
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
void setup()
{// Serial.begin(115200); // initialize serial:
// define pin modes for tx, rx:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
mySerial.begin(115200);
}
Occorre però disabilitare (con un interruttore su un I/O) le letture via seriale da parte del codice quando si vuole attaccare la usb, altrimenti vanno in conflitto.
e così la MS viene letta in ogni modo.
Fabio
- Fabius72
- Messaggi: 878
- Iscritto il: 09/02/2013, 16:55
- ECU: MS2 V3.0
- Località: Valle d'Aosta
Re: Costruiamo un visualizzatore per 4 sonde EGT??
Ho pensato di far senza interruttore:
per disabilitare le letture seriali effettuate dal codice, lasciando quindi libero il flusso per la usb quando ci attacco il portatile con TunerStudio, sfrutto l'uscita a 3.3V presente solo quando il chip FTDI è alimentato dalla usb.
Infatti, leggendo questa frase scritta sulla pagina di presentazione,
http://arduino.cc/en/Main/ArduinoBoardNano
"The FTDI FT232RL chip on the Nano is only powered if the board is being powered over USB. As a result, when running on external (non-USB) power, the 3.3V output (which is supplied by the FTDI chip) is not available"
non dovrei avere la 3,3V quando non c'è la usb attaccata e alimento esternamente.
E invece c'è!!
Osservando lo schema
http://arduino.cc/en/uploads/Main/ArduinoNano30Schematic.pdf
Si nota che il chip FTDI è alimentato dalla 5V, non da VUSB!
Non capisco
Questa è parte del codice che ho fatto e togliendo il ponticello dalla 3,3 ad A1, viene inizializzata la seriale, altrimenti no. Semplice.
void setup()
{ lcd.begin(20, 4); // set up the LCD's number of columns and rows:
lcd.clear();
if (analogRead(A1) < 500) { // è vera quando su A1 non ci sono i 3,3V forniti da FTDI, quindi viene inizializzata la seriale.
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
// define pin modes for tx, rx:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
mySerial.begin(115200);
lcd.print("USB disattiva ");
while (mySerial.available() <= 0) {
mySerial.print('A'); // send a capital A
delay(200);
}
}
else { lcd.print("USB attiva ");
}
}
Questo funziona, ma mi tocca metterci un interruttore al posto del ponticello. Peccato
per disabilitare le letture seriali effettuate dal codice, lasciando quindi libero il flusso per la usb quando ci attacco il portatile con TunerStudio, sfrutto l'uscita a 3.3V presente solo quando il chip FTDI è alimentato dalla usb.
Infatti, leggendo questa frase scritta sulla pagina di presentazione,
http://arduino.cc/en/Main/ArduinoBoardNano
"The FTDI FT232RL chip on the Nano is only powered if the board is being powered over USB. As a result, when running on external (non-USB) power, the 3.3V output (which is supplied by the FTDI chip) is not available"
non dovrei avere la 3,3V quando non c'è la usb attaccata e alimento esternamente.
E invece c'è!!
Osservando lo schema
http://arduino.cc/en/uploads/Main/ArduinoNano30Schematic.pdf
Si nota che il chip FTDI è alimentato dalla 5V, non da VUSB!
Non capisco
Questa è parte del codice che ho fatto e togliendo il ponticello dalla 3,3 ad A1, viene inizializzata la seriale, altrimenti no. Semplice.
void setup()
{ lcd.begin(20, 4); // set up the LCD's number of columns and rows:
lcd.clear();
if (analogRead(A1) < 500) { // è vera quando su A1 non ci sono i 3,3V forniti da FTDI, quindi viene inizializzata la seriale.
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
// define pin modes for tx, rx:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
mySerial.begin(115200);
lcd.print("USB disattiva ");
while (mySerial.available() <= 0) {
mySerial.print('A'); // send a capital A
delay(200);
}
}
else { lcd.print("USB attiva ");
}
}
Questo funziona, ma mi tocca metterci un interruttore al posto del ponticello. Peccato
Fabio
- vitoos
- Messaggi: 5615
- Iscritto il: 24/09/2011, 18:30
- Auto: Fiat Panda 100HP
- ECU: MS3 EXP
- Località: salerno
Re: Costruiamo un visualizzatore per 4 sonde EGT??
Mi sa che ti conviene fare una pcb con tutto il necessario, compreso microcontrollore
lasciate qui ogni speranza voi che entrate su questo forum......
comunque sia io grazie a questo forum ho svegliato vecchi tarli addormentati nel mio cervello ed ora mi tocca dargli da mangiare uno ad uno per tenerli buoni
comunque sia io grazie a questo forum ho svegliato vecchi tarli addormentati nel mio cervello ed ora mi tocca dargli da mangiare uno ad uno per tenerli buoni
- Fabius72
- Messaggi: 878
- Iscritto il: 09/02/2013, 16:55
- ECU: MS2 V3.0
- Località: Valle d'Aosta
Re: Costruiamo un visualizzatore per 4 sonde EGT??
Ho preso una millefori per ora, dove ci metterò i controller per le termocoppie e qualche altro componente.
Allora, ho risolto il problema!
Dopo aver scovato una furbata pazzesca (anche per quant'è semplice) che consente di leggere 5 pulsanti da una sola porta analogica...
Io adopero un quinto tasto che porta la +5v
e dal momento che ci saranno i pulsanti per navigare tra le pagine e magari poter variare qualche parametro della MS (sempre che ci riesca!)
1 tasto per far partire il log (se è premuto a motore acceso), oppure "conferma" (se è premuto a motore spento)
2 tasti per "su / +" e "giù / -"
2 tasti destra e sinistra per navigare tra le pagine
Ho scoperto il comando map che mi suddivide il range di lettura dell'analogico in n parti, quindi adattandolo al mio scopo una ogni suddivisione corrisponde alla pressione di un certo tasto.
int pushButton = map(analogPort, 0, 1024, 0, 5);
Nel void setup() del codice inizializzo quindi la seriale solo se non vi è alcuna pressione di un qualsiasi tasto, con
if (pushButton < 1) {...
In pratica spengo il quadro, inserisco la usb per collegare portatile ad arduino, premo momentaneamente uno qualsiasi dei 5 tasti e accendo il quadro.
Ora cerco di capire cosa mi arriva dalla MS quando le invio il comando "A". Sangue...
Allora, ho risolto il problema!
Dopo aver scovato una furbata pazzesca (anche per quant'è semplice) che consente di leggere 5 pulsanti da una sola porta analogica...
Io adopero un quinto tasto che porta la +5v
e dal momento che ci saranno i pulsanti per navigare tra le pagine e magari poter variare qualche parametro della MS (sempre che ci riesca!)
1 tasto per far partire il log (se è premuto a motore acceso), oppure "conferma" (se è premuto a motore spento)
2 tasti per "su / +" e "giù / -"
2 tasti destra e sinistra per navigare tra le pagine
Ho scoperto il comando map che mi suddivide il range di lettura dell'analogico in n parti, quindi adattandolo al mio scopo una ogni suddivisione corrisponde alla pressione di un certo tasto.
int pushButton = map(analogPort, 0, 1024, 0, 5);
Nel void setup() del codice inizializzo quindi la seriale solo se non vi è alcuna pressione di un qualsiasi tasto, con
if (pushButton < 1) {...
In pratica spengo il quadro, inserisco la usb per collegare portatile ad arduino, premo momentaneamente uno qualsiasi dei 5 tasti e accendo il quadro.
Ora cerco di capire cosa mi arriva dalla MS quando le invio il comando "A". Sangue...
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Fabio
- masterx81
- Messaggi: 14417
- Iscritto il: 15/11/2010, 16:43
- Auto: Corsa Gsi, Subby WWW
- ECU: MS3 EXP
- Località: Asti
Re: Costruiamo un visualizzatore per 4 sonde EGT??
Il bello di arduino sono proprio tutte quelle librerie comodo comode... Quelle per l'lcd, map, furnzioni di interpolaizone, etc. Ci ho giocato poco ma ne ha un sacco....
... Enrico
Ho perso il rispetto di me stesso al Megaraduno 2012 :-)
Ho perso il rispetto di me stesso al Megaraduno 2012 :-)
- Fabius72
- Messaggi: 878
- Iscritto il: 09/02/2013, 16:55
- ECU: MS2 V3.0
- Località: Valle d'Aosta
Re: Costruiamo un visualizzatore per 4 sonde EGT??
Infatti Enri.. me ne sono innamorato
Dai, è troooppo figo!
Se poi penso a quel che si può fare con quest'oggettino di 4cmx2!!
Meglio tardi che mai... anche se mi si sta fondendo il cervello
Dai, è troooppo figo!
Se poi penso a quel che si può fare con quest'oggettino di 4cmx2!!
Meglio tardi che mai... anche se mi si sta fondendo il cervello
Fabio
- masterx81
- Messaggi: 14417
- Iscritto il: 15/11/2010, 16:43
- Auto: Corsa Gsi, Subby WWW
- ECU: MS3 EXP
- Località: Asti
Re: Costruiamo un visualizzatore per 4 sonde EGT??
Stai gia' imparando in fretta...
Pero' se non ho visto male (non ci ho mai lavorato sopra, l'ho solo visto qualche volta di sfuggita) ti 'nasconde' i timer hardware, poi di sicuro si possono usare, ma ti 'guida' a non considerarli, cosa secondo me sbagliata, sopratutto in applicazioni timesensitive. Non puoi usare la 'delay' (che fa solo dei nop)...
Cmq è un'ottima introduzione al mondo dei micro, in poco riesci a lavorarci subito senza stare dietro a dover imparare l'architettura, etc (come dovresti fare usando le pic)
Pero' se non ho visto male (non ci ho mai lavorato sopra, l'ho solo visto qualche volta di sfuggita) ti 'nasconde' i timer hardware, poi di sicuro si possono usare, ma ti 'guida' a non considerarli, cosa secondo me sbagliata, sopratutto in applicazioni timesensitive. Non puoi usare la 'delay' (che fa solo dei nop)...
Cmq è un'ottima introduzione al mondo dei micro, in poco riesci a lavorarci subito senza stare dietro a dover imparare l'architettura, etc (come dovresti fare usando le pic)
... Enrico
Ho perso il rispetto di me stesso al Megaraduno 2012 :-)
Ho perso il rispetto di me stesso al Megaraduno 2012 :-)
Torna a “Elettronica generale”
Chi c’è in linea
Visitano il forum: Nessuno e 18 ospiti