Sommario:
- Passaggio 1: scegli un cavo Sigal
- Passaggio 2: estendere il cavo alla scheda Arduino
- Passaggio 3: analisi del segnale
- Passaggio 4: codifica l'analisi del segnale
- Passaggio 5: identificare un filtro
- Passaggio 6: filtraggio: parte 1
- Passaggio 7: filtraggio: parte 2
- Passaggio 8: filtraggio: parte 3
- Passaggio 9: filtraggio: parte 4
Video: Usa Arduino per visualizzare gli RPM del motore: 10 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Questa guida illustrerà come ho utilizzato un Arduino UNO R3, un display LCD 16x2 con I2C e una striscia LED da utilizzare come indicatore di velocità del motore e luce del cambio nella mia macchina da pista Acura Integra. È scritto in termini di qualcuno con una certa esperienza o esposizione al software Arduino o alla codifica in generale, al software matematico MATLAB e alla creazione o modifica di circuiti elettrici. In futuro questo potrebbe essere rivisto per essere più facile da capire per qualcuno con poca o nessuna esperienza con questi argomenti.
Passaggio 1: scegli un cavo Sigal
Dovrai ottenere un segnale correlato alla velocità del motore. È possibile aggiungere un sistema che misura la velocità del motore, ma è molto più pratico attingere a un cavo esistente che trasporta informazioni sulla velocità del motore. Una singola auto può avere più fonti per questo e può variare notevolmente anche di anno in anno su un singolo modello di veicolo. Per il bene di questo tutorial userò l'esempio della mia auto, una Acura Integra LS del 2000 modificata da pista. Ho scoperto che sul mio motore (B18B1 con OBD2) c'è una tensione inutilizzata che è alta 12 V e scende a 0 V dopo aver completato un giro completo.
Cose che aiuteranno a identificare un potenziale segnale di velocità del motore:
- Schema elettrico per il tuo veicolo
- Ricerca nei forum per il tuo veicolo che coinvolgono segnali motore/ECU
- Un meccanico amichevole o un appassionato di auto
Passaggio 2: estendere il cavo alla scheda Arduino
Una volta scelto un segnale adatto, dovrai estenderlo ovunque tu stia posizionando la tua scheda Arduino. Ho deciso di posizionare il mio all'interno del veicolo dove c'era la radio, quindi ho instradato il nuovo cavo dal motore, attraverso un passacavo di gomma nel muro antincendio, e direttamente nell'area della radio. Poiché esiste già un'abbondante quantità di guide pratiche su spelatura, saldatura e protezione del cablaggio, non spiegherò questo processo.
Passaggio 3: analisi del segnale
Qui è dove le cose possono complicarsi. Avere una comprensione generale dell'analisi del segnale e dei controlli ti aiuterà molto, ma è fattibile con poca conoscenza.
Il cavo del segnale scelto molto probabilmente non sputerà il valore esatto della velocità del motore. Dovrà essere modellato e modificato in modo da fornire il numero esatto di giri motore che desideri. A causa del fatto che ogni diversa auto e cavo di segnale scelto può essere diverso, da questo punto in poi spiegherò come ho usato il segnale di posizione dal distributore sulla mia Integra.
Il mio segnale è normalmente 12V e scende a 0V quando si completa una rotazione completa. Se conosci il tempo per completare una rotazione completa, o un ciclo completo, questo può essere facilmente tradotto in giri/min utilizzando alcuni concetti di base.
1 / (secondi per ciclo) = cicli per secondo, o Hz
Giri al minuto = Hz * 60
Passaggio 4: codifica l'analisi del segnale
Questo metodo richiede di ottenere il tempo necessario al segnale di ingresso per completare un ciclo completo. Fortunatamente il software Arduino IDE ha un comando che fa esattamente questo, PulseIn.
Questo comando attenderà che un segnale attraversi una soglia, avvii il conteggio e interrompa il conteggio quando la soglia viene nuovamente superata. Ci sono alcuni dettagli che dovrebbero essere annotati quando si utilizza il comando, quindi includerò un collegamento alle informazioni di PulseIn qui:
PulseIn restituirà un valore in microsecondi e, per semplificare i calcoli, questo dovrebbe essere immediatamente convertito in secondi normali. Seguendo i calcoli del passaggio precedente, questa durata di tempo può essere equiparata direttamente a RPM.
Nota: dopo tentativi ed errori ho scoperto che il distributore completa due rotazioni per ogni singola rotazione dell'albero motore del motore, quindi ho semplicemente diviso la mia risposta per 2 per tenerne conto.
Passaggio 5: identificare un filtro
Se sei fortunato, il tuo segnale non avrà "rumore" (fluttuazioni) e la velocità del tuo motore sarà esatta. Nel mio caso c'era molto rumore proveniente dal distributore che spesso dava tensioni lontane da quelle previste. Questo si trasforma in letture molto false della velocità effettiva del motore. Questo rumore dovrà essere filtrato.
Dopo alcune analisi del segnale, quasi tutto il rumore arrivava a frequenze (Hz) molto più alte di quelle emesse dal motore stesso (il che è vero per la maggior parte dei sistemi dinamici reali). Ciò significa che un filtro passa basso è un candidato ideale per occuparsene.
Un filtro passa basso consente il passaggio delle basse frequenze (desiderate) e attenua le alte frequenze (indesiderate).
Passaggio 6: filtraggio: parte 1
La progettazione del filtro può essere eseguita manualmente, tuttavia l'utilizzo di MATLAB accelererà notevolmente questa operazione se si ha accesso al software.
Un filtro passa basso può essere equiparato a una funzione di trasferimento (o frazione) nel dominio di Laplace (dominio della frequenza). La frequenza in ingresso verrà moltiplicata per questa frazione e l'uscita è un segnale filtrato che contiene solo le informazioni che si desidera utilizzare.
L'unica variabile nella funzione è tau. Tau è uguale a 1 / Omega, dove Omega è la frequenza di taglio desiderata (deve essere in radianti al secondo). La frequenza di taglio è il limite in cui le frequenze superiori verranno rimosse e le frequenze inferiori verranno mantenute.
Ho impostato la frequenza di taglio uguale a un RPM che il mio motore non raggiungerà mai (990 RPM o 165 Hz). I grafici FFT mostrano approssimativamente quali frequenze trasportava il mio segnale grezzo e le frequenze che uscivano dal filtro.
Passaggio 7: filtraggio: parte 2
Qui MATLAB è stato utilizzato di nuovo per motivi di tempo. Viene definita la frequenza di taglio e da essa viene visualizzata la funzione di trasferimento risultante. Tieni presente che questa frazione si applica solo al dominio Laplace e non può essere utilizzata direttamente su un micro controller basato sul tempo come Arduino UNO R3.
Passaggio 8: filtraggio: parte 3
MATLAB ha un comando che convertirà una funzione continua (dominio della frequenza) in una funzione discreta (dominio del tempo). L'output di questo comando fornirà un'equazione che può essere facilmente incorporata nel codice IDE di Arduino.
Passaggio 9: filtraggio: parte 4
Nello sketch Arduino, includi le variabili u e y prima del setup. Il comando float definisce semplicemente come la variabile memorizzerà i dati (cose come valore massimo, decimali, ecc…) e un collegamento a maggiori informazioni su questo verrà fornito qui: https://www.arduino.cc/reference/en/language /variabile…
Nel ciclo in cui avviene la conversione dal segnale grezzo alla velocità del motore, includi la variabile u e l'equazione multipla y. Esistono diversi modi per utilizzarlo, ma la variabile u dovrebbe essere impostata uguale al segnale di ingresso grezzo da misurare e la variabile y sarà il valore filtrato.
Consigliato:
Motore passo-passo controllato da motore passo-passo - Motore passo-passo come encoder rotativo: 11 passaggi (con immagini)
Motore passo-passo controllato da motore passo-passo | Motore passo-passo come encoder rotativo: hai un paio di motori passo-passo in giro e vuoi fare qualcosa? In questo Instructable, utilizziamo un motore passo-passo come encoder rotativo per controllare la posizione di un altro motore passo-passo utilizzando un microcontrollore Arduino. Quindi, senza ulteriori indugi, ge
Usa un motore di azionamento CC per tapis roulant e un controller di velocità PWM per gli strumenti di alimentazione: 13 passaggi (con immagini)
Utilizzare un motore di azionamento CC per tapis roulant e un controller di velocità PWM per utensili elettrici: utensili elettrici come frese e torni per il taglio di metalli, trapani a colonna, seghe a nastro, levigatrici e altro possono richiedere. Motori da 5 HP a 2 HP con la capacità di regolare la velocità mantenendo la coppia .Per coincidenza la maggior parte dei tapis roulant utilizza un motore da 80-260 VDC con
Guardare l'eclissi con gli occhiali da lettura (e non bruciarmi gli occhi): 4 passaggi (con immagini)
Guardando l'Eclipse con gli occhiali da lettura (e senza bruciarmi gli occhi): Ehi, ho colto la tua curiosità con il mio titolo? Anche mio padre lo ha fatto, mentre ieri stavamo passeggiando nella vecchia Montréal, si è tolto gli occhiali e mi ha mostrato come vedere come vedere l'eclissi, pensavano i suoi occhiali da lettura. Quindi tutto ciò che
Usa gli incantesimi per controllare il tuo computer!: 7 passaggi (con immagini)
Usa gli incantesimi per controllare il tuo computer!: Hai mai desiderato usare incantesimi come Harry Potter? Con un po' di lavoro e un po' di riconoscimento vocale, questo può essere padroneggiato. Cose di cui hai bisogno per questo progetto: Un computer con Windows XP o Vista Un microfono Un po' di tempo e pazienza! Se ti è piaciuto questo Instructabl
Usa SSH e XMing per visualizzare i programmi X da un computer Linux su un computer Windows: 6 passaggi
Usa SSH e XMing per visualizzare i programmi X da un computer Linux su un computer Windows: Se usi Linux al lavoro e Windows a casa, o viceversa, a volte potresti dover accedere al computer dall'altra posizione ed eseguire programmi. Bene, puoi installare un server X e abilitare il tunneling SSH con il tuo client SSH e uno