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
Inviato dal mio GT-I9100 con Tapatalk 2
Alberto
Allarmi vari temperature e pressioni
|
18-01-2013, 20:27
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
19-01-2013, 09:24
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
19-01-2013, 14:25
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...
19-01-2013, 14:25
e non ti preoccupare che non ti "intrometti", mi stai aiutando!
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...
19-01-2013, 14:28
.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 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...
19-01-2013, 18:38
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
20-01-2013, 17:32
Grazie per i link.
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...
21-01-2013, 00:34
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
21-01-2013, 13:48
(Questo messaggio è stato modificato l'ultima volta il: 21-01-2013, 13:56 da fracrist.)
...
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...
21-01-2013, 13:54
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] miley:
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... |
« Precedente | Successivo »
|
Discussioni simili | |||||
Discussione | Ultimo messaggio | ||||
[NA] Strumenti Temperature liquidi |
10-11-2017, 22:13 Ultimo messaggio: Pee Tee |
||||
Rimappatura Centralina dopo vari lavoretti.... :) |
12-05-2013, 23:35 Ultimo messaggio: Giova636 |
||||
sostituire Parrot CK3100 con MKI9100. Dubbi vari... |
30-09-2011, 08:58 Ultimo messaggio: FoggyZ |
||||
pulsanti e connettori vari sotto al volante |
28-09-2011, 15:35 Ultimo messaggio: yellowmiatait |
||||
radio rubata e connettori vari |
17-07-2010, 21:54 Ultimo messaggio: nippe |