www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Enkoder krmili koračni motor
Pojdi na stran Prejšnja  1, 2, 3
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programiranje embedded sistemov
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5766
Aktiv.: 25.97
Kraj: Grosuplje

PrispevekObjavljeno: Tor Maj 13, 2014 11:01 pm    Naslov sporočila:   Odgovori s citatom

Sedaj pa tako, koga ti za jajca vlečeš?
Malo višje nam predstavljaš neke svoje projekte, toda o programiranju se ti tudi sanja ne!?????
Lahko se ene parkrat delaš norca iz nas toda ne ves čas!

_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Mikim
Član
Član



Pridružen-a: Ned 10 Okt 2010 1:11
Prispevkov: 141
Aktiv.: 0.86
Kraj: Brežice

PrispevekObjavljeno: Sre Maj 14, 2014 4:29 am    Naslov sporočila:   Odgovori s citatom

Se opravičujem, če kdo misli da iz nekoga delam norca, pač ne poznam programiranja v C++ in iščem pomoč. Nič drugega samo rad bi zadevo izpeljal, če je pa to takšna skrivnost pa nič bom pač nekoga plačal in mi bo zadevo izpeljal.
Aja projekte sem pač pokazal, da lažje razumete kaj bi rad izpeljal.
Hvala za pomoč. LP Miki
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
red_mamba
Član
Član



Pridružen-a: Ned 20 Feb 2005 17:56
Prispevkov: 1486
Aktiv.: 6.69
Kraj: Yogyakarta

PrispevekObjavljeno: Sre Maj 14, 2014 11:55 am    Naslov sporočila:   Odgovori s citatom

jaz pa mislim da motor ni zmozen 1200RPM pomika.
zato pa korake zgublja. Niso vsi motorji sposobni tako velikoh obratov. Saj jim z obrati pada navor. In motor moras krmilit s konstantnim tokom ne konstantno napetosjo drugace ti navor zgubi ze pri par 100RPM. Pa testirat moras obremenjenega. Ce ti 1200 obratov zmore neobremenjen to ne pomeni da ti bo tudi obremenjen sposoben to naredit.

Najprej preveri ce se motor sploh lahko tako hitro pomika. Ko bo hardware ok bos pa lahko kodo porihtal.


Druga varjanta je pa da uporabis servo motor z opticno zanko.
firma za kero Aly dela majo hall sensor kotnega pomika. Izhod je lahko tudi x-bitni stevec. Kar pomeni da ne rabis impulzov stet enega po enega ampak beres stevec 10x na sekundo na prides do pravega polozaja.

tretja opcija je pa kot sem ze rekel PIC uC ki ima podporo za rotacijski encoder in je direktno vezan na 32 bitni stevec. Ne rabis nic interuptov ker ti avtomatsko povecuje ali zmansuje stevec.

_________________
Bad things happen to good people all the time for no reason!
Blog
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
vpeter
Član
Član



Pridružen-a: Pon 11 Jun 2012 16:05
Prispevkov: 337
Aktiv.: 2.35
Kraj: Maribor okolica

PrispevekObjavljeno: Sre Maj 14, 2014 12:07 pm    Naslov sporočila:   Odgovori s citatom

red_mamba je napisal/a:
jaz pa mislim da motor ni zmozen 1200RPM pomika.
zato pa korake zgublja. ...... Najprej preveri ce se motor sploh lahko tako hitro pomika.
Točno to sem jaz že predlagal - reševanje problema po komponentah. Ampak kot smo že lahko ugotovili avtor za to nima dovolj znanja in torej išče končno in kompletno delujočo rešitev.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Mikim
Član
Član



Pridružen-a: Ned 10 Okt 2010 1:11
Prispevkov: 141
Aktiv.: 0.86
Kraj: Brežice

PrispevekObjavljeno: Sre Maj 14, 2014 2:55 pm    Naslov sporočila:   Odgovori s citatom

