Pohodlné dělení 2°/1000 mě taky trochu překvapilo

Myslím, že to vímThomeeque píše:Netvrdim, že to nevíš, ale jen pro pořádek - je potřeba rozlišovat, kdy se bavíme o chybě 0.01° absolutní polohy (která asi bude trápit málokoho) a kdy o chybě 0.01° (resp. způsobené zaokrouhlením na 0.01°) na jeden segment dělení, která se na absolutní poloze kumuluje a při větším počtu segmentů už může být problém (např. 251 segmentů destkrát dokola - úhel na segment = 1.434262948.., chyba po zaokrouhlení na setinu 0.004262948.., krát 251 * 10 = 10.7° ~ 7.5 segmentů).
Pohodlné dělení 2°/1000 mě taky trochu překvapilo
Nějak mi s prominutím uniká CO jako řešíte.lubbez píše:N_krát znásobená chyba zaokrouhlením je jasná, tudy cesta nevede. Jde to ale i jinak. Kdysi dávno jsem dělal něco podobného, šlo o kotouč v hracím automatu, který měl něco zobrazovat. Protože počet kroků na otáčku nebyl dělitelný beze zbytku počtem okének a motor nebyl schopen mikrokrokování, vymysleli jsme to nakonec jinak. Jednoduše jsme ten zbytek, který se neprotočil sčítali a když to dalo viditelný pohyb, tak jsme pohnuli. A fungovalo to celé měsíce. Tady bych si to představoval stejně. Když bude posun třeba 5,0127 stupně tak poprvé, podruhé, potřetí a počtvrté otočím o 5,01 st. a po páté o 5,02 stupně a v pomocném registru mi zbude ještě 10, což je 0,0001 stupně a pohoda. V průběhu libovolně dlouhého otáčení mi relativní , ale i absolutní odchylka nepřesáhně 0,01 stupně. Myslím si, že podstatně větší problém budou vůle na šnekovém převodu a hlavně, kdyby se to mělo točit na obě strany. Tam by to chtělo kompenzaci, nebo zpětnou vazbu, na druhou stranu, nebudeme na Arduinu stavět mercedes.
To není pravda. Pokud jova v dalším výpočtu použije reálnou pozici (tj. tu zaokrouhlenou), tak žádnou vlečnou chybu do výpočtu nezavede.lubbez píše:Tady s tebou nesouhlasím, tohle přesně zanese tu vlečnou chybu. Pokud něco zaokrouhlíš, musíš to posléze i kompenzovat.
Hm, a jak to funguje, když při přejezdu mezi segmentem 221 a 222 v půlce vypadne elektrika nebo se prostě cokoli xxxxxx?jova píše:To: Thomeeque
A jak vlastně to dělení na x segmentů z jedné otáčky počítáš?
Já to dělám na své děličce tak, že celkový počet impulsů vydělím požadovaným počtem segmentů a to číslo zaokrouhlené na celé pulsy od toho celkového čísla odečtu. Odkrokuji první segment. Číslo co mi zbylo po tom odečtu, vydělím zbývajícím počtem segmentů. Číslo zase zaokrouhlím na celé pulsy, odkrokuji další segment a zase odečtu od toho zbytku… Díky tomu mám každou celou otočku rozpočítanou stejně, vždy skončím na 0 a jednotlivé segmenty se liší ve velikosti maximálně o +/- 1 puls.
Tady jsme si nerozuměli, já reagoval na příspěvek Milana584. Postup Jovy je naprosto OK.Mex píše:To není pravda. Pokud jova v dalším výpočtu použije reálnou pozici (tj. tu zaokrouhlenou), tak žádnou vlečnou chybu do výpočtu nezavede.lubbez píše:Tady s tebou nesouhlasím, tohle přesně zanese tu vlečnou chybu. Pokud něco zaokrouhlíš, musíš to posléze i kompenzovat.
Zajímalo by mě, JAK znovu najedeš s potřebnou přesností na ten první zub (respektive mezeru).jova píše:Osobně to používám na výrobu ozubených kol. Když mi jak píšeš, někde mezi segmentem 221 a 222 v půlce vypadne elektrika, tak si najedu na začátek na první zub, zadám si znova počet zubů a nechám těch prvních 221 zubů odkrokovat bez frézování. Pak pokračuji frézováním od stejného místa dál.
Pokud bych chtěl být pečlivka a pracovat s přesností na puls, stačí mi označit si na motoru 0lovou pozici a každé frézování pak začínat na ní. Pak by vrácení na počáteční pozici a srovnání motoru na tu 0 bylo absolutně přesné na krok.
Mimochodem s možným výpadkem v obdobném případě jsem se potýkal při programování hodin. Tam mám co jedna minuta, to 400 pulsů do motoru. Řeším to tam takto: jeden vstup hlídá síťové napětí a procesor je napájen z velkého kondenzátoru. Pokud mi při otáčení motoru vypadne to síťové napětí, procesor si v ten okamžik do paměti uloží aktuální počet odeslaných kroků a po obnovení napětí o ten počet kroků zase odkrokuje zpět.
To je problém levných řešení ,byl by potřeba nkodér .milan584 píše: Zajímalo by mě,