Zákmity na rotačním encoderu

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
nixdorf
Příspěvky: 540
Registrován: 06 kvě 2017, 02:00

#16 Příspěvek od nixdorf »

@Mahoney: i tam už som padnul na hubu :D

Jasné, ten kód hore je barlička, zahadzuje sa tam IRQ pinom, ktorých je v AVR jak šafranu, ide to celé spraviť v loope na nepodstatnom pine. Ale to má na odskúšanie, či mu to pomôže. Ono, až začne loop() rásť v dĺžke a začne byť pomalý, potom sa jedno z takýchto "riešení" prebudí a pokúše ho do chrbta.
Čiže tiež zapracovať na mechanickej a elektrickej časti inkrementu, ako bolo hore uvedené.

Uživatelský avatar
Cowley
Příspěvky: 3087
Registrován: 04 úno 2005, 01:00

#17 Příspěvek od Cowley »

A není ta vysílací dioda modulovaná?
Pak by bez tvarovače výstupního signálu i ten fotopřijímač (tranzistor nebo dioda) byl taky modulovaný

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

#18 Příspěvek od Ruprecht »

Dioda není modulovaná (pokud není modulované napájení) :wink:
Najdi odpor, kterým je napájený fototranzistor na přijímací straně, přilož k němu paralelně 100n vývodový THT kondenzátor a toč kolečkem, kolik ti to vypíše pulsů.
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

Uživatelský avatar
bdn
Příspěvky: 436
Registrován: 16 led 2020, 01:00

#19 Příspěvek od bdn »

Ono podle zadání 2000 RPM a 16 pulzů na otáčku vychází:
- čas mezi pulzy T1=1.875ms
- při FCPU 16MHz, je to 30000 taktů CPU

Za 30000 taktů CPU lze stihnout docela dost operací. Pro začátek, jak se psalo výše by to šlo otestovat i bez interruptu.

Odstranění zákmitů softférově:
- Udělat digitalRead(),
- udělat impuls od nástupné hrany,
- spustit non-blocking softférový časovač na 1ms,
- po dobu chodu ignorovat vstup.

Další: Protože má kotouč 16 dílků, tak proměnná tik se nemusí nulovat. Stačí nechat volně běžet. Hodnotu 0..15 lze získat bitovým AND jako: tik_loop = 0x0F & tik.
Zkus se podívat na arduino fórum, jak se dělá non-blocking softférový časovač.
https://forum.arduino.cc/t/flashing-mul ... /1065564/2
https://forum.arduino.cc/t/example-code ... lay/974017

Uživatelský avatar
HF_Tech
Příspěvky: 331
Registrován: 25 dub 2022, 02:00

#20 Příspěvek od HF_Tech »

Když tak na to koukám. Nestačilo by závoru otočit vzhůru nohama, aby LED svítila směrem nahoru a do fototranzistoru nesvítilo světlo z okolí?
Kdyby to nepohlo, tak bych ještě přidal na nožičky napájení závory kondík 47u. Pokud jde napájení motoru ze stejného zdroje, tak to může bt rušením z napájení.

Uživatelský avatar
bdn
Příspěvky: 436
Registrován: 16 led 2020, 01:00

#21 Příspěvek od bdn »

Někdy pomůže změnit napájení modulu na lineární zdroj. Možná se někde dostává rušení, které se následně LM393 zesílí. S osciloskopem se takové věci dobře vychytají...

Odpovědět

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