red_mamba,
koračni motor se ne rabi vrtet z takšno hitrostjo kot si napisal 1300rpm.
Enkoder se vrti okoli 1000rpm, motor pa okoli 500rpm. Program mi deluje ampak rabim vklučit v program prestavno razmerje. da mi ni potrebno uporabit zobniško prestavno razmerje. Recimo, če imam na enkoderju hitrost vrtenja 800rpm, potrebujem na koračnem motorju recimo 330rpm. Naj še enkrat povem, meni ni problem zadevo naredit, da deluje saj z uporabo dobrega servo driverja in servo motorja je problem rešen. Vendar finančno mi je predrago. Samo omron 100W ac motor je 550€.
Z arduinom sem se srečal pred 2 meseci in je zadeva zelo poceni, ampak brez delujočega programa mi nič ne pomeni.
Pri nas v podjetju poznamo samo Siemens, Hitachi... in sedaj zelo popularen Unitronics. To so industrijski krmilniki in delujejo leta in leta brez težav. Se pravim, če mi ne uspe izdelat programskega prestavnega razmerja, da bo pravilno deloval bom pač uporabil zobniškega. Lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
red_mamba
Član
Član



Pridružen-a: Ned 20 Feb 2005 17:56
Prispevkov: 1486
Aktiv.: 6.69
Kraj: Yogyakarta

PrispevekObjavljeno: Sre Maj 14, 2014 4:16 pm    Naslov sporočila:   Odgovori s citatom

Mikim je napisal/a:
red_mamba,
koračni motor se ne rabi vrtet z takšno hitrostjo kot si napisal 1300rpm.
Enkoder se vrti okoli 1000rpm, motor pa okoli 500rpm. Program mi deluje ampak rabim vklučit v program prestavno razmerje. da mi ni potrebno uporabit zobniško prestavno razmerje. Recimo, če imam na enkoderju hitrost vrtenja 800rpm, potrebujem na koračnem motorju recimo 330rpm. Naj še enkrat povem, meni ni problem zadevo naredit, da deluje saj z uporabo dobrega servo driverja in servo motorja je problem rešen. Vendar finančno mi je predrago. Samo omron 100W ac motor je 550€.
Z arduinom sem se srečal pred 2 meseci in je zadeva zelo poceni, ampak brez delujočega programa mi nič ne pomeni.
Pri nas v podjetju poznamo samo Siemens, Hitachi... in sedaj zelo popularen Unitronics. To so industrijski krmilniki in delujejo leta in leta brez težav. Se pravim, če mi ne uspe izdelat programskega prestavnega razmerja, da bo pravilno deloval bom pač uporabil zobniškega. Lp


programsko lahko delis impuze samo s celimi stevili

recimo 1:2, 1:4, 1:11 ...
800:330 ne bos enostavno zdelil. Ce lahko zaokrozis stevila potem naredi to, drugace pa mehanski prenos.

Zdelis pa korake tako da povecujes spremenljivko do vrednosti potem ga resetiras in povecas stevec.

Recimo:
cnt++;
if (cnt = 10)
{
cnt = 0;
impulz motorju;
}

to ti bo zdelilo frekvenco enkoderja z 10. Se bo vrtel 10x pocasneje kot encoder. Ce imas encoder za vhod motorja. Nisem bral cele teme in ne vem kaj ti krmili motor in kako imas vkljucen encoder v vso to shemo.

_________________
Bad things happen to good people all the time for no reason!
Blog
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2066
Aktiv.: 9.30
Kraj: Ljubljana

PrispevekObjavljeno: Sre Maj 14, 2014 5:47 pm    Naslov sporočila:   Odgovori s citatom

red_mamba je napisal/a:
programsko lahko delis impuze samo s celimi stevili
Ni nujno.

Če za potrebe deljenja impulze pomnožiš z 10, bi idejno izgledalo nekako takole:
Koda:
// spremenljivke so pomnoižene z 10
#define STEP_TRESHOLD = 12 /* deljenje z 1,2 */
char imp_10;

