Programování krokového motoru

Odpovědět
Ondra
Příspěvky: 2
Registrován: 10 kvě 2020, 11:26

Programování krokového motoru

Příspěvek od Ondra » 11 kvě 2020, 20:35

Dobrý den,
v programování jsem nováčkem, a proto mám takový začátečnický problém s naprogramováním krokového motorku. Chtěl bych, aby mi prostě a jednoduše provedl jednu otočku kolem své osy. Proto se chci zeptat kohokoliv z vás, jaké příkazy by se k tomuto účelu daly použít, jak pomocí těchto příkazů nastavit pulzy pro ten motorek, případně jak později tomu motorku nastavit mikrokrokování. Jinak tento motorek programuji na mikrokontroleru picaxe 20m2,který je napojen na driver s čipem tb6560ahq a na něj je připojen samotný krokový motor. Dále je mikrokontroler s driverem propojen takto: picaxe 20m2 piny c.2 a c.4 jsou kabelem připojeny na driveru na konektory označené IO2 a IO4.
Za případné odpovědi děkuji.

Uživatelský avatar
jrt
Příspěvky: 1631
Registrován: 17 úno 2013, 17:13

Re: Programování krokového motoru

Příspěvek od jrt » 11 kvě 2020, 22:03

Vydrž do zítřka, něco k tomu napíšu.
Ta deska s TB6560 je tvůj výrobek, nebo něco komerčního? Jestli je to tvůj výrobek, pošli schéma, jestli komerční, pošli pěknou fotku nebo odkaz na web, odkud pochází.
jrt
jederobot.cz, hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

jova
Příspěvky: 338
Registrován: 16 pro 2013, 11:40

Re: Programování krokového motoru

Příspěvek od jova » 11 kvě 2020, 22:19

Zkus si pročíst tohle vlákno na jiném fóru, něco jsem se tam snažil na tohle téma vysvětlit:
https://forum.strojirenstvi.cz/viewtopic.php?t=17709
Ale takovou úroveň jako od jrt nečekej :D

Uživatelský avatar
jrt
Příspěvky: 1631
Registrován: 17 úno 2013, 17:13

Re: Programování krokového motoru

Příspěvek od jrt » 12 kvě 2020, 10:26

jova píše:
11 kvě 2020, 22:19
Ale takovou úroveň jako od jrt nečekej :D
Že se nestydíš, dělat si legraci z nemohoucího starce! :D

Trocha čteni o krokových motorech, ke komentovanému programu se dostanu až navečer. Ještě štěstí, že jsem zatím nerozpojil to vrabčí hnízdo u lineárního vedení, ve kterém je PICAXE 20M2 a step/dir driver SMCB10!
jrt
jederobot.cz, hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

kolbaba71
Příspěvky: 285
Registrován: 12 říj 2013, 17:35
Bydliště: Praha
Kontaktovat uživatele:

Re: Programování krokového motoru

Příspěvek od kolbaba71 » 12 kvě 2020, 18:06

OT/
Ještě štěstí, že jsem zatím nerozpojil to vrabčí hnízdo u lineárního vedení, ve kterém je PICAXE 20M2 a step/dir driver SMCB10!
V čem si kreslil výkres té ozubené tyče s pohonem a zelenými popisky - jak je vedení sestaveno?

OT/

Uživatelský avatar
jrt
Příspěvky: 1631
Registrován: 17 úno 2013, 17:13

Re: Programování krokového motoru

Příspěvek od jrt » 12 kvě 2020, 20:14

Solid Edge 2D drafting -> zadarmo u Siemensů
jrt
jederobot.cz, hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

Uživatelský avatar
jrt
Příspěvky: 1631
Registrován: 17 úno 2013, 17:13

Re: Programování krokového motoru

Příspěvek od jrt » 12 kvě 2020, 20:45

