Stránka 1 z 1

snímač otáček motoru přes programátor AT89S8252

Napsal: 12 dub 2007, 19:57
od borek97
Prosil bych moc o radu.musim udelat projekt snímač otáček motoru přes programátor AT89S8252 a vubec nevim jak napsat program.hardware mam jiz postaven.mam tam otaceci kolecko ve kterem je dira a na jedne strane ledku a na druhe fototranzistor.ledka dava impulzy fototranzistoru.dvim jak napsat program.prosiiim moc o radu.v pripade i financne odmenim.predem dekuji.

Napsal: 13 dub 2007, 15:30
od ZdenekHQ
A jak budeš zobrazovat ty naměřený otáčky ?

Napsal: 15 dub 2007, 19:31
od borek97
ZdenekHQ píše:A jak budeš zobrazovat ty naměřený otáčky ?
zobrazovat je budu na displeji.

Napsal: 15 dub 2007, 21:17
od Hill
Hezká odpověď, ještě nemáš změřené ty otáčky a už je chceš zobrazovat. Předpokládám, že světelnou závoru máš chráněnou před vlivem světla z okolí, abys nemusel ještě řešit jeho kompenzaci...
Otáčky můžeš měřit například takto:
1. měřením času mezi dvěma impulsy z optočlenu, tedy dobu jedné otáčky. Pokud nemusíš měřit každou otáčku, bude mít procesor dost času načítaný čas přepočítat do podoby stravitelné displejem a, až bude mít hotovo, zase si osahat port, počkat na první impuls, začít měřit čas až do dalšího impulsu.
Nevýhody: rozlišení je dané frekvencí, jakou poběží časovací smyčka - do kolika stihne napočítat při nejnižších otáčkách, abys to ještě výpočetně zvádl. Naopak při pomalejším čítání vysokých otáček může dojít k tomu, že během jedné otáčky načítáš víc, než jeden impuls, ale méně, než dva, a nebudeš vědět, o kolik méně. Navíc, pokud se budou otáčky měnit, bude údaj výrazně skákat.

2. počítáním impulsů ze snímače otáček po pevně danou dobu, na to je ale zpravidla jeden impuls na otáčku málo, jinak bude načítání trvat dlouho. Zato údaj na displeji bude zobrazovat průměrné otáčky za delší dobu a bude líp čitelný, pokud pomalejší obnovování není ovšem na závadu. Výhodou je snadnější přepočet na zobrazovaný údaj.
Nevýhody: maximum závisí na nejvyšších uvažovaných otáčkách motoru, zvoleném rozlišení (do kolika můžeš čítat) a rychlosti, jakou příslušným bitem portu zvládneš. Obvykle se musíš rozhodnout, který z parametrů bude omezujícím, případně, od jaké hodnoty přejdeš na jiný algoritmus vyhodnocení, třeba podle 1.

3. načítáním impulsů do vnějšího binárního čítače, jehož stav po pevně stanovené době přečteš do procesoru a čítač vynuluješ. Zatím, co čítá, můžeš zpracovávat údaj pro displej. A nejsi omezený rychlostí čtení portu.

Na obsluhu displejů (ať už portem nebo pomocí vnějšího řadiče) existují knihovny rutin. Pohledej.

Napsal: 16 dub 2007, 11:00
od ZdenekHQ
Navážu "softwarově" na Hilla :

1. Při sestupné hraně spustíš interní čítač T1,kterej počítů impulsy z vnitřního oscilátoru a při další ho přečteš a resetneš (pomocí přerušení, např. INT0). Výsledek přepočítáš na reálný čas a zobrazíš - na to je většinou dost času mezi dvěma pulsy, protože tohle je vhodný spíš pro nižší otáčky. Refresh displeje můžeš opět řešit přes vnitřní přerušení.

2. Impulsy posíláš do vnitřního čítače a pomocí přerušení s pevně nastavenou dobou, např. 1s, čteš jeho obsah a resetuješ.

Aby displej tolik neskákal, dá se použít např. plovoucí průměr apod.

Napiš, jakej bude rozsah otáček a co tam bude za displej.

Napsal: 19 dub 2007, 10:08
od ZdenekHQ
Hill píše:Hezká odpověď, ještě nemáš změřené ty otáčky a už je chceš zobrazovat.


Jsem zapomněl dodat - já mám rád kompletní zadání a pokud by to chtěl např. hnat po RS232 do PC, tak bych volil úplně jinej algoritmus než při přímým zobrazování. Tudíž ten dotaz :D

Napsal: 19 dub 2007, 18:18
od borek97
Cau displej tam mám 4segmentovej.programátor bude zpracovávat impulzy z fototranzistoru

Napsal: 19 dub 2007, 20:22
od ZdenekHQ
A rozsah měřených otáček ?

Napsal: 17 kvě 2007, 17:47
od Návštěvník
ZdenekHQ píše:A rozsah měřených otáček ?
To je jedno mám tam motorek z nějaké hračky, kterej jsem našel doma.