// v tej vrstici onemogoči prekinitev, ki spreminja imp
  imp_10 += 10*imp;
  imp=0;
//v tej vrstici omogoči prekinitev, ki spreminja imp

  if(imp_10 >= STEP_TRESHOLD)
  {
    imp_10 -= STEP_TRESHOLD;
    //  spremeni smer v desno in izvedi en korak
    PocakajKorak(perioda_koraka); 
}

  if(imp_10 <= STEP_TRESHOLD)
  {
    imp_10 += STEP_TRESHOLD;
    //  spremeni smer v desno in izvedi en korak
    PocakajKorak(perioda_koraka);
  }



Zgoraj manjka:
Namesto PocakajKorak() lahko uporabiš delay() funkcije.
Prekinitvena rutina, ali rutini, za obdelavo impulzov enkoderja - imp spremenljivka.
Preračun spremenljivke perioda_koraka:
Nekako moraš ugotoviti periodo impulzov enkoderja. S pomočjo prestavnega razmerja nato preračunavaš perioda_koraka.
Če boš to počel za vsak korak posebaj, zna biti napaka precejšnja. Rezultat bo časovno neenakomeren razmik med koraki koračnega motorja.
Najbolje bi bilo upoštevati (drseče?) povprečje nekaj korakov. Precej je odvisno od tega, kakšen zamik je še sprejemljiv.

Če je sprejemljivo, bi bilo dobro pri spremembi smeri pustiti kakšen impulz histereze. Na ta načiun bi se izognil problemu, če se enkoder ustavi ravno na meji preklopa stanja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Sre Maj 14, 2014 6:22 pm    Naslov sporočila:   Odgovori s citatom

red_mamba je napisal/a:
...
800:330 ne bos enostavno zdelil. Ce lahko zaokrozis stevila potem naredi to, drugace pa mehanski prenos.
800/330 = 2 + 1/3 + 1/12 + 1/132 , kar sploh ne bi bilo tako grozno, (izračun je na prvi strani spodaj). Pravo prestavno razmerje je žal drugačno. Treba bo izmeriti pomik pri znanem razmerju (četudi 1:1) in nato izračunati, kakšno bi dejansko moralo biti.

Najhujša posledica neceloštevilska razmerja je ta, da razmerje ne bo konstantno, ampak se bo sproti prilagajalo in se poskušalo kar najbolj približati točni vrednosti. A tik pred vsako prilagoditvijo bo odstopanje največje. Glede na preostalo mehaniko je lahko trenutno odstopanje med 0 in nekaj. Če je tisto "nekaj" še vedno znotraj dopustnih toleranc, je stvar rešena.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Mikim
Član
Član



Pridružen-a: Ned 10 Okt 2010 1:11
Prispevkov: 141
Aktiv.: 0.86
Kraj: Brežice

PrispevekObjavljeno: Čet Maj 15, 2014 4:59 am    Naslov sporočila:   Odgovori s citatom

Pri testiranju koračnega motorja, kateri je priklopljen na vreteno je zadeva takšna.
Ko naredi enkoder en krog je na vretenu pomik 44mm. Če potrebujem 25,3 kar mamo 18,6mm v dobrem.
Se pravi zmanjšati bo potrebo 0,575 kroga. Prestavno razmerje imam na motorju 72zobov na vretenu pa 24zobov. Lahko tudi naredim zobato jermenico manjšo.
Sam če se da nastavljat bi bilo zelo zanimivo potem nisem odvisen od izdelovalcev zobnikov. In lahko uporabljam standardne zobate jermenice. Kar so 10x cenejše.
Po izračunu potrebujem 41,4 zobniško jermenico mxl. Bom preveril če imajo zobato palico 41 ali z 42 zobmi.

Še ena novost. Epson printer uporablja dva tipa enkoderja z 180 in 360 pulsi.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programiranje embedded sistemov Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3
Stran 3 od 3

 
Pojdi na:  
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: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group