 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
| Poglej prejšnjo temo :: Poglej naslednjo temo |
| Avtor |
Sporočilo |
vitez93 Član


Pridružen-a: Pet 19 Sep 2008 20:00 Prispevkov: 1018 Aktiv.: 4.76 Kraj: Celje- Dobrna
|
Objavljeno: Pon Dec 06, 2010 9:57 am Naslov sporočila: Krmilnik koračnih motorjev z PIC-om |
|
|
Naredil sem že nekaj zanimivih stvari z PIC-om, sedaj bi pa rad še nekaj več. Padla mi je ideja, da bi razvil moj krmilnik koračnih motorjev. Želje so:
- 3 A toka
- najmanj 1/4 microstepping
- PWM regulacija toka (odpade hladilnik)
Za začetek bi vprašal, je 20 MHz PIC dovolj pogon vsega? Kolikšno frekvenco največ da od sebe Mach in LPT port?
|
|
| Nazaj na vrh |
|
 |
igo Član

Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 15.32
|
Objavljeno: Pon Dec 06, 2010 3:07 pm Naslov sporočila: Re: Krmilnik koračnih motorjev z PIC-om |
|
|
| vitez93 je napisal/a: |
- 3 A toka |
To je stvar izhodne stopnje. Krmiljena je samo logično "1" in "0", to zmore vsak MCU (razen PORTA,4).
| vitez93 je napisal/a: |
- najmanj 1/4 microstepping
- PWM regulacija toka (odpade hladilnik) |
Vzameš PIC-a , ki ima že hardversko napravljen PWM in ga ti samo s spremenljivko krmiliš.
Microstepping pa je stvar programa. Lahko je izveden s klicanjem retlw tabel, z maskiranjem and--/ior--, z bcf/bsf, ...
To zmore vsak PIC.
LP,
Igor
_________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
| Nazaj na vrh |
|
 |
vitez93 Član


Pridružen-a: Pet 19 Sep 2008 20:00 Prispevkov: 1018 Aktiv.: 4.76 Kraj: Celje- Dobrna
|
Objavljeno: Pon Dec 06, 2010 4:19 pm Naslov sporočila: |
|
|
Hvala za odgovor.
Vse je res, kar si napisal. To mi je vse jasno. Skrbi me procesorski čas. Predpostavimo, da bo največja frekvenca korakanja 45 khz. Torej bo med vsakim korakom 22 uS. Pri 20 Mhz procesorju je to samo 110 strojnih ciklov. Koliko pa traja A/D pretvorba?
Kako potem v 110 ciklih narediti tokovno regulacijo, kakršna se lepo vidi na linku?
http://www.lamja.com/wp-content/uploads/2010/08/FullStepMaxTorqueCurrentVoltage60V166Hz.png
|
|
| Nazaj na vrh |
|
 |
boriskozjan Član

Pridružen-a: Pet 14 Nov 2008 23:23 Prispevkov: 956 Aktiv.: 4.51 Kraj: Šmarje pri Jelšah
|
|
| Nazaj na vrh |
|
 |
igo Član

Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 15.32
|
Objavljeno: Pon Dec 06, 2010 4:40 pm Naslov sporočila: |
|
|
V INIT nastaviš vse ADC parametre, porte, vhode, izhode, ...
Potem v programu samo nekje nastaviš register bsf -----,-- , s čimer sprožiš AD pretvorbo, in greš dalje.
Nato vsake toliko časa nekje preveriš btfs_ ----,-- , če je pretvorba že končana, saj se takrat postavi zastavica. Nato vzameš zgornjih 8 bitov pretvorbe in jih shraniš v spremenljivko za PWM.
ADC lahko sprožiš vsake pol sekunde, odvisno od potreb.
pADC podprogram na začetku preveri, če je že minilo pol sekunde. Če je, sproži meritev in leti ven. Nato ob vsakem klicu podprograma pADCend preveriš zastavico o statusu meritve. Če je končana, poštimaš registre za naslednjič in uporabiš rezultat. Podprograma se ob sproženi meritvi med seboj zakleneta (btfs_ return), dokler meritev ni končana in pripravljena za naslednjič, ko je čas potekel.
Imena registrov pišem na slepo, ker nimam datasheeta pred seboj.
Uf, sem zdajle opazil, da rabiš sproten odziv na tok. Meritev lahko izvajaš tudi bolj pogosto. Ko je vrednost uporabljena, sprožiš novo meritev. Nikar pa v zanki ne čakaj
ADCz ; zanka
btfss meritev_koncana,_
goto ADCz
saj je čas meritve odvisen od marsičesa in bi ti čakanje podrlo časovno shemo.
pADC
btfsc meritev_koncana,_
return ; ne še, gremo dalje
--- ; ja
---
--- ; uporabiš vrednost
bsf nova_meritev,_ ; sprožiš
return
LP,
Igor
_________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
| Nazaj na vrh |
|
 |
