|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Čet Dec 22, 2011 8:16 pm Naslov sporočila: |
|
|
Marko,
seveda bi šlo tudi s prikazom 1/10 obrata. Poskusi z uporabo ukaza encoder.
Menim da bo hitreje ker so rutine za +/- posebaj pisane in se ne izvajajo v isti podrutini.
Koliko hitro lahko vrtiš?
Štetje enega puza traja 12uS za kristal 4MHz, če si dal 8 to pomeni da en pulz prešteje v 6uS. za en obrat rabiš 600uS, za 10 obratov 6mS . . . .
Marko, povej pa mi koliko je najvišje število obratov na tej mašini?
Nisi mi povedal kakšen motor ima mašina.
Kakšeno je razmerje med prenosom motor/vreteno naivjalnega stroja?
LP |
|
Nazaj na vrh |
|
|
marko11 Profesionalec
Pridružen/-a: Ned Jan 2004 18:00 Prispevkov: 112 Kraj: Ponikve
|
Objavljeno: Pon Dec 26, 2011 6:19 pm Naslov sporočila: |
|
|
Vlado je napisal/a: |
seveda bi šlo tudi s prikazom 1/10 obrata. Poskusi z uporabo ukaza encoder.
Menim da bo hitreje ker so rutine za +/- posebaj pisane in se ne izvajajo v isti podrutini.
Koliko hitro lahko vrtiš?
Marko, povej pa mi koliko je najvišje število obratov na tej mašini?
Nisi mi povedal kakšen motor ima mašina.
LP |
Mislim, da je najvišje število obratov ca 1500-1800 / minuto.
Bom probal napisati codo z uporabo ukaza ENCODER.
Sem pa nekaj poizkušal napisati, da bi štel po 1/10 obrata pa mi ni do sedaj še uspelo.
Če uporabim zunanji 16 MHz kristal, kolikšni morajo biti kondenzatorji vezani proti masi? Ali je dovolj, da vpišem v programu velikost kristala, ali moram to vpistati v " fusebit"?
Ta program, ki si ga sestavil @vlado sem sprobal na mašini ki ima števec obratov in deluje zelo točno.
LP, _________________ Kdor visoko leta, daleč vidi. |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Tor Dec 27, 2011 11:54 am Naslov sporočila: |
|
|
Marko,
pri uporabi 16MHz kristala bodo kondenzatorji 22pF kar v redu, Lahko pa ti se zgodi da vsak kristal ne bo zanihal, ko sem delal z 16MHz kristalom sem imel enega ki ni hotel zanihati, nisem pa zmanjševal kondenzatorjev, raje sem dal drug kristal.
V fuse bitih moraš samo nastaviti na zunanji kristal (ne oscilator), v programu pa vpišeš vrednost kristala.
Če je najviše število obratov 1800, potem je to 30 Obr/sec, ker na obrat dobiš 100 impulzov bo to njveč 3000 impulzov v sekundi. en impulz ti bo vzel 330uS, tako da bi tudi to najvišjo vrednost brez težav bral in obdeloval.
Še enkrat, kakšen motor ima mašina?
Ali motor ima zavoro?
Sprašujem zato da vidmo kako bi se dalo krmiliti motor, ker potem te LCD sploh ne zanima dokler se motor ne ustavi in tedaj vidiš na LCD-ju ali je število ovojev pravilno.
LP |
|
Nazaj na vrh |
|
|
marko11 Profesionalec
Pridružen/-a: Ned Jan 2004 18:00 Prispevkov: 112 Kraj: Ponikve
|
Objavljeno: Sre Dec 28, 2011 3:33 pm Naslov sporočila: |
|
|
Vlado je napisal/a: |
Še enkrat, kakšen motor ima mašina?
Ali motor ima zavoro?
Sprašujem zato da vidmo kako bi se dalo krmiliti motor, ker potem te LCD sploh ne zanima dokler se motor ne ustavi in tedaj vidiš na LCD-ju ali je število ovojev pravilno.
LP |
Motor je DC 88V, 9.5A, 700W.
Motor ima vgrajeno zavoro DC24v.
To sem hotel prihraniti za konec, kako krmiliti ta motor.
Sam sem to probal tako, da sem napravil en dimmer s triakom in potenciometrom, na koncu pa sem dal "grec". Motor lepo deluje.
Kako bi pa vi krmilili tak motor?
Pravzaprav pa še vedno nisem prišel do kraja z encoderjem.
lp, _________________ Kdor visoko leta, daleč vidi. |
|
Nazaj na vrh |
|
|
marko11 Profesionalec
Pridružen/-a: Ned Jan 2004 18:00 Prispevkov: 112 Kraj: Ponikve
|
Objavljeno: Pet Dec 30, 2011 4:52 pm Naslov sporočila: |
|
|
Hi
Takole sem zdaj spisal kodo, da šteje, izpisuje na ČETRT obrata na LCD.
Ko zavrtim na roke je OK, ne vem pa kako se bo obneslo pri višjih obratih.
Koda: |
$regfile = "m8def.dat"
$crystal = 8000000 'crystal je interni
Config Lcdpin = Pin , Db7 = Portb.0 , Db6 = Portd.7 , Db5 = Portd.6 , Db4 = Portb.3 , E = Portb.4 , Rs = Portb.5
Config Lcd = 16 * 2
Config Lcdbus = 4
Cursor Off
Cha Alias Pind.2
Chb Alias Pind.3
Config Cha = Input
Config Chb = Input
Config Int0 = Falling
Const Debouncetime = 1
Dim Wtime As Byte
Dim Stevec As Integer , Obrat_old As Integer
Dim Obrat As Integer
Dim Cetrt_obr As Integer , Cetrt_obr_old As Integer
Set Chb
On Int0 Stetje
Cls
Cursor Off
Wtime = 100
Stevec = 0
Obrat_old = 1
Obrat = 0
Cetrt_obr = 0
Cetrt_obr_old = 0
Enable Interrupts
Enable Int0
Do
If Obrat <> Obrat_old Or Cetrt_obr <> Cetrt_obr_old Then
Upperline
Lcd "Stanje: " ; Obrat ; ". " ; Cetrt_obr ; " "
Obrat_old = Obrat
Cetrt_obr_old = Cetrt_obr
End If
Loop
Stetje:
'ŠTEJE GOR
If Cha = 0 Then
If Chb = 0 Then Incr Stevec Else Decr Stevec
End If
If Stevec => 25 Then
Incr Cetrt_obr
Stevec = 0
If Cetrt_obr => 4 Then
Incr Obrat
Cetrt_obr = 0
End If
End If
'ŠTEJE DOL
If Stevec <= -25 Then
Decr Cetrt_obr
Stevec = 0
If Cetrt_obr <= -4 Then
Decr Obrat
Cetrt_obr = 0
End If
End If
Return
End
|
Citiram: | Štetje enega puza traja 12uS za kristal 4MHz, če si dal 8 to pomeni da en pulz prešteje v 6uS. za en obrat rabiš 600uS, za 10 obratov 6mS . . . . |
Prosim, če mi kdo razloži, kako se zračuna, da to prešteje v 6uS.
Vkolikšnem času pa bo preštel v zgornjem primeru?
lp, _________________ Kdor visoko leta, daleč vidi. |
|
Nazaj na vrh |
|
|
JUG Mojster
Pridružen/-a: Čet Nov 2011 15:49 Prispevkov: 38
|
Objavljeno: Pon Jan 02, 2012 12:15 pm Naslov sporočila: |
|
|
Jaz uporabljam spodnji program pa deluje odlično (moj enkoder ima 1024imp/obrat):
________________________________
$regfile = "m8515.dat"
$crystal = 8000000
'::::::::::::Konfiguracija::::::::::::::::::::::::::::::::::::::::::::
Cha Alias Pind.2 'vhod, ki ima 10kOhm pull-up upor vezan na +5V
Chb Alias Pind.3 'vhod, ki ima 10kOhm pull-up upor vezan na +5V
Config Cha = Input
Config Chb = Input
Config Int0 = Falling
Dim Stevec As Word
Set Chb
On Int0 Getencoder
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db7 = Portc.7 , Db6 = Portc.6 , Db5 = Portc.5 , Db4 = Portc.4 , E = Portc.2 , Rs = Portc.1
Cursor Off
Cls
Stevec = 0
Enable Interrupts
Enable Int0
'::::::::::::::Glavna zanka:::::::::::::::::::::::::
Do
Locate 1 , 1
Lcd Stevec
Lcd " "
Loop
'::::::::::::::::Podprogram:::::::::::::::::::::::::
Getencoder:
If Cha = 0 Then
If Chb = 0 Then
Incr Stevec
Else
Decr Stevec
End If
End If
Return
_____________________________
V programu je dodan le še ukaz za izpis na LCD, drugače pa se celoten del za enkoder vrši v parih ukazih v podprogramu. Pa clock naj bo vsaj 8MHz ker drugače ne zmore izpisovati na LCD tekoče.
LP
Jakob |
|
Nazaj na vrh |
|
|
marko11 Profesionalec
Pridružen/-a: Ned Jan 2004 18:00 Prispevkov: 112 Kraj: Ponikve
|
Objavljeno: Tor Jan 03, 2012 5:18 pm Naslov sporočila: |
|
|
Gornji moj program sem probal in deluje.
Prosim za komentar, če sem to pravilno napisal, da izpisuje četrtino obrata in ali je možno kako drugače? Hvala vsem za pomoč.
@Jakob, kako si pa ti napisal kodo, da ti preračunava koliko ovojev si napravil?
LP, |
|
Nazaj na vrh |
|
|
JUG Mojster
Pridružen/-a: Čet Nov 2011 15:49 Prispevkov: 38
|
Objavljeno: Tor Jan 03, 2012 5:27 pm Naslov sporočila: |
|
|
Ja če hočeš izvedeti koliko obratov si naredil, pa le deliš tisti števec od enkoderja, z številom impulzov, ki jih tvoj enkoder pre more (če si preštel 256 impulzov in če ima tvoj enkoder 256 impulzov na obrat, deliš 256/256 in dobiš rezulktat 1)
LP
Jakob |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Čet Jan 05, 2012 5:26 pm Naslov sporočila: |
|
|
Marko,
meni še vedno ni jasno kaj bi rad videl na dipleju.
Če se bodo podatki prehitro spreminjali tega ne boš videl.
Poskusi skrajšati podprogram tako da večino dela opraviš v glavni zanki (štej samo pulze, v glavni zanki pa od tega naredi obrate).
Jakob je napisal:
Citiram: | Pa clock naj bo vsaj 8MHz ker drugače ne zmore izpisovati na LCD tekoče.
|
To ne bo povsem pravilno.
Bascom pri pisanju na LCD ne uporablja R/W pina, ampak fiksno zakasnitev, tako da hitrost takta bistveno ne vpiliva na hitrost pisanja. Če želimo hitrejši izpis moramo uporabiti LIB4BUSY.lib ki uporablja R/W pin.
LP |
|
Nazaj na vrh |
|
|
JUG Mojster
Pridružen/-a: Čet Nov 2011 15:49 Prispevkov: 38
|
Objavljeno: Čet Jan 05, 2012 7:04 pm Naslov sporočila: |
|
|
@Vlado, že mogoče res, samo jaz imam zvezane pine od enkoderja na interrupt pine mikroprocesorja. Program je zato velikokrat v podprogramu in LCD enostavno ne more zvezno izpisovati.
Povsem druga zgodba je če nimaš LCD oz. izpisuješ le na nek port (prižigaš in ugašaš ledice). Tam pa imaš lahko kristal tudi 1MHz, pa bo izhod še vedno sledil štetju enkoderja.
LP
Jakob |
|
Nazaj na vrh |
|
|
marko11 Profesionalec
Pridružen/-a: Ned Jan 2004 18:00 Prispevkov: 112 Kraj: Ponikve
|
Objavljeno: Čet Jan 05, 2012 7:39 pm Naslov sporočila: |
|
|
Vlado je napisal/a: |
........
Lahko pa si pomagaš tako da tvojih 100 imp. prikažeš kot en obrat, tedaj bo zgodba čisto drugačna, lahko pa obrat (100imp.) deliš z 4, in po 25 imp. prikažeš 0.25 obrata . . .
LP |
@Vlado, tukaj govoriš naj prikazujem četrt obrata. Saj to sem napisal v zadnjem programu, potem pa mi svetuješ naj to počnem v glavnem programu ne pa v prekinitveni rutini. Kakoooo?
Sploh mi ne potegne kaj in kako napisati.
Saj zgornji program deluje, samo nisem še preveril pri najvišjih obratih.
LP, |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Čet Jan 05, 2012 7:59 pm Naslov sporočila: |
|
|
Marko,
nimam enkoderja da bi lahko preizkušal.
Ni druge kot da sestaviš elektroniko in preizkusiš z motorjem.
Kaj zdaj ustavlja ta motor?
Ali ima motor možnost nastavitve števila obratov (potem bi lahko proti koncu zmanjšal število obratov in lepo videl koliko ovojev je navitih)?
Kaj zdaj krmili zavoro?
Menim da bo procesor dovolj hiter da sproži ustavitev motorja in zavore ne glede na to ali boš videl koliko ovojev je navitih (boš jih videl ko se motor ustavi). Moraš pa v programu imeti možnost za nastavitev števila ovojev ki jih procesor mora prešeteti.
LP |
|
Nazaj na vrh |
|
|
marko11 Profesionalec
Pridružen/-a: Ned Jan 2004 18:00 Prispevkov: 112 Kraj: Ponikve
|
Objavljeno: Pet Jan 06, 2012 6:07 pm Naslov sporočila: |
|
|
Citiram: |
Citiram:
Štetje enega puza traja 12uS za kristal 4MHz, če si dal 8 to pomeni da en pulz prešteje v 6uS. za en obrat rabiš 600uS, za 10 obratov 6mS . . . .
Prosim, če mi kdo razloži, kako se zračuna, da to prešteje v 6uS.
To je izračunal Vlado, nekje višje v postu.
|
Sem že malo višje nazaj spraševal.
Prosim še enkrat, kako se izračuna koliko časa porabi recimo spodnja rutina Stetje
Koda: | Stetje:
'ŠTEJE GOR
If Cha = 0 Then
If Chb = 0 Then Incr Stevec Else Decr Stevec
End If
If Stevec => 25 Then
Incr Cetrt_obr
Stevec = 0
If Cetrt_obr => 4 Then
Incr Obrat
Cetrt_obr = 0
End If
End If
'ŠTEJE DOL
If Stevec <= -25 Then
Decr Cetrt_obr
Stevec = 0
If Cetrt_obr <= -4 Then
Decr Obrat
Cetrt_obr = 0
End If
End If
Return
|
LP, |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Pet Jan 06, 2012 6:22 pm Naslov sporočila: |
|
|
Marko,
to se ne računa (vsaj za Bascom ne), program poženeš v simulatorju in dobiš odgovor.
LP |
|
Nazaj na vrh |
|
|
marko11 Profesionalec
Pridružen/-a: Ned Jan 2004 18:00 Prispevkov: 112 Kraj: Ponikve
|
Objavljeno: Pet Jan 06, 2012 7:42 pm Naslov sporočila: |
|
|
Vlado je napisal/a: | Marko,
to se ne računa (vsaj za Bascom ne), program poženeš v simulatorju in dobiš odgovor.
LP |
Pa vsem se zdi tako vprašanje trapasto, poglejte, če nekdo nekaj sprašuje gotovo tega ne ve, pa če je za vas še tako enostavno.
Saj je še bog rabil 6 dni, da je ustvaril nebo in zemjo......
Pa brez zamere, Marko |
|
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 You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|