Měření otáček spalovacího motoru

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

Měření otáček spalovacího motoru

#1 Příspěvek od Celeron »

Ahoj Arduiňáci.
Potřeboval bych ubastlit co nejmenší otáčkoměr 0-10 000 ot/min k zapalování dvou a nebo čtyřtaktu. Na netu jsem nic vhodnýho nenašel, tak asi Arduino Mini, snímat TTL pulzy, co má naštěstí zapalování vyvedený jako otevřenej kolektor. No a výpis otáček by šel buď na LCD jednořádek 1 x 8 a nebo na Nokii displej.
Chci zkusit použít funkci PulseIn a sečíst dýlku pulzů High a Low v cyklu 1 sekunda. Asi takhle nějak bez definice setup:

Kód: Vybrat vše

void loop()
{
  per_h = pulseIn(vst_pin,HIGH); 
  per_l = pulseIn(vst_pin,LOW);
  per_s = per_h + per_l;
  otc = ((1 / per_s)*60000; // tisice otacek pro dvoutakt
  lcd.print (otc);                  // výpis náznakově...
  delay (1000);
}
Díky!
edit: opraveno, ne počet ale dýlka impulzu.
Naposledy upravil(a) Celeron dne 01 kvě 2022, 23:37, celkem upraveno 1 x.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Hape
Příspěvky: 353
Registrován: 08 úno 2010, 01:00
Bydliště: Dolní Cerekev, Česko (Czechia)
Kontaktovat uživatele:

#2 Příspěvek od Hape »

Pokud bys netrval na Arduinu, tak v poměrně malém provedení je možné objednat stavebnici čítače/otáčkoměru na webu pana Zajíce: http://zajic.cz/nfstupni/nfstupni.htm

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#3 Příspěvek od Celeron »

Ty ledky by na slunci nebyly vidět. Musí být LCD.
Jirka

Proč mi nemůže všechno chodit hned ?!!

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#4 Příspěvek od termit256 »


Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#5 Příspěvek od Celeron »

To je strašně veliký. S Nokií a Arduino mini to bude poloviční. A mohlo by to doplňkově měřit přes analogový vstupy i napětí a proud baterie zapalování. A bastlím rád. :wink:
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#6 Příspěvek od samec »

https://www.hupnakolo.cz/sigma-baseline-500?vid=16919
a bastliť môžeš preddeličku, ak nebude stačiť konfiguračný parameter v nastaveniach. ;)

petrfilipi
Příspěvky: 2551
Registrován: 13 zář 2005, 02:00

#7 Příspěvek od petrfilipi »

Otáčkoměr od p. Zajíce má na webech dobré hodnocení. Jestli má cenu se s něčím vyvíjet.

PF

Uživatelský avatar
jezevec
Hlavní moderátor
Hlavní moderátor
Příspěvky: 5414
Registrován: 13 čer 2004, 02:00
Bydliště: Břeclavsko
Kontaktovat uživatele:

#8 Příspěvek od jezevec »

Předevčírem mi přišel z čajny UT373.

Uživatelský avatar
bum
Příspěvky: 227
Registrován: 04 zář 2011, 02:00
Kontaktovat uživatele:

#9 Příspěvek od bum »

Pro inspiraci mám zapojení s PICAXE 08M2 na webu v článku měření frekvence a otáček, a v článku měření otáček spalovacího motoru. Vzorec pro čtyřtakt v článku měření frekvence a otáček se upraví 15 * načtená hodnota výsledek * 2 výsledek jsou pak otáčky /minutu u čtyřválce (čtyřtakt). U picaxe příkaz pulsin načítá délku trvání pulsu nevím jak to je u Arduina, odzkoušení tvého programu co píšeš výše je jednoduché připoj na vstup Arduina zdroj signálu 50Hz který ti nahradí pulsy ze snímače v autě a měly by se ti zobrazit otáčky pro 4-valcový 4-taktní motor 1500 ot/min.
Naposledy upravil(a) bum dne 01 kvě 2022, 21:57, celkem upraveno 2 x.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#10 Příspěvek od Celeron »

petrfilipi píše:Otáčkoměr od p. Zajíce má na webech dobré hodnocení. Jestli má cenu se s něčím vyvíjet.
PF
Tak ještě jednou co jsem už psal: Ty ledky by na slunci nebyly vidět. Musí být LCD.

To se tady fakt nenajde žádnej Arduiňák, co by se vyjádřil k tomu, zda je ten prográmek na měření otáček v prvním příspěvku správnej?
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Ruprecht
Příspěvky: 1114
Registrován: 28 zář 2005, 02:00
Bydliště: ZČ + JM

#11 Příspěvek od Ruprecht »

