Funzione di calcolo velocità

Ecco la funzione che sviluppato per calcolare la velocità raggiunta dallo scooter.

Si parte dall’assunzione di non usare l’ingresso digitale, ma analogico, ho usato questo sistema perche’ i PIN digitali mi servono per fare altre cose in futuro..

 

Questo per dare una idea di come si implementano con facilità soluzioni su Arduino..

Ecco il codice:

/variabili x conta KM
int pincontgiri=5; // legge segnale x contagiri
int state; //the state of the input
int oldstate;
unsigned long t; //timer
unsigned long s; //samples
unsigned long c; //count
double f=0; //frequency
double cont=0;
double sensvalgiri=0;
double giricalc=0; // lettura del valore sensore di hall
// End variabili contaKM

double GetKmh()
{
// la funzione calcola il nr di giri al secondo in funzione di un ciclo di valutazione
c = 0;
t = millis(); // read time at start of sampling
for(s=0; s<1500; s++){ //take a number of samples dura circa 0,4 sec
sensvalgiri = analogRead(pincontgiri);
sensvalgiri=sensvalgiri/1023*5;
if (sensvalgiri > 3)
{
state = 1; // se il segnale analogico supera i 3V vuol dire che hall sensor è attivo
}
else
{
state = 0; // se il segnale analogico supera i 3V vuol dire che hall sensor è 0
}
if (state != oldstate){ //lo stato è cambiato:
c++; //conta il nr di cambiamenti
oldstate = state; //and reset current state
}

}
t = millis() – t; //read time at end of sampling

c = c/2; // need to divide by 2 because counter incremented on each change – two changes per cycle

f = 1000*c/t; //calcola il nr di volte che hall sensor è attivo per un secondo

// in km/h
// dove 23= nr di volte che hall sensor va a 5V
// 1.42 metri di circonferenza ruota
// il resto dei numeri serve a convertire i valori da sec a h e da metri a KM
f= (f/23*3600*1.42/1000);

return f;

}

Annunci

, , , , ,

  1. Lascia un commento

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: