[ Robinzon Kruso @ 12.06.2009. 22:22 ] @
Postovani/e

Do sada nisam radio sa Step motorima, pa eto i da to probam... tragam ceo dan i googlam ali slabo... koristim PicBasic... PIC16F628 i Unipolar Step Motor ST28... Da li moze neki osnovni primer kako da okrenem bar jedan krug, ha, ha, ha.... Motor ima pet zica, jedna je plus 12V koja je zajednicka za sva cetiri namojtaja, i na ostale dovodim negativni polaritet sa PIC preko tranzistora BC546... Sa sekvencom koju ja koristim i sa menjanjem duzine pauze dobijam samo neke vibracije i motoru...

Samo jedan krug...

Hvala
[ rsinisa @ 12.06.2009. 22:48 ] @
Daj shemu i program, ali pretpostavljam da ti je pauza izmedju kombinacija prekratka ili nisi pogodio redosled. Princip je jednostavan, za pun korak (iliti full-step) uključuješ samo 1 tranzistor u jednom momentu, ali je bitno da pogodiš redosled.

Pozdrav.
Sinisha

Da, evo i kako bih ja napravio test program (zanemarimo inicijalizaciju) pod pretpostavkom da si izvode povezao na RB0 do RB3

tempb var byte ; čuva stanje koje ide na B port

pocetna:
tempb=1
vrti:
portb=tempb
pause 50
tempb=tempb << 1
if tempb.4=1 then pocetna
goto vrti



[Ovu poruku je menjao rsinisa dana 13.06.2009. u 00:03 GMT+1]
[ _str_ @ 12.06.2009. 23:20 ] @
Ili u bejziku:

pocetna:
tempb=1
vrti:
portb=tempb
pause 50
tempb=tempb * 2
if tempb>8 then
goto pocetna
end if
goto vrti
[ Robinzon Kruso @ 12.06.2009. 23:37 ] @
Tvojim programom dobijam isto sto sam i dobio dovodjenjem 0 na pinovo RB0-4. Redosled sam povezao kao sto je naznaceno na shemi za DS28... Kao sto rekoh i tvojim test programom mogu da osetim kratke taktove kad kroz namojtaje prodje struja... Da li je moguce da je struja koja prolazi kroz namotaje slaba da bi ga pokrenula... Pretpostavljam posto je odnos zupcanika 1:68 a i osovinu ne mogu rucno da pomerim... Saljem semu i program sutra....

Hvala na brzoj reakciji...
[ rsinisa @ 13.06.2009. 07:07 ] @
@ _str_
I moj program je pisan u PBP-u i to tako da utroši što manje memorije i da se izvršava maximalno brzo. Množenje koje si upotrebio uvećava program za oko 20 worda plus što nepotrebno usporava program. Ovde to i nije bitno, ali mislim da je dobra praksa pisati programe ekonomično. Moja verzija programa mogla je da bude još kraća (sad sam probao) - umesto "tempb=tempb << 1" staviti "tempb=tempb + tempb". Ali ovo nije tema o pisanju optimizovanih programa u PBP-u medjutim možemo da je otvorimo ukoliko bude zainteresovanih.

@ Robinzon Kruso
Tvoj motor ima reduktor u sebi 1:64, ali zahteva malu struju, tako da po meni jedini problem može da bude pogrešan redosled. Nabolje će biti da test izvedeš tako što ćeš ručno da spajaš jedan po jedan izvod na masu (zajednički je, naravno, povezan na plus) tj. da radiš ono što bi program trebalo da uradi. Tako ćeš moći da vidiš šta se tačno dešava.

Pozdrav.
Sinisha
[ barum @ 13.06.2009. 08:25 ] @




Postoje dve moguće sekvence, pogrešna samo vibrira a pravilna okreće.

Citat:
Robinzon Kruso: ...dovodjenjem 0 na pinovo RB0-4.

Misliš RB0-3 ili RB1-4, pretpostavljam RB0-3

Code:

vrti:
  PORTB=1
  pause 120
  PORTB=8
  pause 120
  PORTB=2
  pause 120
  PORTB=4
  pause 120
  goto vrti


i druga sekvenca
Code:

vrti:
  PORTB=1
  pause 120
  PORTB=2
  pause 120
  PORTB=4
  pause 120
  PORTB=8
  pause 120
  goto vrti


[ Robinzon Kruso @ 13.06.2009. 23:17 ] @
Hvala na pomoci...

