Installare iniezione elettronica indiretta con l'aiuto di Arduino

qsecofr:
secondo me si dovrebbe fare una specie di inventario di cosa e come si comandano le cose...perchè non è detto che gli esperti di elettronica/arduino siano altrettanto bravi con la benzina... cioè per esempio questa sonda lamba che roba è? da fuori una tensione, una resistenza, si alimenta a 12volt o cosa... cosa fa?
e la pompa va con un motore che ha quanti Ampere e dobbiamo comandare in che modo (velocità?)... e le valvole a farfalla normalmente come si comandano? hanno una cordicella? si può mettere un motore? :wink:

Qui stai chiedendo cose di meccanica e di ingegneria non certo di elettronica.

  1. la sonda lambda è una sonda bistadio che serve a misurare la concentrazione dell'ossigeno nei gas di scarico. Viene usata per controllare la combustione e mantenerla il più possibile vicino al rapporto stechiometrico, che è il rapporto fra aria/benzina che permette la miglior combustione possibile; essendo bistadio, passa da un valore alto ad un valore basso, informando così la centralina del raggiungimento del rapporto corretto.
  2. la pompa quale? la pompa benzina? è una pompa particolare ad immersione che sta nel serbatoio affogata nel carburante (anche per essere raffreddata dal liquido stesso). Avrà certe caratteristiche che varieranno da tipo a tipo.
  3. le valvole a farfalla si comandano o tramite cavo o senza. Se c'è il cavo, il comando della manopola o del pedale del gas controlla direttamente la farfalla. Se non c'è, c'è un elettroattuatore (motorino) comandato leggendo la posizione di manopola o pedale. Sulle auto le centraline possono anche inserire un controllo attivo della farfalla, ad esempio per simulare un ASR togliendo gas quando le ruote slittano.

PS:
non sono un perito né un ingegnere, ho solo un po' di conoscenze amatoriali

mi sono appena letto su wikipedia :blush: come funziona sta sonda lambda... sembra facile da controllare... o esce con i sui circa 1volt o lavora in variazione di resistenza: in entrambi i casi la lettura con arduino dovrebbe essere una banalità usando un input analogico.
Presumo sia il resto più incasinato... comunque effettivamente l'argomento esula da arduino in se.

leo72:

qsecofr:
secondo me si dovrebbe fare una specie di inventario di cosa e come si comandano le cose...perchè non è detto che gli esperti di elettronica/arduino siano altrettanto bravi con la benzina... cioè per esempio questa sonda lamba che roba è? da fuori una tensione, una resistenza, si alimenta a 12volt o cosa... cosa fa?
e la pompa va con un motore che ha quanti Ampere e dobbiamo comandare in che modo (velocità?)... e le valvole a farfalla normalmente come si comandano? hanno una cordicella? si può mettere un motore? :wink:

Qui stai chiedendo cose di meccanica e di ingegneria non certo di elettronica.

  1. la sonda lambda è una sonda bistadio che serve a misurare la concentrazione dell'ossigeno nei gas di scarico. Viene usata per controllare la combustione e mantenerla il più possibile vicino al rapporto stechiometrico, che è il rapporto fra aria/benzina che permette la miglior combustione possibile; essendo bistadio, passa da un valore alto ad un valore basso, informando così la centralina del raggiungimento del rapporto corretto.
  2. la pompa quale? la pompa benzina? è una pompa particolare ad immersione che sta nel serbatoio affogata nel carburante (anche per essere raffreddata dal liquido stesso). Avrà certe caratteristiche che varieranno da tipo a tipo.
  3. le valvole a farfalla si comandano o tramite cavo o senza. Se c'è il cavo, il comando della manopola o del pedale del gas controlla direttamente la farfalla. Se non c'è, c'è un elettroattuatore (motorino) comandato leggendo la posizione di manopola o pedale. Sulle auto le centraline possono anche inserire un controllo attivo della farfalla, ad esempio per simulare un ASR togliendo gas quando le ruote slittano.

PS:
non sono un perito né un ingegnere, ho solo un po' di conoscenze amatoriali

Nel mio caso particolare la valvola a farfalla è controllata da un cavo direttamente dalla manopola del gas (io lo installerei su un mezzo a due ruote), e la pompa di benzina è esterna al serbatoio: la benzina giunge alla pompa per conto di un tubicino di entrata, e poi ha il relativo tubicino di uscita.

