Isolare ingressi digitali

Salve a tutti. Sto costruendo un circuito con Arduino per rilevare e processare alcuni segnali provenienti dal circuito elettrico di una moto. I segnali sono numero di giri e velocità, entrambi digitali. Il primo è a 12v, il secondo a 5v. Mi hanno consigliato di non collegare direttamente gli ingressi di arduino al segnale, per proteggere sia la centralina della moto che l'arduino stesso. Soluzioni?

By(t)e

Usa degli optoisolatori http://it.wikipedia.org/wiki/Optoisolatore

Mi sembra un po' eccessivo. Mi consigliavano di frapporre un transistor o anche una semplice resistenza. Ma come?

By(t)e

Non è eccessivo ma direi indispensabile nel tuo caso.
Guarda che mettere due 4N35 non è molto complicato.

ok, mi guardo il datasheet. Thanks.

By(t)e

ciao Andbad, anchio ho intenzione di usare Arduino su una moto, magari ci si può dare una mano a vicenda.. che dici?

Si, anche io ti consiglierei degli optoisolatori... sono molto facili da utilizzare e nel contempo estremamente efficaci

ciao Andbad, anchio ho intenzione di usare Arduino su una moto, magari ci si può dare una mano a vicenda.. che dici?

volentieri. Venerdi mi è arrivato del materiale, dovrei riuscire a montare una demoboard su shield per controllare che il codice funzioni a dovere, poi posterò il tutto, così vediamo che c'è da fare ;)

Si, anche io ti consiglierei degli optoisolatori... sono molto facili da utilizzare e nel contempo estremamente efficaci

a quanto ricordo, non sono granché complessi. Vediamo se riesco a trovarli da qualche parte ;)

By(t)e

ok attendiamo i tuoi risultati ;) ;)

Allora, al momento le funzionalità da testare sono: indicatore di giri con 6 LED blu ad alta luminosità, con lampeggio per indicare il momento di cambiata. Programmabile su due scale, ovvero tra 2000 e 4500 giri (un LED ogni 500 giri) con lampeggio a 5000, e tra 6000 e 11000 (un LED ogni 1000 giri) con cambio marcia a 11500. Indicatore di marcia inserita su display a 7 segmenti blu, calcolato sui rapporti tra le marce, sul numero di giri e sulla velocità rilevata. Indicatore di velocità massima raggiunta, memorizzato su EEPROM e visualizzato una cifra alla volta sul display contamarce alla pressione di un pulsante. Funzionalità cambio-rapido (quickshifter), ovvero Arduino spegnerà il motore per alcune decine di millisecondi nel momento in cui viene premuto un pulsante (a manubrio o sul rinvio del cambio) in modo da permettere il cambio marcia senza frizione e senza alleggerire la manopola del gas. Questo è quanto, finora e per ora. Da ri-fare, probabilmente, la funzionalità per mostrare la velocità massima, utilizzando il metodo millis(), poiché attualmente blocca il resto delle funzionalità per circa 4 secondi e mezzo (il tempo di visualizzare le 3 cifre della velocità). Ah, altra cosa importante da fare, è correggere i commenti in inglese nel testo, perché i cani parlano meglio di me tale lingua. :-?

By(t)e