Inace prvo da se izvinim na gesci, radi se o motoru ST28 a ne DS28 kao sto sam napisao u naslovu.....

Ustvari sve vreme je program dobro radio medjutim zbog velikog odnosa reduktora ja nisam primetio da se ustvari osovina okrece a zbog velike pauze koju sam koristio... A inace sam koristio prvu sekvencu koju je barum poslao jer ta sekvena je i na semi za ovaj motor... Treba mi motor za pokretanje robota koji planraim da pocnem da pravim tako da ovaj motor sa reduktorom ne odgovara za pogon moram da nabavim steper motor bez reduktora ili sa reduktorom koji ima manji odonos... Ili jos bolje da pitam vas koji je motor (inace mi treba dva za oba tocka) je najbolji za pogon jednog robota onako manje velicine... 20 X 10 cm...

Za sada mi je bitno da sam ovaj motor ST28 pokrenuo uz pomoc PIC-a i idemo dalje.... i

Hvala jos jenom...



[Ovu poruku je menjao Robinzon Kruso dana 14.06.2009. u 00:30 GMT+1]
[ Robinzon Kruso @ 14.06.2009. 00:52 ] @
A koju sekvencu da koristim za obrnuti smer... ubih se od kombinacija ali nikako nece... ustvari da li je moguce ovaj motor terati u drugom smeru... trenutno sa obe sekvence koje je poslao "barum" teram motor da se obrce suprotno od kazalje na satu.... ali u smeru kazalje mi jos nije poslo za rukom...

Nastavljam dalje....

Hvala
[ barum @ 14.06.2009. 02:03 ] @
Ako rade obe tu nešto ne valja, verovatno jedna od njih "jedva radi" i kada se potera malo brže neće moći dok će druga raditi i brže.

Ako je napred 1,8,2,4 nazad je 1,4,2,8.
Ako je napred 1,2,4,8 nazad je 1,8,4,2.
[ rsinisa @ 14.06.2009. 07:21 ] @
Slažem se apsolutno sa barumom, ne mogu obe kombinacije da okreću motor, bar ne u punoj brzini.
Inače, predlažem da motor prevežeš tako da kombinacija ipak bude 1, 2, 4, 8 za jedan smer i 8, 4, 2, 1 za drugi smer jer će program biti kraći i efikasniji, i generalno sve će biti jednostavnije. Jeste da ovde pričamo o programu u PBP-u, ali često ubacujem ASM instrukcije da bi program bio kraći i brži. Kada bi povezao kako sam predložio trebale bi ti samo dve ASM instrukcije za pomeraj motora i još par za proveru krajnjeg i varaćanje na početni položaj.

Pozdrav.
Sinisha
[ Robinzon Kruso @ 14.06.2009. 08:51 ] @
Nije me mrzelo pa sam probao sve kombinacije kako bih dobio okretanje u smeru kazaljki na satu ali nisam uspeo...

Ovako: Sledece kombinacije teraju motor suprotno od kazaljki na satu... recimo da je to smer "-" a u smeru kazaljki na satu smer "+", kada se motor ne okrece onda je oznaka "x". Evo rezultata...

1248 -
1284 x
1428 x
1482 -
1824 -
1842 x

2184 x
2148 -
2418 -
2481 x
2814 x
2841 x

4128 x
4182 -
4218 x
4281 x
4812 -
4821 -

8124 -
8142 x
8214 -
8241 -
8412 x
8421 x

Da li uopste ovaj motor moze da se okrece suprotno. Posto je steper motor trebalo bi da moze....

Unpared zahvalan



[ barum @ 15.06.2009. 09:39 ] @
Koliku pauzu si koristio za test?
Pobaj da smanjiš na oko 10 milisekundi ili na najmanju vrednost koja radi.
[ vukboban @ 15.06.2009. 09:47 ] @
meni ovo izgleda kao da ti + dovodis na pogresnu zicu!
probaj ovako:ommetrom nadji koja zica ima isti otpor prema ostale 4(nekih 2,3,4 oma)
recimo da si nasao da su otpori:
A-B=3 oma
A-C=3 oma
A-D=3 oma
A-E=3 oma
ta zica A ti je zajednicki izvod,i on ide na + napajanja
dalje meri otpor izmedju B,C,D i E dok ne dobijes izmedju kojih zica je 2 puta veci otpor(6 oma)
npr ovako:
B-C=6 oma
B-D=beskonacno
B-E=beskonacno
C-D=beskonacno
C-E=beskonacno
D-E=6 oma
kad ovo nadjes,znaci da su ti zice B i C jedan namotaj,a zice D i E drugi namotaj.
onda ih palis ovako:B,D,C,E za jedan smer,i B,E,C,D za drugi.