vitez93 Član


Pridružen-a: Pet 19 Sep 2008 20:00 Prispevkov: 1018 Aktiv.: 4.76 Kraj: Celje- Dobrna
|
Objavljeno: Pon Dec 06, 2010 5:24 pm Naslov sporočila: |
|
|
Sem pogledal ta Picstep. Tam je uporabljen krmilnik toka za motorje, ki v HTE stane 31€
V datasheetu od 16f876 mislim da je napisano, da je za pretvorbo potrebnih 20 uS.
Stran 116: http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf
Pogledal sem še za 18f2550. Tam je čas pretvorbe 2 uS. To bi pa že šlo.
Recimo, da se omejim na frekvence do 20 kHz, torej korak motorja na 50uS.
Mnenja?
|
|
| Nazaj na vrh |
|
 |
vitez93 Član


Pridružen-a: Pet 19 Sep 2008 20:00 Prispevkov: 1018 Aktiv.: 4.76 Kraj: Celje- Dobrna
|
Objavljeno: Sre Dec 08, 2010 6:17 pm Naslov sporočila: |
|
|
Uporabil bom 30f2011. Ima 12 bit, 200 ksps A/D pretvornik.
H-mostič sem narisal, bo vredu? PNP tranzostorji prevajajo, ko steče tok iz baze proti masi, a ne? Tam je potem inverter signala na bazo diagonalnih si tranzistorjev. No, dodati moram še diode 1n5822. A, B je za krmiljenje toka levo in desno, C je za merjenje padca na 0R47 uporu za merjenje toka. Bi moral dodati tu kakšno glajenje napetosti?
Nekaj mi ni jasno. Kje teče tok čez navitje, ko si vsi tranzistorji zaprti?
| Opis: |
|
 Download |
| Ime datoteke: |
H most.png |
| Velikost datoteke: |
7.15 KB |
| Downloadano: |
29 krat |
|
|
| Nazaj na vrh |
|
 |
TESKAn Član

Pridružen-a: Sob 30 Jan 2010 15:15 Prispevkov: 56 Aktiv.: 0.28 Kraj: Cerkno
|
Objavljeno: Ned Dec 26, 2010 11:53 am Naslov sporočila: |
|
|
Mnenje? Za hitro vrtenje ne rabiš microsteppinga. Tako da ko motor vrtiš s polno hitrostjo najprej izračunaš, koliko celih stepov moraš naredit, jih narediš, nato pa še toliko microstepov, da si na željeni poziciji. Ko pa vrtiš motor počasneje, imaš pa več časa za vse izračune.
Za H bridge si poglej izvedbe z MOSFETi in driverji za le - te. Enostavna zadeva, PWM signale iz PICa povežeš na driver, izhode iz driverja na MOSFETe in to je to.
|
|
| Nazaj na vrh |
|
 |
vitez93 Član


Pridružen-a: Pet 19 Sep 2008 20:00 Prispevkov: 1018 Aktiv.: 4.76 Kraj: Celje- Dobrna
|
Objavljeno: Pet Jan 07, 2011 10:02 pm Naslov sporočila: |
|
|
| TESKAn je napisal/a: |
| Mnenje? Za hitro vrtenje ne rabiš microsteppinga. Tako da ko motor vrtiš s polno hitrostjo najprej izračunaš, koliko celih stepov moraš naredit, jih narediš, nato pa še toliko microstepov, da si na željeni poziciji. Ko pa vrtiš motor počasneje, imaš pa več časa za vse izračune. |
Hvala za idejo. Tole je vredno razmisleka.
| TESKAn je napisal/a: |
Za H bridge si poglej izvedbe z MOSFETi in driverji za le - te. Enostavna zadeva, PWM signale iz PICa povežeš na driver, izhode iz driverja na MOSFETe in to je to. |
Mi lahko pokažeš kakšen link, ker ne razumem kaj točno misliš?
|
|
| Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 233 dni
Powered by phpBB © 2001, 2005 phpBB Group
|