16F88 a budeni krokového motora z FDD nebo HDD

Ahojte, prosim vas, neviem kde robim chybu pri budeni krokoveho motora. Jedna sa o motor z disketovej mechaniky alebo aj z HDD.
Zapojenie je podla schemy a program funguje takto:
(samozrejme to je len uryvok - jadro :smiley:)
Ta 170 bola od 10 - 255, a stale ten motor len zo sebou tak myka ako keby mal zachvat :smiley: Alebo pri nizkch cislach len piska.

[code]#DEFINE A1 PORTB,0
#DEFINE A2 PORTB,1
#DEFINE A3 PORTB,2

PROGRAM

CALL P1
CALL CAKAJ

CALL P2
CALL CAKAJ

CALL P3
CALL CAKAJ

GOTO PROGRAM

P1
BSF A1
BCF A2
BCF A3
RETURN

P2
BCF A1
BSF A2
BCF A3
RETURN

P3
BCF A1
BCF A2
BSF A3
RETURN

CAKAJ
MOVLW .1
MOVWF C3
MOVLW .170
MOVWF C2
MOVWF C1
DECFSZ C1
GOTO $-1
DECFSZ C2
GOTO $-4
DECFSZ C3
GOTO $-7
RETURN[/code]

:arrow_right: administrator: přejmenováno z “16F88 a krokovy motor”
schema.png

Tady si o tom něco přečti, jsou tam i animace.
robotika.cz/articles/steppers/en

Jaký je to zpoždění? Tyhle motory maj poměrně velkou setrvačnost, musíš jim dát čas a pootočení, nebo zařídit plynulej rozjezd. Taky řízení s polovičním krokem u nich dost pomáhá. Rozjedeš ho však i “klasicky” jen přepínáním fází jak to máš.

Časem taky zjistíš, že každý otáčky potřebujou jiný napětí, protože jinak motor vrčí, nebo zas nemá sílu a podobný vychytávky (způsobeno indukčností motoru). Idelální by byl na to dělanej budič s proudovým omezením. Bez něj jsem to řešil tak, že jsem měl omezenou maximální dobu sepnutí.
Kde máš ochranný diody? Při vypnutí cívky se na ní vyskytne špička opačný polarity než byla při zapnutí. To ve tvém případě znaméná, že po žádaném vypnutí ještě bude tranzistor nějakou dobu otevřen v závislosti na indukčnosti motoru. Na diskovej motor stačilo uln-ko, který má ty diody v sobě a proud taky dostatečnej.

Noo, tu stranku poznam ale tam su len 4 cievkove, ja mam troj. Oneskorenie medzi kanalmi som menil od 1ms do 60ms, ale stale nebol dosiahnuty pozdaovany efekt. Diodu mam zapojit voci zemi, alebo medzi emitor a cievku ? ja by som s nim cel aj taku srandu, aby sa hybal po krokoch, neviem ci mam dobre zapojenu sekvenciu.

Na sekvenci nic nezkazíš. Co se týká typu motoru z pohledu řízení, je to unipolární 3f. řízení máš vpořádku. Jen dej pro začátek zpoždění třeba i 0.5s. Měl by se ti pomalu cukat dokola.
Představ si jaký točky motor musí mít, abys mohl měnit fáze po 1ms!. Tenhle motor má třeba i jen 6 kroků na otáčku, to dá 10.000 ot/min!
Motor musí jednotlivý kroky stíhat. Stačí aby jeden nestihl a zastaví se. Proto je třeba do vyšších otáček pozvolný rozjezd.

Dioda má být na cívkách motoru tak, aby byla při zapnutý cívce v závěrným směru.
Jak je velkej ten odpor dole? Neměl by ti to omezovat řekněme pod 0.5A.

Ok, schema upravena podla obrazka, odpor je 10ohm. pri 0,5 sekunde sebou len cuka raz do jednej, raz do druhej strany. Diody zapajam aj pred, aj za odpor, ale ani jedna varianta nepomaha.
schema.png

mas tento motor ? blog.makezine.com/sunflop1.jpg lebo je roydiel medy ikrokovzm motorom a motorom y HDD aj ten je teoreticky krokovy ale ma len tri kroky po 120st :smiley:

:arrow_right: administrator: přiloženy externí soubory
sunflop.jpg

Nie, nemam ten s tou zavitnicou, aj ked som ho uz v rukach volakedy mal, ale vtedy sa mi nechcel tocit na jednosmerne napatie, tak som ho vysmaril :smiley: :smiley: :smiley: Mam ten, co sa pouziva na tocenie platni v HDD.

Zkus zmenšit odpor (vůbec jsem ho nepoužíval, ale měl jsem na to regulovatelnej zdroj) a klidně ještě prodloužit dobu. Já sice ten motor řídil s polovičním krokem(L1, L1+2, L2, L2+3, L3, L3+1), ale to by nemělo vadit. Chodit by to mělo. Předpokládám, že program máš vyzkoušenej (třeba ledkama). Kdyžtak ještě přeměř cívky, všechny by měly mít přibližně stejnej odpor (můj má necelý 4 Ohmy na cívku).