interessante.. cmq io per il cambio rapido ti consiglio la strada di tagliare una bobina o un iniettore (o una coppia) per alcuni ms, anzikè spegnere il motore (dall'interruttore avviamento)

io vorrei utilizzare Arduino per modificare il carattere del motore a seconda dei punti del tracciato in cui si trova la moto... tipo cambio mappa in automatico

Il fatto è che con l'interruttore di massa, si agisce sulla centralina, non direttamente sull'accensione di un cilindro. Questo dovrebbe essere di gran lunga più semplice e sicuro (che voltaggio c'è sulla bobina?) e i risultati non dovrebbero essere molto diversi (ora è impostato su 72ms, ma potrei programmare soglie diverse in base alla marcia inserita). Per il discorso mappe, la cosa è interessante, ma intendi programmare una vera e propria centralina aggiuntiva (tipo PowerCommander, per intenderci) o affiancare Arduino ad una PC e fargli cambiare mappa in base ai dati di un GPS (o di un timer)?

By(t)e

sul primario della bobina ci sono i 12V (tutti i cambi rapidi tagliano l'accensione) agendo sull'interruttore di massa avrai tempi di cambiata maggiori e il motore si sporca di più, se invece tagli il carburante ad un cilindro la candela rimane + pulita. Io intendo adattare il GPS ad un modulo aggiuntivo, un traction control fatto da un amico, che si sta evolvendo con il sistema che gli voglio montare io.

Io avrei voluto integrare un traction control in questo progetto, ma i pin scarseggiano. Probabilmente lo faro con un altra scheda, nella quale inserire il GPS per la rilevazione delle traiettorie e dei tempi, il TC appunto e un datalogger per vari segnali analogici e digitali (corsa delle sospensioni, apertura farfalla, ecc...). Ma ci vorrò tempo ;) Intanto, se mi piacerebbe conoscere le logiche di gestione del traction control, perché non saprei nemmeno da che valori partire. Puoi farmi avere qualcosa?

By(t)e

per quanto riguarda la logica di funzionamnto è piuttosto semplic, si confronta la velocità periferica di ogni ruota e quando si ha una differenza si taglia potenza al motore fino a quando non si ripristina lo stesso valore di velocità periferica per le ruote

ciao anche io mi sto occupando di cose simili io ho anche gps, accelerometri e sd

come leggete il valore dei giri motore? io leggo la frequenza ma preferirei qualcosa che impieghi meno tempo tipo un circuito che converta in valore analogico e poi usare un analogread

avete una pagina wiki su cui lavorate?

per i sensori delle ruote che sensori usate? io pensavo a quello dl mouse visto che si legge relativamente facilmente..

e fin lì....;) Parlo di: - quanta differenza di velocità? - quanto tempo viene tagliata l'accensione? - viene calcolato un valore differente per ogni marcia/regime? - posto che la velocità effettiva è differente in base all'inclinazione, sono stati introdotti dei coefficienti di correzione?

::)

By(t)e

dipende da moto a moto da pilota apilota ecc sono tutte cose che si introduco successivamnte per limare la sua introduzione che potrebbe essere eccessiva...

ciao anche io mi sto occupando di cose simili io ho anche gps, accelerometri e sd

come leggete il valore dei giri motore? io leggo la frequenza ma preferirei qualcosa che impieghi meno tempo tipo un circuito che converta in valore analogico e poi usare un analogread

avete una pagina wiki su cui lavorate?

per i sensori delle ruote che sensori usate? io pensavo a quello dl mouse visto che si legge relativamente facilmente..

guarda, ci siamo appena incontrati :) per il regime, uso il cavo standard che arriva al contagiri, dovrebbe essere abbastanza preciso poiché è lo stesso segnale che usa la centralina per calcolare l'iniezione. Uso una media di 10 impulsi per calcolarne la durata media (considerando che a 6000 giri ho 200hz, dovrebbe fare abbastanza in fretta) poi applico i dovuti calcoli per trovare il regime esatto. Poi potrei utilizzare pure meno impulsi, ma devo ancora testarlo quindi per il momento lo lascio così. Tu proponi un circuito che prima converta il valore digitale in analogico per poi riconvertirlo in digitale con Arduino...mi sembra inutile, probabilmente si fa prima a leggere direttamente in digitale. Accelerometri, gps e SD (ma io preferivo USB) sono anche i miei obiettivi, oltre ai potenziometri per le sospensioni ed ad un inclinometro (o faccio prima e metto un giroscopio...). I sensori per le velocità credo siano dei semplice sensori di prossimità, tipo quelli delle bici, per intenderci. In giro ho visto che usano sempre quelli.

By(t)e

in realtà potrebbe venire un bel progettino: - strumentazione digitale - acquisizione dati ciclistica - acquisizione dati GPS (tempi sul giro e traiettorie) - controllo di trazione e cambio rapido

:)

By(t)e