Relativamente alla sonda lambda, per quel poco che so, il controllo dovrebbe essere semplice essendo un input analogico, ma il mio dubbio è: il valore letto sarà quello effettivo o sarà "storpiato"?

Infoltre ho un dubbio sul sensore per l'apertura del gas: come posso fare a controllare la posizione dello stesso?

Infine: Il livello di aggiornamento di Arduino avviene di "continuo"? Cioè, rileva i dati in input e corregge quelli in output abbastanza velocemente?

non ha senso pensare a progetti cosi importati senza avere le basi
La quantita di benzina si regola variando il tempo di apertura delliniettore e non agendo sulla pompa La sonda lambda non si puo utilizzare sul due tempi La termocoppia nemmeno si puo usare per questo progetto, é milioni di volte piu lenta di quanto serve, basandoti su di quella gripperesti dopo i primi 100m Lunico modo é fare una mappatura im base al numero di giri, apertura valvola, temperatura pressione, in poche parole ore e ore al banco prova e in pista
Poi un giorno ti viene voglia di provare un variatore o una marmitta o una testa diversa e devi rincominciare tutto da capo

ha ragione osuf, non si possono affrontare certi discorsi non avendo le basi giuste.
Già io ho tirato 2 sfondoni visto che parlo da appassionato di motori automobilistici mentre qui state parlando di 2 tempi... :wink:

osuf:
non ha senso pensare a progetti cosi importati senza avere le basi
La quantita di benzina si regola variando il tempo di apertura delliniettore e non agendo sulla pompa La sonda lambda non si puo utilizzare sul due tempi La termocoppia nemmeno si puo usare per questo progetto, é milioni di volte piu lenta di quanto serve, basandoti su di quella gripperesti dopo i primi 100m Lunico modo é fare una mappatura im base al numero di giri, apertura valvola, temperatura pressione, in poche parole ore e ore al banco prova e in pista
Poi un giorno ti viene voglia di provare un variatore o una marmitta o una testa diversa e devi rincominciare tutto da capo

http://www.milizianokart.it/lcu-one-can.html Come scusa? :stuck_out_tongue:

In merito alla lambda anche io credevo che non si potesse applicare su un due tempi, ma c è chi sostiene il contrario. Tentar non nuoce.

Devo ammettere che in materia "iniezione" ed "iniettori" non sono informatissimo, ma nemmeno così ignorante. Di sicuro me la cavo molto meglio coi carburatori, e non mi ritengo nemmeno un completo ignorante in materia di motori, avendo lavorato a mano (e imparato) smontando e rimontando da solo (e elaborando, ma non parlo di un plug and play di pezzi aftermarket........) tutti i mezzi che mi sono passati di mano. Però parto dal presupposto che non si smette mai di imparare, quindi se hai delle dritte da darmi in merito al principio di funzionamento dell iniezione sono lieto di accoglierle.

In merito alla sonda lambda, sto seguendo diverse vie d'informazione. Una volta raccolti tutti i dati vedrò come prendere la cosa (ed eventualmente verificarla).

In merito alla termocoppia, perchè sostieni che è lenta nell'inviare l'informazione? Se si riesce a carburare a mano usando il dato in input della temperatura di scarico, non vedo perchè non possa farlo con maggior precisione e tempi più brevi (intendo nella reazione, non nella lettura del dato) un pc programmato con arduino. E' chiaro che se sei più magro di 50 punti grippi molto presto, ma se il tempo di reazione della cpu è molto breve e riesce a ingrassare in tempo, il problema non si verifica. Potrei tranquillamente adottare come modus operandi la rilevazione di una temperatura "tipo" attorno a cui stare con una alimentazione a carburatori, per poi inserire il dato di temperatura nella ecu dell'iniezione e installare la stessa. Il controllo a livello di scrittura a livello logico sarebbe "se la temperatura si scosta da quella tipo, ingrassa - o smagrisci a seconda del caso - di tanto così, finchè non ritorni a quella temperatura", cosa che si tradurrebbe in un if e un ciclo while (parlando delle mie lontane rimembranze di C) nemmeno troppo complesso. Poi è chiaro che in fase di test si verificherà analogicamente tramite il colore della candela il risultato dell'operazione ( e con test non intendo solo installazione del sistema, ma anche nel caso il sistema funzionasse e io ci cambiassi una espansione o qualunque altro componente); inoltre trovo che sia molto più comodo ed empirico agire su un dato numerico per trovare la temperatura e quindi la carburazione perfetta (nel caso della termocoppia) tramite l'uso di arduino accoppiato a un pc piuttosto che dover ogni volta smontare carburatore e cambiare getto; inoltre in questo modo, appena cambia tempo il sistema si autoregola senza dover, come già detto, fare le preghiere davanti al carburatore.