edit kvůlivá mému nepochopení :wink:
Tak pokud je to myšleno tak, že zruba jednou za vteřinu se změří jedna celá perioda a vypočtou a zobrazí se otáčky, tak by to mohlo nějak fungovat.
Jen s tím dělením 1/x mám soukromý vnitřní problém, budou vycházet fakt malá desetinná čísla a teprve pak se budou násobit velkým číslem, to "nem-dopadne dobre". Třeba to má Arduino ošetřené, já bych to stejně napsal (asociativnost násobení) jako 60.000/per_s (výsledek v tisících ot/min) nebo raději 60mio/per_s v ot/min, i když to bude float
Naposledy upravil(a) Ruprecht dne 02 kvě 2022, 00:14, celkem upraveno 1 x.
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

Uživatelský avatar
bum
Příspěvky: 227
Registrován: 04 zář 2011, 02:00
Kontaktovat uživatele:

#12 Příspěvek od bum »

K tomu programu pro Arduino jak píší výše nahraj program do Arduina připoj vstup Arduina na zdroj signálu 50Hz a pro 4-valcový 4-taktni motor se na displeji musí zobrazit 1500 ot/min. Pokud budeš mít zdroj signálu 25Hz musí se ti zobrazit 750 ot/min. U picaxe příkaz pulsein má stejný význam jak je psáno výše pro načítání délky pulsu, pro načítání počtu pulsů je u picaxe příkaz count. Podobný příkaz na načítání počtu pulsů za časovou jednotku bude mít určitě i Arduino.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#13 Příspěvek od Celeron »

Ruprecht, napsal jsem omylem počet impulzu ale PulseIn (High) opravdu měří délku impulsu a PulseIn (Low) mezeru mezi dvěma impulsy.Myšleno správně ale popsáno blbě. :oops: Takže součet je celá perioda. Tu převedu na kmitočet a vynásobením jsou z toho tisíce otáček pro dvoutaktní jednoválec, tedy co otáčka, to při zapalování jeden impulz do High s téměř okamžitým sestupem do Low.
Asi by bylo lepší a přesnější přičítat každej impuls přerušením a jednou za sekundu je vyčíst, vynásobit a zobrazit ale k přerušení u Arduina jsem se zatím nedopracoval. Možná jsem měl spíš zvolit Sylabse, přerušení u A51 je mi dostatečně známý. Ale tam je zase trochu problém s analogovým měřením.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
bum
Příspěvky: 227
Registrován: 04 zář 2011, 02:00
Kontaktovat uživatele:

#14 Příspěvek od bum »

Ještě doplním výpočet otáček z frekvence pulsů snímače, výpočet je : frekvence ze snímače * konstanta = výsledek jsou ot/min. Konstanty pro různý počet válců pro 4-taktni motor jsou 2 válce = 60, 3 válce = 40, 4 válce = 30, 6 válců = 20, 8 válců = 15. Pro 2- taktní motor jsou konstanty 1 válec = 60, 2 válce = 30, 3 válce = 20, 4 válce = 15. Pro odzkoušení otáčkoměru je výpočet cejchovací frekvence (f), f = N * V / 120 4 - taktní motor, 2 - taktní motor f = N * V/60 kde N jsou otáčky V je počet válců a 120, 60 jsou konstanty.

Uživatelský avatar
EKKAR
Příspěvky: 29689
Registrován: 16 bře 2005, 01:00
Bydliště: Česká Třebová, JN89FW21

#15 Příspěvek od EKKAR »

Ruprecht píše:edit kvůlivá mému nepochopení :wink:
Tak pokud je to myšleno tak, že zruba jednou za vteřinu se změří jedna celá perioda a vypočtou a zobrazí se otáčky, tak by to mohlo nějak fungovat.
Jen s tím dělením 1/x mám soukromý vnitřní problém, budou vycházet fakt malá desetinná čísla a teprve pak se budou násobit velkým číslem, to "nem-dopadne dobre". Třeba to má Arduino ošetřené, já bych to stejně napsal (asociativnost násobení) jako 60.000/per_s (výsledek v tisících ot/min) nebo raději 60mio/per_s v ot/min, i když to bude float
Uvědom si, že procesor neměří "1/x" jako počet sekund na jednu periodu vstupního signálu, ale tu výchozí časovou jednotku má mnohotisíckrát kratší. Periodu vstupního signálu měří jako počet period svejch interních hodin, takže se rozhodně nedostává do oblasti malejch desetinnejch čísel ani s dělením, ani s násobením ...
Nasliněný prst na svorkovnici domovního rozvaděče: Jó, paninko, máte tam ty Voltíky všecky...

A kutilmile - nelituju tě :mrgreen: :mrgreen: !!!

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“