i to mora da radi ako je motor ispravan!
naravno obavezne su diode na tranzistore
[ barum @ 15.06.2009. 10:34 ] @
Kada se analizira malo ovaj test izgleda da korak sa vrednošću 1 na izlazu nema nikakvog uticaja.

1248 -
1284 x
1428 x
1482 -
1824 -
1842 x

kada se ne posmatra 1:

248 -
284 x
428 x
482 -
824 -
842 x

kombinacije 248, 482 i 824 su jedna te ista samo sa različitom polaznom tačkom.



Pogledaj taj tranzistor, možda je pregoreo možda nije vezan na pravi pin (RB0), možda TRIS registar za port B nije dobro podešen, možda ne radi pin ili taj namotaj motora je nagoreo. A možda samo nema pauze iza svakog koraka.
A moguće je, kao što kaže Boban, da zajednički izvod nije dobro izabran.
[ Robinzon Kruso @ 15.06.2009. 13:33 ] @
E hvala drugari na brzom i temeljitom odgovoru... bacam se na posao i cim nesto iskopam eto me sa rezultatima... Sto se tice motora kupljen je nov, jedino ako je fabricka greska... ali da ne brzam, prvo temljna analiza... pa onda sinteza... ha, ha, ha, .... Po semi za ovaj motor plus napon od 12 V se dovodi na crvenu zicu, tako sam i povezao... ali moguce da i to bude greska... jedino moram da priznam da nisam koristio diode, ovog puta postavljam i diode kao po semi od baruma, nije da me je mrzelo vec sam to jednostavno prevideo... previse sam se skoncentrisao na softver tako da hardver pati... Transistore koje koristim su BC546 a diode koje trenutno imam su 1N4184 i 1N4007

citamo se...

[Ovu poruku je menjao Robinzon Kruso dana 15.06.2009. u 14:45 GMT+1]
[ barum @ 15.06.2009. 18:52 ] @
Citat:
Robinzon Kruso: ... ha, ha, ha, .... nisam koristio diode ...


[ Robinzon Kruso @ 16.06.2009. 14:55 ] @
E ovako... u cemu je bio problem...

Prvo tranzisto na RB0 nije radio kao sto je i Barum pretpostavio iz analize kombinacija... Sto se tice otpornika na bazi tranzistora i dioda na kolektorima radi i sa i bez. Inace najmanju pauzu koju mogu da koristim jeste 2 milisekunde a koristim kombinaciju 1248 za desno i 8421 za levo (levo-u pravcu kazaljke na satu). Nisam siguran da je to prava kombinacija ali reduktor se sasvim dobro okrece na 2 milisekunda i ima poprilicnu snagu sa svoju velicinu... Sta da vam kazem bilo je veoma prosto, ali kad se covek prviput srece sa nekim problemom onda i sitnica moze da bude glavobolja...

Hvala svima na pomoci... sad sam spreman da podjem u robotiku...

[ rsinisa @ 16.06.2009. 18:36 ] @
Ta pauza, odn. frekvenca je u skladu sa onim što piše u podacima za taj motor. Mada, postoje 2 podatka, 550 pps i 900 pps-a na sajtu http://www.mingjong.com.tw/eip...?Category=100022&Part=ST28
To što radi i bez tih elemenata koje si naveo ne znači da je dobro ostaviti to tako. Svakako treba da se stavi ono što "pravilo službe" nalaže, duže i bolje će da radi.
Srećan rad!

Pozdrav.
Sinisha
[ vukboban @ 16.06.2009. 21:54 ] @
Citat:
Robinzon Kruso radi i sa i bez


Samo je pitanje dokle?

Tranzistori generalno(a posebno BC546)prosto obozavaju ogromnu struju baze,pa jos kad ga zvizne"back EMF" ima da radi kao sat!

Salu na stranu,ako hoces da ti sve to radi duze od pola sata ,stavi te diode(valjda su oko 5,6 din.komad!)i otpornike na baze (ista cena!)
[ Robinzon Kruso @ 27.06.2009. 10:13 ] @
Drusto malo sam bio odsutan...

Naravno da otpornici i tranzistori imaju svoje mesto u elektronici...

Jos jednom hvala...