This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Allarmi vari temperature e pressioni
Quello del connettore è il vero segnale rpm. Non so cosa sia "sin+" sinceramente. Leggendo anchr "cos+mi da l'idea di essere una sinusoide

Inviato dal mio GT-I9100 con Tapatalk 2
Alberto
  Cita messaggio
scusa se mi intrometto nella discussione senza aver letto proprio tutto
io sto usando l'arduino sulla mia zx6r, e sia il segnale giri che quello velocità li leggo con pulseIn(), settato su HIGH o LOW non cambia nulla, semplicemente su HIGH ti "dice" il duty cycle dell'acceso (e diminuisce con l'aumentare dei giri), mentre su LOW quello della parte spenta dell'onda (e aumenta con l'aumentare dei giri).
Puoi provare così, anche perché l'impulso rpm dovrebbe essere una onda quadra, non una sinusoide.
Attento a mettere un resistore da 12k se no il pin si "ciuccia" troppa corrente e rischi che lo strumento non legga più come prima
  Cita messaggio
DNA, se il segnale rpm mx-5 fosse a duty cycle variabile avrebbe senso, ma qui il duty cycle è fisso (38%) e varia la frequenza. Perciò non posso fare altro che "contare" i micros() che passano da un RISING/FALLING al successivo.
La Gatta : 2003 NBFL 1.8 Sport http://www.mx5italia.com/showthread.php?19520-La-Gatta
Team Ciocapiàt pResident Evil

Bisso Ha scritto:se poi si arriva a fare il solito discorso: "ne vale la pena?" non se ne viene più fuori...
l'importante è pensare bene a cosa si fa, a cosa si vuole fare e a cosa si vuole ottenere...
  Cita messaggio
e non ti preoccupare che non ti "intrometti", mi stai aiutando! WinkThumbup
La Gatta : 2003 NBFL 1.8 Sport http://www.mx5italia.com/showthread.php?19520-La-Gatta
Team Ciocapiàt pResident Evil

Bisso Ha scritto:se poi si arriva a fare il solito discorso: "ne vale la pena?" non se ne viene più fuori...
l'importante è pensare bene a cosa si fa, a cosa si vuole fare e a cosa si vuole ottenere...
  Cita messaggio
.SharK Ha scritto:Quello del connettore è il vero segnale rpm. Non so cosa sia "sin+" sinceramente. Leggendo anchr "cos+mi da l'idea di essere una sinusoide

Inviato dal mio GT-I9100 con Tapatalk 2

Ok. In effetti dietro ai due strumenti (km/h e rpm) ci sono 4 viti (sin+ , sin- , cos+ , cos-) e mi veniva più comodo prendere il segnale da lì che dal connettore.
Ma credo che rimarrò con la soluzione del connettore.
La Gatta : 2003 NBFL 1.8 Sport http://www.mx5italia.com/showthread.php?19520-La-Gatta
Team Ciocapiàt pResident Evil

Bisso Ha scritto:se poi si arriva a fare il solito discorso: "ne vale la pena?" non se ne viene più fuori...
l'importante è pensare bene a cosa si fa, a cosa si vuole fare e a cosa si vuole ottenere...
  Cita messaggio
fracrist Ha scritto:DNA, se il segnale rpm mx-5 fosse a duty cycle variabile avrebbe senso, ma qui il duty cycle è fisso (38%) e varia la frequenza. Perciò non posso fare altro che "contare" i micros() che passano da un RISING/FALLING al successivo.

mmmh.. ho letto qualche giorno fa di una funzione standard che aspetta l'HIGH, fa partire un timer e lo ferma all'HIGH successivo. Restituiva il periodo (e tanto basta), il problema è che non trovo più quella funzione.. ma di sicuro è nel sito ufficiale
Altrimenti puoi prendere una libreria già sviluppata da altri con funzioni belle che pronte per calcolare una frequenza variabile con duty fisso (50%)

http://arduino.cc/forum/index.php?action...ic=80239.0

qui ci sono tutte le funzioni che include la libreria
  Cita messaggio
Grazie per i link. Smile
Rimango però restio ad utilizzare librerie esterne per fare cose semplici che posso implementare io (ammesso che non sbagli a scrivere il codice), ma ci guardo e vedo che ne posso tirare fuori.
La Gatta : 2003 NBFL 1.8 Sport http://www.mx5italia.com/showthread.php?19520-La-Gatta
Team Ciocapiàt pResident Evil

Bisso Ha scritto:se poi si arriva a fare il solito discorso: "ne vale la pena?" non se ne viene più fuori...
l'importante è pensare bene a cosa si fa, a cosa si vuole fare e a cosa si vuole ottenere...
  Cita messaggio
trovato! e dire che l'avevo anche usato..

http://arduino.cc/en/Reference/pulseIn

a bassi giri avrai un valore abbastanza alto che decresce all'aumentare dei giri, basta usare il tipo di variabile int per avere una buona definizione
  Cita messaggio
...
La Gatta : 2003 NBFL 1.8 Sport http://www.mx5italia.com/showthread.php?19520-La-Gatta
Team Ciocapiàt pResident Evil

Bisso Ha scritto:se poi si arriva a fare il solito discorso: "ne vale la pena?" non se ne viene più fuori...
l'importante è pensare bene a cosa si fa, a cosa si vuole fare e a cosa si vuole ottenere...
  Cita messaggio
Grazie di nuovo :chessygrin:.

Ho dato un'occhiata a come usarla, ma credo che non faccia al caso mio perché non riesco a inserirla "a interrupt".
Mi spiego meglio: la rilevazione dei giri deve essere asincrona rispetto al resto del programma, perchè il task principale è quello di "accendere luci" e non posso bloccare in attesa di input.

Ecco qualche estratto (setup, loop e funzione interrupt).

[CODE]void setup() {
//Setup Seriale : per leggere via USB cosa succede
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}

//Imposto ingressi e uscite
pinMode(H2O_IN, INPUT);
pinMode(OIL_IN, INPUT);
pinMode(RPM_IN, INPUT);
pinMode(FAULT, OUTPUT);
pinMode(OIL_G, OUTPUT);
pinMode(OIL_R, OUTPUT);
pinMode(RPM_Y, OUTPUT);
pinMode(RPM_R, OUTPUT);
pinMode(H2O_G, OUTPUT);
pinMode(H2O_R, OUTPUT);


//Mi assicuro che non ci sia pullup sugli ingressi analogici
digitalWrite(H2O_IN,LOW);
digitalWrite(OIL_IN,LOW);

// Attach interrupt
attachInterrupt(1, rpm_count, RISING);
}


void loop() {
resetLed(); // Tutti a LOW


H2O_TEMP = analogRead(H2O_IN); //Leggo sensore temperatura acqua
delay(50); //Per evitare Jitter sul pin di fianco
OIL_PRES = analogRead(OIL_IN); //Leggo sensore pressione olio
updateRPM(); //Aggiorno la media delle ultime 5 letture


//Accendo e spengo i led di output
updatedisplay();


delay(50);
}


void updateRPM() {
noInterrupts(); //precauzionale: così time non cambia valore durante il calcolo di RPM
if(time > 0)
{
//Medio 5 letture per normalizzare la lettura
rpm_array[0] = rpm_array[1];
rpm_array[1] = rpm_array[2];
rpm_array[2] = rpm_array[3];
rpm_array[3] = rpm_array[4];
rpm_array[4] = 60*(1000000/time); //time è il periodo in micros(): qui lo converto in frequenza e in minuti
//Media delle ultime 5 letture
RPM = (rpm_array[0] + rpm_array[1] + rpm_array[2] + rpm_array[3] + rpm_array[4]) / 5;
}
interrupts();
}



//RPM interrupt function
void rpm_count() {
time = (micros() - time_last);
time_last = micros();
}
[/CODE]

Confusedmiley:
La Gatta : 2003 NBFL 1.8 Sport http://www.mx5italia.com/showthread.php?19520-La-Gatta
Team Ciocapiàt pResident Evil

Bisso Ha scritto:se poi si arriva a fare il solito discorso: "ne vale la pena?" non se ne viene più fuori...
l'importante è pensare bene a cosa si fa, a cosa si vuole fare e a cosa si vuole ottenere...
  Cita messaggio


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  [NA] Strumenti Temperature liquidi Pee Tee 11 6,482 10-11-2017, 22:13
Ultimo messaggio: Pee Tee
  Rimappatura Centralina dopo vari lavoretti.... :) Giova636 18 3,428 12-05-2013, 23:35
Ultimo messaggio: Giova636
  sostituire Parrot CK3100 con MKI9100. Dubbi vari... jeby 5 6,983 30-09-2011, 08:58
Ultimo messaggio: FoggyZ
  pulsanti e connettori vari sotto al volante yuza 15 4,303 28-09-2011, 15:35
Ultimo messaggio: yellowmiatait
  radio rubata e connettori vari ratto 7 2,779 17-07-2010, 21:54
Ultimo messaggio: nippe



Utenti che stanno guardando questa discussione: 4 Ospite(i)