Përmbajtje:
- Hapi 1: Zgjidhni një Sigal Wire
- Hapi 2: Zgjatni tela në bordin Arduino
- Hapi 3: Analiza e sinjalit
- Hapi 4: Kodifikoni analizën tuaj të sinjalit
- Hapi 5: Identifikoni një filtër
- Hapi 6: Filtrimi: Pjesa 1
- Hapi 7: Filtrimi: Pjesa 2
- Hapi 8: Filtrimi: Pjesa 3
- Hapi 9: Filtrimi: Pjesa 4
- Hapi 10: Shfaqni shpejtësinë e filtruar të motorit tuaj
Video: Përdorni Arduino për të shfaqur RPM të motorit: 10 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Ky udhëzues do të përshkruajë se si kam përdorur një Arduino UNO R3, një ekran LCD 16x2 me I2C dhe një shirit LED që do të përdoret si një matës i shpejtësisë së motorit dhe për të ndryshuar dritën në makinën time të pistës Acura Integra. Writtenshtë shkruar në lidhje me dikë me një përvojë ose ekspozim ndaj softuerit Arduino ose kodimit në përgjithësi, softuerit matematikor MATLAB, dhe krijimit ose modifikimit të qarqeve elektrike. Në të ardhmen kjo mund të rishikohet që të jetë më e lehtë për t'u kuptuar për dikë me pak ose aspak përvojë me këto tema.
Hapi 1: Zgjidhni një Sigal Wire
Ju do të duhet të merrni një sinjal që lidhet me shpejtësinë e motorit. Shtë e mundur të shtohet një sistem që mat shpejtësinë e motorit, por është shumë më praktike të prekësh një tel ekzistues që mbart informacione për shpejtësinë e motorit. Një makinë e vetme mund të ketë burime të shumta për këtë, dhe mund të ndryshojë shumë nga viti në vit në një model të vetëm automjeti. Për hir të këtij mësimi do të përdor shembullin e makinës sime, një pistë e modifikuar 2000 Acura Integra LS. Kam gjetur në motorin tim (B18B1 me OBD2) ka një tension të papërdorur jashtë që është 12V i lartë dhe bie në 0V me përfundimin e një revolucioni të plotë.
Gjërat që do të ndihmojnë në identifikimin e një sinjali të mundshëm të shpejtësisë së motorit:
- Diagrami i telave për automjetin tuaj
- Kërkoni forume për automjetin tuaj që përfshin sinjale të motorit/ECU
- Një mekanik miqësor ose entuziast i makinave
Hapi 2: Zgjatni tela në bordin Arduino
Pasi të keni zgjedhur një sinjal të përshtatshëm, do t'ju duhet ta zgjeroni atë kudo që vendosni bordin tuaj Arduino. Vendosa ta vendosja timen brenda automjetit ku ishte radio, kështu që e largova tela të re nga motori, përmes një gome të gomës në murin e zjarrit, dhe pikërisht në zonën e radios. Meqenëse tashmë ka një sasi të madhe udhëzuesish për heqjen, bashkimin dhe mbrojtjen e instalimeve elektrike, nuk do ta shpjegoj këtë proces.
Hapi 3: Analiza e sinjalit
Këtu mund të komplikohen gjërat. Të kesh një kuptim të përgjithshëm të analizës dhe kontrolleve të sinjalit do të të ndihmojë shumë, por është e mundur me pak njohuri.
Teli i sinjalit i zgjedhur me shumë mundësi nuk do të pështyjë vlerën e saktë të shpejtësisë së motorit. Do të duhet të formësohet dhe modifikohet për të dhënë numrin e saktë të RPM të motorit që dëshironi. Për shkak të faktit se çdo makinë e ndryshme dhe tela sinjali e zgjedhur mund të jenë të ndryshme, nga kjo pikë e tutje unë do të shpjegoj se si e kam përdorur sinjalin e pozicionit nga shpërndarësi në Integra -në time.
Sinjali im është normalisht 12V dhe bie në 0V kur përfundon një rrotullim të plotë. Nëse e dini kohën për të përfunduar një rrotullim të plotë, ose një cikël të plotë, kjo lehtë mund të përkthehet në revolucione/min duke përdorur disa koncepte bazë.
1 / (sekonda për cikël) = cikle për sekondë, ose Hz
Revolucionet në minutë = Hz * 60
Hapi 4: Kodifikoni analizën tuaj të sinjalit
Kjo metodë kërkon marrjen e kohës që duhet për sinjalin hyrës për të përfunduar një cikël të plotë. Për fat të mirë, softueri Arduino IDE ka një komandë që e bën pikërisht këtë, PulseIn.
Kjo komandë do të presë që një sinjal të kalojë një prag, të fillojë numërimin dhe të ndalojë numërimin kur pragu të kalohet përsëri. Ka disa detaje që duhet të theksohen kur përdorni komandën, kështu që unë do të përfshijë një lidhje me informacionin e PulseIn këtu:
PulseIn do të kthejë një vlerë në mikrosekonda, dhe për ta mbajtur matematikën të thjeshtë kjo duhet të konvertohet menjëherë në sekonda normale. Duke ndjekur matematikën në hapin e mëparshëm, kjo kohëzgjatje e kohës mund të barazohet drejtpërdrejt në RPM.
Shënim: pas provës dhe gabimit zbulova se shpërndarësi përfundon dy rrotullime për çdo rrotullim të boshtit të gungës së motorit, kështu që unë thjesht e ndava përgjigjen time me 2 për të marrë parasysh këtë.
Hapi 5: Identifikoni një filtër
Nëse jeni me fat sinjali juaj nuk do të ketë "zhurmë" (luhatje) dhe shpejtësia e motorit tuaj do të jetë e saktë. Në rastin tim, kishte shumë zhurmë që vinte nga shpërndarësi që shpesh jepte tensione larg asaj që pritej. Kjo kthehet në lexime shumë të rreme të shpejtësisë aktuale të motorit. Kjo zhurmë do të duhet të filtrohet.
Pas disa analizave të sinjalit, pothuajse e gjithë zhurma erdhi në frekuenca (Hz) shumë më të larta se ato që prodhonte vetë motori (që është e vërtetë për shumicën e sistemeve dinamike reale). Kjo do të thotë që një filtër me kalim të ulët është një kandidat ideal për t'u kujdesur për këtë.
Një filtër me kalim të ulët lejon që frekuencat e ulëta (të dëshiruara) të kalojnë dhe zbut frekuencat e larta (të padëshiruara).
Hapi 6: Filtrimi: Pjesa 1
Projektimi i filtrit mund të bëhet me dorë, megjithatë përdorimi i MATLAB do ta përshpejtojë këtë në mënyrë të konsiderueshme nëse keni qasje në softuer.
Një filtër me kalim të ulët mund të barazohet me një funksion transferimi (ose fraksion) në domenin Laplace (domeni i frekuencës). Frekuenca e hyrjes do të shumëzohet me këtë fraksion dhe dalja është një sinjal i filtruar që ka vetëm informacionin që dëshironi të përdorni.
Ndryshorja e vetme në funksion është tau. Tau është e barabartë me 1 / Omega, ku Omega është frekuenca e ndërprerjes që dëshironi (duhet të jetë në radianë për sekondë). Frekuenca e ndërprerjes është kufiri ku frekuencat më të larta se sa do të hiqen dhe frekuencat më të ulëta se sa do të mbahen.
Vendosa frekuencën e ndërprerjes të barabartë me një RPM që motori im nuk do të arrijë kurrë (990 RPM ose 165 Hz). Grafikët FFT tregojnë përafërsisht se çfarë frekuencash mbante sinjali im i papërpunuar dhe frekuencat që dolën nga filtri.
Hapi 7: Filtrimi: Pjesa 2
Këtu MATLAB u përdor përsëri për hir të kohës. Frekuenca e ndërprerjes përcaktohet, dhe nga kjo shfaqet funksioni i transferimit që rezulton. Mbani në mend se ky fraksion vlen vetëm për domenin Laplace dhe nuk mund të përdoret drejtpërdrejt në një mikrokontrollues të bazuar në kohë si Arduino UNO R3.
Hapi 8: Filtrimi: Pjesa 3
MATLAB ka një komandë që do të shndërrojë një funksion të vazhdueshëm (domain frekuence) në një funksion diskret (domain domain). Dalja e kësaj komande do të sigurojë një ekuacion që mund të përfshihet lehtësisht në kodin Arduino IDE.
Hapi 9: Filtrimi: Pjesa 4
Në skicën Arduino, përfshini ndryshoret u dhe y para konfigurimit. Komanda float thjesht përcakton se si variabla do të ruajë të dhënat (gjëra të tilla si vlera maksimale, dhjetore, etj …) dhe një lidhje me më shumë informacion mbi këtë do të jepet këtu: https://www.arduino.cc/reference/en/language /varia…
Në lakin ku po ndodh shndërrimi nga sinjali i papërpunuar në shpejtësinë e motorit, përfshini ndryshoren u dhe ekuacionin e shumëfishtë y. Ka shumë mënyra për ta përdorur këtë, por variabla u duhet të vendoset e barabartë me sinjalin e papërpunuar të hyrjes që matet dhe ndryshorja y do të jetë vlera e filtruar.
Hapi 10: Shfaqni shpejtësinë e filtruar të motorit tuaj
Recommended:
Programimi i një Arduino duke përdorur një Arduino tjetër për të shfaqur një tekst rrotullues pa bibliotekë: 5 hapa
Programimi i një Arduino Duke përdorur një Arduino tjetër për të shfaqur një tekst rrotullues pa bibliotekë: Sony Spresense ose Arduino Uno nuk janë aq të shtrenjta dhe nuk kërkojnë shumë energji. Sidoqoftë, nëse projekti juaj ka kufizime në fuqi, hapësirë apo edhe buxhet, mund të dëshironi të merrni parasysh përdorimin e Arduino Pro Mini. Ndryshe nga Arduino Pro Micro, Arduino Pro Mi
7 segmente për të shfaqur vlerat ADC #Arduino, #Arduino: 4 hapa
7 segmente për të shfaqur vlerat ADC #Arduino, #Arduino: Në këtë artikull do të bëj një projekt që është ende i lidhur me artikullin e mëparshëm. Domethënë përpunimi i të dhënave ADC. Kështu që nuk keni nevojë për një monitor serik për të parë vlerën e të dhënave adc. në këtë artikull do të bëj një shfaqje të shikuesit të vlerës ADC. kështu që ju nuk
Si ta vendosni Samsung Galaxy S7 me Android 8.0 për të shfaqur vetëm ekranin për një aplikacion !!: 5 hapa
Si ta vendosni Samsung Galaxy S7 Me Android 8.0 për të shfaqur vetëm ekranin për një aplikacion !!: Ky udhëzues do t'ju tregojë se si ta vendosni samsung galaxy s7 që të shfaqë ekranin vetëm për një aplikacion Kjo është e mrekullueshme nëse keni një fëmijë/fëmijë që i pëlqen të luajë me telefonin tuaj ose dëshiron të sigurohet që telefoni juaj të qëndrojë në një aplikacion vetëm kur dikush tjetër është
Kontrolli autonom i RPM të motorit duke përdorur sistemin e reagimit nga një takometër me bazë IR: 5 hapa (me fotografi)
Kontrolli autonom i RPM -së së motorit duke përdorur sistemin e reagimit nga një tahometër i bazuar në IR: Gjithmonë ekziston nevoja për automatizimin e një procesi, qoftë i thjeshtë/monstruoz. Unë e kam idenë për ta bërë këtë projekt nga një sfidë e thjeshtë me të cilën jam përballur gjatë gjetjes metodat për të ujitur/ujitur pjesën tonë të vogël të tokës. Problemi i mungesës së linjës aktuale të furnizimit
Përdorni SSH dhe XMing për të shfaqur programe X nga një kompjuter Linux në një kompjuter Windows: 6 hapa
Përdorni SSH dhe XMing për të shfaqur programe X nga një kompjuter Linux në një kompjuter Windows: Nëse përdorni Linux në punë, dhe Windows në shtëpi, ose anasjelltas, ndonjëherë mund t'ju duhet të regjistroheni në kompjuter në vendndodhjen tuaj tjetër , dhe drejtoni programe. Epo, mund të instaloni një server X dhe të aktivizoni tunelimin SSH me klientin tuaj SSH, dhe një