Muze mit KM jiny pocet kroku vlevo a jiny pocet kroku vpravo

Odpovědět
hns
Příspěvky: 21
Registrován: 9. 10. 2007, 5:29
Bydliště: Ostrafsko
Kontaktovat uživatele:

19. 8. 2009, 12:42

Zdravim po delsi dobe,
resim jeden zapeklity problem. Nedari se mi zjistit presnost meho HPGL bastlu (viz nekde tady na foru odkaz).
Jako drivery pouzivam klasicke unipolarni budice s tranzistorem ve fazi. Ten spinam na 0 povelem z MCU. Na spolecny je privedeno Ucc motora.
Jde mi o to, ze pri jednom smeru otaceni je 400pulkroku=otacka
Pri otaceni na druhou stranu je uz 400pulkroku = otacka a kousek.

Program je napsan jednoduse debilne pro testy. Protoze uz jsem si nevedel rady co s tim je a pak me napadlo napsat tohle:

Kód: Vybrat vše

for(a=0;a<400;a++) {krokdoprava();}
for(a=0;a<400;a++) {krokdoleva();}
krok**** je jenom vyber hodnoty z tabulky posilane na port a cekaci smycka pro dostani napeti do civky

edit:
takze podle poslednich vyzkumu potrebuju 7 otacek na to, abych se dostal zase do vychoziho bodu
Jukos3
Příspěvky: 203
Registrován: 24. 10. 2008, 5:20
Bydliště: Svit
Kontaktovat uživatele:

19. 8. 2009, 1:41

co presne mas o funkcii krokdopra()/krokdolava() ?
Kazdy raz nejako musel zacat ...
http://robotika.yweb.sk
http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Kráčajúci_mobilný_robot
pipa
Příspěvky: 257
Registrován: 6. 2. 2008, 7:21
Bydliště: Praha
Kontaktovat uživatele:

19. 8. 2009, 5:07

Dáváš ten "revers" hned po doběhu na druhou strnu ? Může v tom totiž hrát roli setrvačnost rotoru KM, nebo případná vůle, jestli to máš přidělaný na pohybovej šroub.
www.tc-pipa.wz.cz
Uživatelský avatar
CZ_Pascal
Příspěvky: 884
Registrován: 14. 1. 2008, 8:24
Bydliště: Brno

19. 8. 2009, 5:46

Jak jsi spravne uvedl jedna se o zapeklity problem. Videl bych to na skrytou chybu v programu. Je az s podivem jak casto se tato chyba dokaze v nespocetnych modifikacich objevit. Clovek naprogramuje urcitou vec jednim smerem a predpoklada ze invertovanim urcite casti se musi dit inverzni pochod a tocit zcela stejnym zpusobem na druhou stranu. Opak je pravdou. Vetsinou clovek pul dne az tydne hleda proc kdyz to jde jednim smerem nejak to nejte tim druhym smerem zrovna tak. Preji uspesny "lov". Pak se s nami podel cim to bylo.
hns
Příspěvky: 21
Registrován: 9. 10. 2007, 5:29
Bydliště: Ostrafsko
Kontaktovat uživatele:

19. 8. 2009, 6:17

Tak jsem zapeklity problem nasel - klasika, vadnej mezikus klavesnice<>zidle
ve funkci krok vlevo jsem porovnaval pole od prvku 1, jenze v C narozdil od pascalu se pole definuje od 0.
Takze v podmince porovnavam jestli jsem v poli hodnot jeste za prvkem s poradovym cislem 1, misto abych porovnaval s prvkem v poradi 0.
Coz znamena ze mi to udela 7 kroku ne 8 jak by melo. A to jeste tak ze 7. krok je v podstate dvojity krok, takze v realu udelam podle mcu 8 kroku, ovsem posun je o 9 kroku.
Krok pro mcu = pulkrok KM

PS:
chtel jsem vlozit celou funkci, ale jakmile to zmerci nakej kod i kdyz je v code tak to rozhodi cely text, mozna si toho nekteri vsimli. Proto prikladam jako TXT
Přílohy
krokvlevo.txt
(276 bajtů) Staženo 353 x
Odpovědět

Zpět na „Krokové motory“