Nessuno mi ha detto come avere il controllo dell'apertura del gas: idee? non conosco tutti i possibili sensori di arduino, perciò, per cortesia, indicatemene uno che eventualmente potrebbe fare al caso mio.

:slight_smile:

nel sito dice "è nata per durare oltre 100.000 km su auto di serie" peccato che dopo una giornata in pista su uno scooter 2t sono passati quintali di incombusti dalla marmitta che si vanno a depositare ovunque, un conto è se la sonda la usi per leggere un dato sul display come nel caso del link,leggi un dato e poi sta a tè decidere se possa essere veritiero o smontare la sonda per controllare e pulirla, un conto è che la sonda manda direttamente il segnale alla centralina che può di colpo cambiarti la carburazione

per la termocoppia evidentemente non l'hai mai utilizzata per carburare, per la carburazione si fà riferimento alla temperatura massima che si legge in fondo al rettilineo dopo un turno
ad esempio in un rettilineo di 400 metri tipo l'autodromo di varano per i primi 200 metri la temperatura sale velocemente fino a 420°, poi negli ultimi 200 metri continua a salire piano piano fino a 430°
se tè dici al tuo arduino che la temperatura che deve tenere è di 430 ti fai tutto il rettilineo con la carburazione magra, anzi dopo i primi 100 metri ti sei già fermato a bordo pista, per non parlare poi del fatto che per i primi giri quando tutto si deve ancora scaldare le temperature segnate dallo strumento sono molto minori, e saranno minori anche nel caso in cui vai in una pista con un rettilineo più corto

se vuoi fare una iniezione elettronica devi scordarti di farla con un ciclo ad anello chiuso come nelle macchine

nel caso volessi continuare per la tua strada puoi usare una qualsiasi termocoppia tipo k e un circuito per la compesazione del giunto freddo

osuf:
nel sito dice "è nata per durare oltre 100.000 km su auto di serie" peccato che dopo una giornata in pista su uno scooter 2t sono passati quintali di incombusti dalla marmitta che si vanno a depositare ovunque, un conto è se la sonda la usi per leggere un dato sul display come nel caso del link,leggi un dato e poi sta a tè decidere se possa essere veritiero o smontare la sonda per controllare e pulirla, un conto è che la sonda manda direttamente il segnale alla centralina che può di colpo cambiarti la carburazione

per la termocoppia evidentemente non l'hai mai utilizzata per carburare, per la carburazione si fà riferimento alla temperatura massima che si legge in fondo al rettilineo dopo un turno
ad esempio in un rettilineo di 400 metri tipo l'autodromo di varano per i primi 200 metri la temperatura sale velocemente fino a 420°, poi negli ultimi 200 metri continua a salire piano piano fino a 430°
se tè dici al tuo arduino che la temperatura che deve tenere è di 430 ti fai tutto il rettilineo con la carburazione magra, anzi dopo i primi 100 metri ti sei già fermato a bordo pista, per non parlare poi del fatto che per i primi giri quando tutto si deve ancora scaldare le temperature segnate dallo strumento sono molto minori, e saranno minori anche nel caso in cui vai in una pista con un rettilineo più corto

se vuoi fare una iniezione elettronica devi scordarti di farla con un ciclo ad anello chiuso come nelle macchine

nel caso volessi continuare per la tua strada puoi usare una qualsiasi termocoppia tipo k e un circuito per la compesazione del giunto freddo

