Go Down

Topic: Conta giri a led per auto e temperatura (Read 3 times) previous topic - next topic

PaoloP

#10
Dec 06, 2012, 02:54 pm Last Edit: Dec 06, 2012, 02:57 pm by PaoloP Reason: 1
Se utilizzano una centralina di serie dovrebbero avere il connettore da qualche parte. Se poi vengano modificate e allegerite di componentistica non necessaria non saprei dire.
Ma dubito che non abbiano predisposto una connessione per la diagnostica.

P.S. Parlo ovviamente delle nuove auto con centraline elettroniche non di una vecchia ritmo abarth.  :smiley-roll-sweat:
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

luchetto19

per auto da rally io mi riferisco ad auto da corsa prototipi che sono prive di ecu originale... e le ecu che sono montate sono montate hanno una diagnostica completamente diversa dalle auto stradali. a parte  questo questa e un parte dell programma che ho fatto avrei la necessità di calcolarmi la media dei valori assegnati a (duration) avete qualche suggerimento ??

Code: [Select]
const int LED1 = 1; //Led 1 collegato al pin 1
const int LED2 = 2; //Led 2 collegato al pin 2
const int LED3 = 3; //Led 3 collegato al pin 3
const int LED4 = 4; //Led 4 collegato al pin 4
const int LED5 = 5; //Led 5 collegato al pin 5
const int LED6 = 6; //Led 6 collegato al pin 6
const int LED7 = 7; //Led 7 collegato al pin 7
const int LED8 = 8; //Led 8 collegato al pin 8
const int LED9 = 9; //Led 9 collegato al pin 9
const int LED10 = 10; //Led 10 collegato al pin 10

int Impulso = 13;     //indica che il pin di input al quale arriveranno gli impulso è il 13

unsigned long duration; //indica che la durata non può assumere valori negativi, long viene usato xk ha dimensione doppia rispetto a int

void setup()
{
  pinMode(Impulso, INPUT); //configura il pin come input
  pinMode(LED1, OUTPUT); //configura il pin come output
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
  pinMode(LED7, OUTPUT);
  pinMode(LED8, OUTPUT);
  pinMode(LED9, OUTPUT);
  pinMode(LED10, OUTPUT);


}

void loop()
{
  duration = pulseIn(Impulso, HIGH); //misura il tempo in millisecondi che trascorre tra un impulso e l'altro

PaoloP

#12
Dec 06, 2012, 07:06 pm Last Edit: Dec 06, 2012, 07:08 pm by PaoloP Reason: 1
Devi sommare duration in una variabile.
Ad ogni loop incrementi un contatore. Quando il contatore arriva ad un certo numero dividi la somma per il contatore.
Code: [Select]

sumduration += duration;
count++;
if (count >= 10) media = sumduration/count;


una cosa del genere.
Attento alla divisione intera, ma credo che non ti interessino i decimali degli rpm.  :D

P.S. Sostituisci i const int con i #define. Pare rendano il codice più veloce. <-- si sta ancora investigando sull'argomento.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

luchetto19

scusate se vi rompo ancora ma su serial monitor  invece di far stampare sempre un nuovo valore e possibile solo aggiornarlo ??

PaoloP

Sul serial monitor dell'IDE no, non ha il ritorno sulla riga superiore.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Go Up