Základní kód, motor vykoná 200 kroků. Rychlost otáčení je určena velikostí proměnné spd (čím menší, tím rychleji), směr otáčení se nastavuje logickou úrovní pinu DIR.

Kód: Vybrat vše

#picaxe20m2
#no_data

symbol stp = C.2	; signál STEP
symbol dir = C.4	; signál DIR
symbol i = w0		; pomocná proměnná pro počítadlo kroků
symbol spd = w1	; pauza, která určuje rychlost otáčení motoru
symbol slp = w2	; pauza, která určuje dobu zastavení motoru mezi jednotlivými otočkami

spd = 10					
slp = 2000
high dir			; logická úroveň určuje, kterým směrem se motor bude otáčet

do
	for i = 1 to 200	; proveď 200x
	  high stp		; nastav na výstupu stp log.1
	  pause 1		; čekej 1 ms
		low stp	; nastav na výstupu stp log.0
		pause spd
	next i
	pause slp
loop
Totéž jako v předchozím případě, ale přímé ovládání logické úrovně pinu STEP je nahrazeno generováním krátkého pulsu příkazem pulsout.

Kód: Vybrat vše

#picaxe20m2
#no_data

symbol stp = c.2	; signál STEP
symbol dir = c.4	; signál DIR
symbol i = w0		; pomocná proměnná pro počítadlo kroků
symbol spd = w1	; pauza, která určuje rychlost otáčení motoru
symbol slp = w2	; pauza, která určuje dobu zastavení motoru mezi jednotlivými otočkami

spd = 10
slp = 2000
high dir

do
	for i = 1 to 200
		pulsout stp,spd 
	next i
 	pause slp	
loop
Totéž jako v předchozím případě, ale motor se otáčí strídavě vlevo a vpravo. Viz toggle dir.

Kód: Vybrat vše

#picaxe20m2
#no_data

symbol stp = c.2	; signál STEP
symbol dir = c.4	; signál DIR
symbol i = w0		; pomocná proměnná pro počítadlo kroků
symbol spd = w1	; pauza, která určuje rychlost otáčení motoru
symbol slp = w2	; pauza, která určuje dobu zastavení motoru mezi jednotlivými otočkami

spd = 10
slp = 2000
high dir			; nastavení směru otáčení motoru

do
 for i = 1 to 200
  pulsout stp,spd	; puls délky spd (tj. 10 ms) určuje rychlost otáčení motoru 
 next i
 pause slp			; pauza slp určuje dobu nečinnosti motoru
 toggle dir		; změna směru otáčení motoru
loop
Pokračovat s pokročilejšími kódy můžeme, až se ti povede úspěšně vyzkoušet tyhle.

A pokud by někoho jiného zajímalo řízení krokových motorů na trošku vyšší úrovni, odkazuji ho na články o GRBL a na Krokohrátky na robodoupěti.
jrt
jederobot.cz, hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

Ondra
Příspěvky: 2
Registrován: 10 kvě 2020, 11:26

Re: Programování krokového motoru

Příspěvek od Ondra » 12 kvě 2020, 22:02

Mockrát všem děkuji za odpovědi i programovací kódy. Určitě odzkouším. A kdyby to někoho zajímalo, případně by se to hodilo později, přikládám ještě doplňující informace k mému předešlému příspěvku. Krokový motorek i jeho řídící deska jsou součást elektroniky od stavebnice robotické ruky od společnosti Merkur.

kolbaba71
Příspěvky: 285
Registrován: 12 říj 2013, 17:35
Bydliště: Praha
Kontaktovat uživatele:

Re: Programování krokového motoru

Příspěvek od kolbaba71 » 13 kvě 2020, 03:34

jrt píše:
12 kvě 2020, 20:14
Solid Edge 2D drafting -> zadarmo u Siemensů
Mě přišel ten program hodně povědomý (má typický font písma) a nespletl jsem se. Ve 3d verzí jsem dělal skoro 20 let.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host