Per la termocoppia evidentemente ti è sfuggito un passaggio: prima determino il valore migliore con l alimentazione a carburatore (tramite il controllo del colore della candela), poi faccio si che arduino mantenga lo stesso durante l'utilizzo del mezzo. Il tuo appunto relativo al riscaldamento del mezzo è corretto, non ci avevo pensato, tuttavia credo che anche questo sia superabile pensando a un comando che dica "dalla prima accensione attendi che la temperatura raggiunga quella ottimale (lasciando il minimo a un valore standard - qua mi sorge una domanda: nei corpi farfallati il minimo si determina manualmente con regolando l apertura della valvola in posizione chiusa con un registro un po come avviene nei carburatori a saracinesca o no?), per poi cominciare a intervenire dalla prima volta che il motore tocca la stessa (naturalmente ponendo come t zero il momento di accensione del mezzo).

Altra domanda: quindi te intendi dire che se io viaggio col gas parzializzato per diversi metri facendo lavorare in maggioranza il passaggio la temperatura di scarico è diversa da quella di quando faccio i medesimi metri col gas completamente aperto? di questo dato non mi sono mai reso conto: avendo alcuni mezzi da gestire con 1 sola termocoppia, questa la monto e la smonto solo per carburare.

"poi faccio si che arduino mantenga lo stesso durante l'utilizzo del mezzo"
è questo che ti ho detto che non puoi fare perchè anche se la carburazione è perfetta metro dopo metro la temperatura che ti dà la termocoppia cambia, all'inizio del rettilineo sono 400 gradi alla fine 430 ad esempio e la quantità di benzina che entra è sempre la stessa, se gli dici stai a 400 gradi ti fai tutto il rettilineo con la carburazione grassissima, se gli dici stai a 430 il rettilineo non lo finisci

per la seconda domanda si, la temperatura varia enormemente in base all'apertura della valvola

se vi volete "divertire" o approfondire l'iniezione ci si puo documentare sulle centraline per il gpl sulle auto,

consiglio http://www.ac.com.pl/en/

ha il software e manuale gratuito
http://www.ac.com.pl/public/pubonline/cms/files/Programy-i-instrukcje-obslugi/SetupAcGasSynchro-9.1.0.0.exe

ci va poco a ingannare la centrallina e adattarla a quello che si vuole la centralina è un po piu potente di un arduino uno

(40 MHz)

Magari semplifico troppo ma... come già detto la benzina va principalmente rapportata all'aria....

Serve un debimetro, che stima il volume di aria in ingresso
Serve sapere le specifiche dell'iniettore, cioè a quanta benzina corrisponde una certa apertura
In mezzo Arduino che leggendo il primo calcola l'apertura.
E così siamo già che il motore sta in moto ed è utilizzabile.

Tutto il resto viene dopo... si possono aggiungere mille altri sensori, lamba, temperature, giri ecc per ottimizzare l'iniezione... e forse questa parte qui è troppo complicata da gestire sotto casa senza conoscenze e strumenti di misura

chiodoxxx:
Magari semplifico troppo ma... come già detto la benzina va principalmente rapportata all'aria....

Serve un debimetro, che stima il volume di aria in ingresso
Serve sapere le specifiche dell'iniettore, cioè a quanta benzina corrisponde una certa apertura
In mezzo Arduino che leggendo il primo calcola l'apertura.
E così siamo già che il motore sta in moto ed è utilizzabile.

Tutto il resto viene dopo... si possono aggiungere mille altri sensori, lamba, temperature, giri ecc per ottimizzare l'iniezione... e forse questa parte qui è troppo complicata da gestire sotto casa senza conoscenze e strumenti di misura

Vorrei un parere da parte di osuf a riguardo, ci avevo pensato anche io. Magari uno strumento di rilevazione della "quantità" di ossigeno in entrata all'alimentazione può aiutare. Insomma, qualcosa che stimi ad esempio la densità della stessa in funzione del volume di un airbox chiuso.

secondo mé bisognerebbe fare cosi:
-prendo il motore a carburatore settato alla perfezzione e al banco misuro la quantità di benzina che consuma il motore ad esempio ogni 500 giri e per 5 posizioni della valvola -misuro la portata delliniettore in funzione di quanto rimane aperto -poi userò arduino con 4 sensori,numero di giri, posizione della valvola, temperatura e pressione e farò il programma che in base ai valori dica alliniettore quanta benzina immettere

Il problema però é che per come sò scrivere io i programmi con arduino salterebbe fuori un programma lungo 10km che poi arduino dovrebbe gestire in pochi millisecondi(in poco piu di 4 ms il motore ha gia fatto un giro) e non penso che ci riesca