Pro menší ztráty na tranzistorech by bylo vhodnější mít společný vývod cívek na +V a cívky spínat proti zemi (pak by musely být obráceně diody), pro začátek to ale můžeš nechat.

ani ked ho rukou nakopnes nezostane bezat ?
A mas vsetko na tom PICku zapojene ako treba kondik 100n MCLR atd …

S pickom nie je ziaden problem MCLR na 88 nezapajam nikde a vsetky aplikacie vzdy bezali tak ako mali, ano diody mam vyskusane blikaju jedna za druhou, ale zaujimave s tymi cievkami ze 2 maju odpor 7Ohm a posledna len 3,7. Tych 10Ohm tam mam preto, lebo to napajam cez PK2 a ten ked zdetekuje velky odber je to ako skrat, teda sa vypne.
Ked ho rukou roztocim, tak nabehne.

MCLR (předpokládám, že je to reset) si zapoj, tenhle tejden tu někdo psal něco podobnýho ještě s diodama bez odporů a podobně. Bylo tím MCLR.
Když chceš živit motor, tak musíš mít čím. Bez pořádnýho zdroje na to rovnou zapomeň.

Edit: tak s tím mclr jsi to byl dokonce ty! To už jsi se snad mohl poučit ne?

MCRL jde pojistkou vypnout, _MCLR_OFF , jestly ho mas zaplej a bez odporu tak nechpu jak ti mohlo neco fungovat :open_mouth:
a mcu by to chtelo mozna napajet pres diodu a kondik s vetsi kapacitou aby nekolisalo napeti pro mcu

To skoro vypadá, jako bys měřil vývod jedné cívky proti ostatním vývodům. Jelikož jeden z nich by byl společný vodič, naměřil bys tam poloviční odpor proti zbylým dvěma. Podívej se pro jistotu, jesli ten motor nemá společný vodič jinde, než si myslíš :wink:.
Kdyby ne, tak by to mohl být mezizávitový zkrat, to by sis s tím motorem moc neužil.

MCLR mam v programe vypnute samozrejme. Skusal som este zmenit zem a cuduj sa svete, zrazu maju vsetky cievky 3,9 :smiley:
Takze poprehadzovane piny, uz sa aj pekne otaca ako sa ma, teraz nasleduje zvysovanie jeho otacok. Ked mu znizujem cas cakania, tak uz len piska. Cim mensi cas, tym vyssia frekvencia piskania, aj ked ho roztocim rukou, neostane bezat. Idem na to spravne s tym skracovanim casov ?

Správně na to jdeš, jen s tím odporem už při vyšších frekvencích nedokážou cívky vytvořit dostatečně silné mag. pole aby udržely motor v chodu. Budeš potřebovat tvrdší zdroj.
Když připojíš cívku na napětí, začne jí postupně růst proud až do okamžiku, kdy je omezen zdrojem nebo ve tvém případě odporem. Jak zkracuješ přepínací interval, maximum toho proudu klesá (nemá dost času aby vzrostl) a s tím i točivý moment motoru. Postupně se tak dostaneš do bodu, kdy už nemá motor ani sílu na překonání tření v ložiscích a odporu vzduchu a nepracuje.
Řešením je zvýšení napětí a ve tvém případě i snížení toho odporu.
Dej taky pozor na maximální otáčky, aby se ti motor neroztrhl!

Kdyby někdo věděl… Co se děje v cívkách, když se do nich pouští obdélník? Zdeformuje se průběh (jenom), nebo vznikají i nějaké harmonické nebo tak něco? Neztratím s obdélníkem část točivého momentu? Co pouští za průběhy “střídavé” modelářské regulátory? Nějak nemůžu vygooglovat nic pořádnýho, většinou samá komerce.

Takže si odpovím sám, třeba to bude někoho zajímat: Modelářské regulátory (alespoň ty pro menší výkony) pouští povětšinou obdélník. Průběh se malinko zdeformuje, ale tomu motoru je to fakt jedno. Žádné harmonické by vznikat neměly (napájení, i z baterií, je ale třeba blokovat kondenzátory /klidně i low ESR/, jinak je z toho generátor rušení). Stejně tak ztráty momentu se nekonají, motor “zajímá” jen střední hodnota průběhu a aktuální otáčky. To jen, kdyby si chtěl někdo dělat jednoduchý regulátor, třeba pro motor z HDD nebo CD (jako já, a třeba právě s 16F88)… Jestli někdo stavíte “syntézový” regulátor, napište sem, zajímá mě to. Díky, a bastlení zdar :slight_smile:

…nevadí,že ty anody diod nejsou úplně na “zemi”?To napětí,i když obrácený,by se mohlo projevovat jako úbytek na tom odporu,ale ber to s rezervou…:slight_smile:

Ty diody jsou správně. Naopak - kdyby byly až na zem, tak by přes odpor tekl vybíjecí proud cívek a vytvářelo by se na něm napětí (kladné proti zemi). Takto se proud po vypnutí tranzistorů uzavře přes diody a do jiných částí obvodu žádný bordel neteče.
Kondenzátor je napěťový setrvačník, cívka proudový.