Costruiamo un visualizzatore per 4 sonde EGT??

Avatar utente
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??

Messaggioda Fabius72 » 11/06/2013, 17:59

hehehe certamente... ma grazie lo stesso ;)

Mi sono impantanato :oops:
Fabio

Avatar utente
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??

Messaggioda Fabius72 » 11/06/2013, 22:01

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. :P


EDIT: Ho scoperto che esiste una furbata software per invertire le 2 porte. Funzia... :mrgreen:
Fabio

Avatar utente
Vicus
Messaggi: 2753
Iscritto il: 15/11/2010, 19:59
Località: Rossano Veneto

Re: Costruiamo un visualizzatore per 4 sonde EGT??

Messaggioda Vicus » 11/06/2013, 22:32

I pin tx e rx (almeno nella versione che ho io) vengono usati dalla usb. C'è un chip ftdi che fa da interfaccia.

Avatar utente
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??

Messaggioda Fabius72 » 11/06/2013, 23:03

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.
Fabio

Avatar utente
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??

Messaggioda Fabius72 » 12/06/2013, 11:03

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 :(
Fabio

Avatar utente
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??

Messaggioda vitoos » 12/06/2013, 13:33

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

Avatar utente
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??

Messaggioda Fabius72 » 12/06/2013, 14:07

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...

5pulsantiSu1Analogica.jpg


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. 8-)

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

Avatar utente
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??

Messaggioda masterx81 » 12/06/2013, 14:15

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 :-)

Avatar utente
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??

Messaggioda Fabius72 » 12/06/2013, 14:19

Infatti Enri.. me ne sono innamorato :lol:

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 :lol: :lol: :lol:
Fabio

Avatar utente
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??

Messaggioda masterx81 » 12/06/2013, 14:25

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)
... Enrico
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