Con circa 5-600 euro ti vendono già tutto il kit completo di centralina, programma,pompa,regolatore di pressione, 2 iniettori
Ok che con arduino uno può imparare e cavarsi delle soddisfazioni, ma come si dice il gioco non vale la candela

Ciao,

forse ho perso qualche pezzo del discorso, se l'idea è quella di gestire l'iniezione con Arduino, la strada è sicuramente in salita. Ci sono due aspetti sicuramente delicati: va acquisita la posizione angolare del motore ed effettuata l'iniezione a frequenze con sono legate alla velocità di rotazione del motore, anche negli impianti ad iniezione indiretta d'uso sulle automobili, il loop chiuso da solo non è in grado di mantenere il motore in funzione.

Sul primo aspetto pesa la velocità di computazione, un microcontrollore a 16 MHz può anche farcela, ma va programmato usato a "basso" livello per garantire dei tempi di risposta decenti. Non so lo scooter in questione a quali regimi massimi possa girare, immagino non tanto distante dai 1-10.000 giri/min (circa 60-6 ms per un giro, quindi un'iniezione).

Il secondo problema è che la sonda lambda e la termocoppia sono strumenti intrinsecamente lenti, hanno dei tempi di reazione distanti dai 60-6 ms di cui si parlava prima. Nelle auto viene sempre utilizzata la misura della massa d'aria entrante per determinare attraverso delle tabelle (la mappatura) quanta benzina iniettare.
La sonda lambda entra in gioco solo a regimi costanti, quelli buoni per le prove di rilevazione degli inquinanti, ma da sola non è in grado di gestire il motore.

Se invece il discorso è quello di utilizzare un carburatore e carburarlo in linea, utilizzando una scheda elettronica, il problema diventa fattibile, ma sicuramente non semplice.

Saluti,
Dario.

veseo:
Ciao,

forse ho perso qualche pezzo del discorso, se l'idea è quella di gestire l'iniezione con Arduino, la strada è sicuramente in salita. Ci sono due aspetti sicuramente delicati: va acquisita la posizione angolare del motore ed effettuata l'iniezione a frequenze con sono legate alla velocità di rotazione del motore, anche negli impianti ad iniezione indiretta d'uso sulle automobili, il loop chiuso da solo non è in grado di mantenere il motore in funzione.

Sul primo aspetto pesa la velocità di computazione, un microcontrollore a 16 MHz può anche farcela, ma va programmato usato a "basso" livello per garantire dei tempi di risposta decenti. Non so lo scooter in questione a quali regimi massimi possa girare, immagino non tanto distante dai 1-10.000 giri/min (circa 60-6 ms per un giro, quindi un'iniezione).

Il secondo problema è che la sonda lambda e la termocoppia sono strumenti intrinsecamente lenti, hanno dei tempi di reazione distanti dai 60-6 ms di cui si parlava prima. Nelle auto viene sempre utilizzata la misura della massa d'aria entrante per determinare attraverso delle tabelle (la mappatura) quanta benzina iniettare.
La sonda lambda entra in gioco solo a regimi costanti, quelli buoni per le prove di rilevazione degli inquinanti, ma da sola non è in grado di gestire il motore.

Se invece il discorso è quello di utilizzare un carburatore e carburarlo in linea, utilizzando una scheda elettronica, il problema diventa fattibile, ma sicuramente non semplice.

Saluti,
Dario.

Per quel che riguarda il numero di giri, alcuni (i più piccoli due tempi, che siano scooter o moto poco cambia) toccano punte comprese tra 14 mila e 15 mila giri. Mica pochini, pur non essendo 4 tempi.

Parlami di quello che ho sottolineato: cosa intendi di preciso? perchè non riesco ad afferrare il concetto di "carburazione in linea"

penso che intenda come ho detto io fare una carburazione in base al numero di giri/posizione valvola senza un loop chiuso

I due tempi girano abbastanza in alto, mi meravigliano i 15.000 giri/min per un motore di uno scooter omologato per girare in strada, però non cambiano il succo del discorso, qualcosa in grado di lavorare con tempi di 2-3 ms non può basarsi sulle librerie di Arduino. Il microcontrollore potenzialmente può farcela, limitatamente ad ingressi digitali, mentre per gli analogici il solo tempo di conversione risulterebbe troppo grande (se non sbaglio sono valori dell'ordine di 10 ms). Tutto questo dimenticandosi che la lettura allo scarico non permette di reagire in tempi tali da poter essere lasciata sola.

Un esercizio simpatico è quello di calcolare la velocità dei gas di scarico (approssimandola alla velocità lineare del pistone) e valutare il tempo necessario affinché i gas di scarico arrivino effettivamente al sensore.
Questo tempo è normalmente nell'ordine di 5-10 cicli, quindi dimenticandosi di tutto il resto, la sola lettura in retroazione è in ritardo di diverse combustioni.

Il risultato è che ci vuole un loop in ciclo aperto (pressione all'aspirazione, giri motore) con una mappatura, come avviene in tutti i motori a benzina ad iniezione (diretta ed indiretta).

La carburazione in linea, per dirla in modo grezzo, è il variare la carburazione (lo spillo) del carburatore in base alle condizioni operative del motore. Non sostituire il carburatore, ma semplicemente affiancarlo per avere delle condizioni di carburazione particolari, basate sulla posizione della valvola a farfalla.

In quel caso si può pensare di ingrassare leggermente la miscela quando la valvola a farfalla viene aperta repentinamente. Un giochetto inutile e non banale, ma sfizioso.

Saluti,
Dario.

veseo:
I due tempi girano abbastanza in alto, mi meravigliano i 15.000 giri/min per un motore di uno scooter omologato per girare in strada, però non cambiano il succo del discorso, qualcosa in grado di lavorare con tempi di 2-3 ms non può basarsi sulle librerie di Arduino. Il microcontrollore potenzialmente può farcela, limitatamente ad ingressi digitali, mentre per gli analogici il solo tempo di conversione risulterebbe troppo grande (se non sbaglio sono valori dell'ordine di 10 ms). Tutto questo dimenticandosi che la lettura allo scarico non permette di reagire in tempi tali da poter essere lasciata sola.

Un esercizio simpatico è quello di calcolare la velocità dei gas di scarico (approssimandola alla velocità lineare del pistone) e valutare il tempo necessario affinché i gas di scarico arrivino effettivamente al sensore.
Questo tempo è normalmente nell'ordine di 5-10 cicli, quindi dimenticandosi di tutto il resto, la sola lettura in retroazione è in ritardo di diverse combustioni.

Il risultato è che ci vuole un loop in ciclo aperto (pressione all'aspirazione, giri motore) con una mappatura, come avviene in tutti i motori a benzina ad iniezione (diretta ed indiretta).

La carburazione in linea, per dirla in modo grezzo, è il variare la carburazione (lo spillo) del carburatore in base alle condizioni operative del motore. Non sostituire il carburatore, ma semplicemente affiancarlo per avere delle condizioni di carburazione particolari, basate sulla posizione della valvola a farfalla.

In quel caso si può pensare di ingrassare leggermente la miscela quando la valvola a farfalla viene aperta repentinamente. Un giochetto inutile e non banale, ma sfizioso.

Saluti,
Dario.

I 15 mila li toccano motori evidentemente preparati, tra 50 e 70 cc (che siano per scooter o per piccole moto a marce poco importa).

Comunque non mi è ancora troppo chiaro come si possa variare lo spillo; per cortesia sii un po più chiaro oppure posta una immagine o uno schema! perchè io ho famigliarità solo coi carburatori a saracinesca (al massimo a membrana), ma coi corpi farfallati non mi ci sono mai approcciato.

ciao, stavo facendo una considerazione che spero corretta, a 15000 giri/min per un motore 2 tempi non diventano una correzione della carburazione ogni 8 ms?

stefano

wmatte:
I 15 mila li toccano motori evidentemente preparati, tra 50 e 70 cc (che siano per scooter o per piccole moto a marce poco importa).

Comunque non mi è ancora troppo chiaro come si possa variare lo spillo; per cortesia sii un po più chiaro oppure posta una immagine o uno schema! perchè io ho famigliarità solo coi carburatori a saracinesca (al massimo a membrana), ma coi corpi farfallati non mi ci sono mai approcciato.

Faccio riferimento alle viti di regolazione della carburazione, credo che quello sia il massimo che si possa ottenere.

Saluti,
Dario.