Maechen:
Salve a tutti, premetto che ho provato a cercare tra molti forum oltre a quello ufficiale e con diverse soluzioni, ma niente che si adatti "velocemente" al mio obiettivo.
Millis, multiblink...ect
Venendo al punto, molto tempo fa avevo costruito un semplice tester o driver per iniettori benzina, unica pecca era che si basava, e tutt'ora si basa sulla funzione "delay" per impostare il tempo di apertura e chiusura dell'iniettore/i, regolabili tramite due potenziometri separatamente; questo però influenza tutto il sistema arduino, generando ritardi quando i tempi impostati sono molto lunghi, specialmente nella visualizzazione dell'LCD.
Quello che volevo realizzare ora, era un sistema che mantenga le stesse caratteristiche ma senza l'uso della funzione "delay" per impostare i tempi dell'iniettore, in modo magari anche di aggiungere qualche altra funzione, per esempio rilevare se l'iniettore è difettoso (tipico corto circuito),
inoltre mi piacerebbe riuscire a pilotarne quattro in sequenza, come accade nelle auto in normale funzionamento.
Avevo altresì pensato di pilotare gli iniettori da un circuito basato su NE555 e lasciare ad arduino solo il compito di lettura della frequenza o qualcosa di simile, ma se potessi eviterei.
Allego il codice:
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
int inj1 = 3;
int TjON, TjOFF = 0;
void setup() {
pinMode(inj1, OUTPUT);
lcd.begin(16, 2);
}
void loop() {
int TjON = analogRead(0);
int TjOFF = analogRead(1);
TjON = map(TjON, 0, 1023, 1, 30);
TjOFF = map(TjOFF, 0, 1023, 20, 140);
lcd.setCursor(0, 0);
lcd.print("TjON =");
lcd.print(TjON);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("TjOFF=");
lcd.print(TjOFF);
lcd.print(" ");
digitalWrite(inj1, HIGH);
delay(TjON);
digitalWrite(inj1, LOW);
delay(TjOFF);
}
Grazie a tutti.
Maechen:
Salve a tutti, premetto che ho provato a cercare tra molti forum oltre a quello ufficiale e con diverse soluzioni, ma niente che si adatti "velocemente" al mio obiettivo.
Millis, multiblink...ect
Venendo al punto, molto tempo fa avevo costruito un semplice tester o driver per iniettori benzina, unica pecca era che si basava, e tutt'ora si basa sulla funzione "delay" per impostare il tempo di apertura e chiusura dell'iniettore/i, regolabili tramite due potenziometri separatamente; questo però influenza tutto il sistema arduino, generando ritardi quando i tempi impostati sono molto lunghi, specialmente nella visualizzazione dell'LCD.
Quello che volevo realizzare ora, era un sistema che mantenga le stesse caratteristiche ma senza l'uso della funzione "delay" per impostare i tempi dell'iniettore, in modo magari anche di aggiungere qualche altra funzione, per esempio rilevare se l'iniettore è difettoso (tipico corto circuito),
inoltre mi piacerebbe riuscire a pilotarne quattro in sequenza, come accade nelle auto in normale funzionamento.
Avevo altresì pensato di pilotare gli iniettori da un circuito basato su NE555 e lasciare ad arduino solo il compito di lettura della frequenza o qualcosa di simile, ma se potessi eviterei.
Allego il codice:
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
int inj1 = 3;
int TjON, TjOFF = 0;
void setup() {
pinMode(inj1, OUTPUT);
lcd.begin(16, 2);
}
void loop() {
int TjON = analogRead(0);
int TjOFF = analogRead(1);
TjON = map(TjON, 0, 1023, 1, 30);
TjOFF = map(TjOFF, 0, 1023, 20, 140);
lcd.setCursor(0, 0);
lcd.print("TjON =");
lcd.print(TjON);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("TjOFF=");
lcd.print(TjOFF);
lcd.print(" ");
digitalWrite(inj1, HIGH);
delay(TjON);
digitalWrite(inj1, LOW);
delay(TjOFF);
}
Grazie a tutti.
l'elettronica delle auto non e troppo semplice come la vuoi far tu
tempi di iniezione ed anticipo sono in continua variazione modificati da i sensori principali dell'auto,
temperatura aria (debimetro) temperatura motore, sonda lambda etc....