Taula de continguts:
- Pas 1: trieu un Sigal Wire
- Pas 2: esteneu el cable a la placa Arduino
- Pas 3: anàlisi del senyal
- Pas 4: codifiqueu l'anàlisi del vostre senyal
- Pas 5: identifiqueu un filtre
- Pas 6: filtratge: primera part
- Pas 7: filtratge: part 2
- Pas 8: filtratge: part 3
- Pas 9: filtratge: part 4
Vídeo: Utilitzeu Arduino per mostrar RPM del motor: 10 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
En aquesta guia es descriurà com he fet servir un Arduino UNO R3, una pantalla LCD de 16x2 amb I2C i una tira LED per utilitzar-la com a indicador de velocitat del motor i llum de canvi al meu cotxe Acura Integra. S'escriu en termes d'alguna persona amb certa experiència o exposició al programari Arduino o codificació en general, el programari matemàtic MATLAB, i la creació o modificació de circuits elèctrics. En el futur, això es podrà revisar per ser més fàcil d’entendre per a algú amb poca o cap experiència en aquests temes.
Pas 1: trieu un Sigal Wire
Haureu d’obtenir un senyal que es correlacioni amb la velocitat del motor. És possible afegir un sistema que mesuri la velocitat del motor, però és molt més pràctic accedir a un cable existent que conté informació sobre la velocitat del motor. Un mateix cotxe pot tenir diverses fonts per a això, i pot variar enormement fins i tot any a any en un model de vehicle únic. En nom d’aquest tutorial, faré servir l’exemple del meu cotxe, una pista modificada 2000 Acura Integra LS. Vaig trobar al meu motor (B18B1 amb OBD2) que hi ha una sortida de tensió no utilitzada que fa 12V d’alçada i baixa a 0V en completar una revolució completa.
Coses que ajudaran a identificar un senyal potencial de velocitat del motor:
- Esquema de cablejat del vostre vehicle
- Cerqueu fòrums per al vostre vehicle amb senyals de motor / ECU
- Un mecànic amable o aficionat al cotxe
Pas 2: esteneu el cable a la placa Arduino
Un cop hàgiu triat un senyal adequat, l'haureu d'estendre a qualsevol lloc on col·loqueu la vostra placa Arduino. Vaig decidir col·locar el meu dins del vehicle on abans hi havia la ràdio, de manera que vaig encaminar el nou cable del motor a través d’un passamans de goma a la paret de foc i fins a la zona de la ràdio. Com que ja hi ha una gran quantitat de guies de procediments sobre pelar, soldar i protegir el cablejat, no explicaré aquest procés.
Pas 3: anàlisi del senyal
Aquí és on es poden complicar les coses. Tenir una comprensió general de l’anàlisi i els controls del senyal us ajudarà a recórrer un llarg camí, però és factible amb pocs coneixements.
El cable de senyal triat amb més probabilitat no escopirà el valor exacte de la velocitat del motor. Haurà de ser modelat i modificat per donar el nombre exacte de RPM del motor que desitgi. A causa del fet que tots els cables de senyal i cotxe escollits poden ser diferents, a partir d’aquest moment explicaré com he utilitzat el senyal de posició del distribuïdor al meu Integra.
El meu senyal és normalment de 12 V i baixa a 0 V quan es completa una rotació completa. Si coneixeu el temps per completar una rotació completa o un cicle complet, això es pot traduir fàcilment en revolucions / min mitjançant alguns conceptes bàsics.
1 / (segons per cicle) = cicles per segon o Hz
Revolucions per minut = Hz * 60
Pas 4: codifiqueu l'anàlisi del vostre senyal
Aquest mètode requereix obtenir el temps que triga el senyal d’entrada a completar un cicle complet. Per sort, el programari Arduino IDE té una ordre que fa exactament això, PulseIn.
Aquesta ordre esperarà que un senyal creui un llindar, comenci a comptar i deixi de comptar quan es torni a creuar el llindar. Hi ha alguns detalls que cal tenir en compte a l’hora d’utilitzar l’ordre, de manera que inclouré un enllaç a la informació de PulseIn aquí:
PulseIn retornarà un valor en microsegons i, per mantenir les matemàtiques simples, s’hauria de convertir immediatament en segons normals. Seguint les matemàtiques del pas anterior, aquesta durada del temps es pot equiparar directament a RPM.
Nota: després de proves i errors, vaig descobrir que el distribuïdor completa dues rotacions per cada rotació del cigonyal del motor, de manera que simplement vaig dividir la meva resposta per 2 per explicar-ho.
Pas 5: identifiqueu un filtre
Si teniu sort, el vostre senyal no tindrà "soroll" (fluctuacions) i la velocitat del motor serà exacta. En el meu cas, hi havia molt soroll del distribuïdor que sovint donava tensions molt allunyades del que s’esperava. Això es converteix en lectures molt falses de la velocitat real del motor. Aquest soroll haurà de ser filtrat.
Després d'algunes anàlisis de senyal, gairebé tot el soroll va arribar a freqüències (Hz) molt superiors a les que produïa el propi motor (cosa que és cert per a la majoria de sistemes dinàmics reals). Això significa que un filtre de pas baix és el candidat ideal per tenir-ne cura.
Un filtre de pas baix permet passar les freqüències baixes (desitjades) i atenua les freqüències altes (no desitjades).
Pas 6: filtratge: primera part
El disseny del filtre es pot fer manualment, tot i que utilitzar MATLAB accelerarà notablement si es té accés al programari.
Un filtre de pas baix es pot equiparar a una funció de transferència (o fracció) al domini de Laplace (domini de freqüència). La freqüència d'entrada es multiplicarà per aquesta fracció i la sortida és un senyal filtrat que només té la informació que voleu utilitzar.
L'única variable de la funció és tau. Tau és igual a 1 / Omega, on Omega és la freqüència de tall que voleu (ha de ser en radians per segon). La freqüència de tall és el límit on s’eliminaran freqüències superiors a les que es mantindran i freqüències inferiors a les que es mantindran.
He definit la freqüència de tall igual a RPM que el meu motor mai no assolirà (990 RPM o 165 Hz). Els gràfics FFT mostren aproximadament quines freqüències emportava el meu senyal cru i les freqüències que sortien del filtre.
Pas 7: filtratge: part 2
Aquí MATLAB es va tornar a utilitzar per fer temps. Es defineix la freqüència de tall i, a partir d’aquí, es mostra la funció de transferència resultant. Tingueu en compte que aquesta fracció només s'aplica al domini Laplace i no es pot utilitzar directament en un micro controlador basat en el temps com Arduino UNO R3.
Pas 8: filtratge: part 3
MATLAB té una ordre que convertirà una funció contínua (domini de freqüència) en una funció discreta (domini de temps). La sortida d'aquesta ordre proporcionarà una equació que es pot incorporar fàcilment al codi IDE d'Arduino.
Pas 9: filtratge: part 4
A l'esbós d'Arduino, incloeu les variables uy abans de la configuració. L'ordre float simplement defineix com la variable emmagatzemarà dades (coses com el valor màxim, decimals, etc.) i es proporcionarà un enllaç a més informació sobre això: https://www.arduino.cc/reference/en/language / varia …
Al bucle on s'està produint la conversió del senyal brut a velocitat del motor, incloeu la variable u i l'equació múltiple y. Hi ha diverses maneres d'utilitzar-ho, però la variable u s'ha d'establir igual al senyal d'entrada bruta que es mesura, i la variable y serà el valor filtrat.
Recomanat:
Utilitzeu un motor de transmissió de corrent continu i un controlador de velocitat PWM per a eines d’alimentació: 13 passos (amb imatges)
Utilitzeu un motor d’accionament de corrent continu de cinta de córrer i un controlador de velocitat PWM per a eines d’alimentació: poden necessitar eines elèctriques com ara torns de tall de metall, premses de trepant, serres de cinta, esmoladores i molt més. .Coincidentalment la majoria de cintes de córrer utilitzen un motor de 80-260 VDC amb
Utilitzeu Cortana i un Arduino per controlar els leds RGB o ledstrips amb la vostra veu: 4 passos (amb imatges)
Utilitzeu Cortana i un Arduino per controlar els leds o ledstrips RGB amb la vostra veu. Això es fa amb l'aplicació CoRGB, que es troba disponible de forma gratuïta a la botiga d'aplicacions de Windows. Aquesta aplicació forma part del meu projecte CortanaRoom. Quan hagis acabat d'enginy
Utilitzeu el mòdul Bluetooth HC-05 per realitzar comunicacions micro: bits amb telèfon mòbil: 9 passos (amb imatges)
Utilitzeu el mòdul Bluetooth HC-05 per realitzar comunicacions micro: bits amb telèfon mòbil: al capítol Utilitzeu el mòdul Bluetooth HC-06 per realitzar comunicacions micro: bits amb telèfon mòbil, hem parlat de com utilitzar HC-06 per realitzar comunicacions entre micro: bit i telèfon mòbil. Excepte HC-06, hi ha un altre mòdul Bluetooth comú
Utilitzeu el mòdul Bluetooth HC-06 per realitzar comunicacions micro: bits amb telèfon mòbil: 8 passos (amb imatges)
Utilitzeu el mòdul Bluetooth HC-06 per realitzar comunicacions Micro: bit amb el telèfon mòbil: molts amics del meu entorn que juguen micro: bit em diuen que la connexió Bluetooth de micro: bit no és estable. És fàcil desconnectar. Si fem servir micropitó, ni tan sols es pot utilitzar el Bluetooth. Abans que aquest problema sigui resolt per micro: bit offic
Utilitzeu SSH i XMing per mostrar programes X des d'un ordinador Linux en un ordinador Windows: 6 passos
Utilitzeu SSH i XMing per mostrar programes X des d'un ordinador Linux en un equip Windows: Si utilitzeu Linux a la feina i Windows a casa, o viceversa, és possible que de vegades hàgiu d'iniciar sessió a l'ordinador a la vostra altra ubicació i executar programes. Bé, podeu instal·lar un servidor X i habilitar el túnel SSH amb el vostre client SSH i un