Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
bostjan 2 Član
Pridružen-a: Pon 05 Dec 2011 19:35 Prispevkov: 121 Aktiv.: 0.80 Kraj: Vače
|
Objavljeno: Pet Maj 02, 2014 4:36 pm Naslov sporočila: |
|
|
Miki nisi razumel. Delaymicroseconds ti USTAVI kompletno procesiranje za ta čas. Takrat ne dela NIČ. Tudi INNTERRUPTI ne.
Tebi software dela maksimalno z 5000 cikli v sekundi, če šteješ samo delay. Še kak if, port pa se to zmanjša na 1600 ciklov.
Delay naredi tako, da si v zanki zapišeš trenutno stanje microseconds, v naslednji zanki pa ga preveri. Če je več kot 200, potem naredi določeno stvar, kar pač moraš. Še boljše bo pa če izmeriš čas med impulzi enkoderja, ter ta čas upoštevaš kot tisti pogoj delay..
Pa ne reče se inkoder ampak Enkoder !
Lp Boštjan
_________________ Ja še vedno se ne da... |
|
Nazaj na vrh |
|
|
Obelix Član
Pridružen-a: Pon 19 Maj 2008 13:59 Prispevkov: 1862 Aktiv.: 9.61 Kraj: Maribor
|
Objavljeno: Pet Maj 02, 2014 4:46 pm Naslov sporočila: |
|
|
Malo sem radoveden. Čemu služi ta kombinacija enkoderja in koračnega motorja. Nekako sem razbral, da je to neke vrste "software-ski reduktor".
|
|
Nazaj na vrh |
|
|
Mikim Član
Pridružen-a: Ned 10 Okt 2010 1:11 Prispevkov: 141 Aktiv.: 0.86 Kraj: Brežice
|
Objavljeno: Pet Maj 02, 2014 5:06 pm Naslov sporočila: |
|
|
Sem napisal inkoder da ne bo po ang encoder ali po naše dajalnik inpulzov. Sem navajen kar pisat inkoder.
Daj mi napiši ker ne razumem arduino programskega jezika. Že te kode sem si presnel z youtube in jih izboljšujem pa nič.
Pa poskusil sem odstrani 0 , encoder = 0; z encoder-- pa zadeva deluje popolnoma drugače. Ko povečujem obrate na enkoderju mi padajo obrati na motorju.
Obeliks to potrebujem za premik vretena in uporabljam digitalne impulze kot jih ima encoder. Ta zadev odlično deluje z omrom krmilniki in servo motorji a je cenovno predraga caa 1000€. Zato iščem cenejšo rešitev.
|
|
Nazaj na vrh |
|
|
Mikim Član
Pridružen-a: Ned 10 Okt 2010 1:11 Prispevkov: 141 Aktiv.: 0.86 Kraj: Brežice
|
Objavljeno: Pet Maj 02, 2014 5:07 pm Naslov sporočila: |
|
|
Ima mogoče kdo kakšen drugačen program z hitrejšo odzivnostjo.
Ja platforma je C oziroma C++ ampak tega se nisem poskušal učiti. Je kar zapleteno.
Nazadnje urejal/a Mikim Pet Maj 02, 2014 5:15 pm; skupaj popravljeno 2 krat |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5773 Aktiv.: 25.92 Kraj: Grosuplje
|
Objavljeno: Pet Maj 02, 2014 5:10 pm Naslov sporočila: |
|
|
Mikim je napisal/a: |
.......Daj mi napiši ker ne razumem arduino programskega jezika. ......... |
Arduino nima svojega programskega jezika ampak je kar C z napisanimi nekaj funkcijami.
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
bostjan 2 Član
Pridružen-a: Pon 05 Dec 2011 19:35 Prispevkov: 121 Aktiv.: 0.80 Kraj: Vače
|
Objavljeno: Pet Maj 02, 2014 5:15 pm Naslov sporočila: |
|
|
Tole ni arduino jezik ampak čisto klasičen c++, vsaj to kar uporabljaš ti. Osnove se lahko naučiš zelo hitro. Če obvladaš Omrona, boš tudi to. Da ti napišem program? Zato da boš ti privarčeval nekje ali pa prodal stvar? Za hobi ja, ni problem, za tole pa brez €€ ne bo šlo. Sem prevečkrat "pomagal" drugim, ki so potem šli veselo na dopust, sam pa sem reševal svoja jetra za katera takrat ko sem drugim pomagal ni bilo časa ..
Lp Boštjan
_________________ Ja še vedno se ne da... |
|
Nazaj na vrh |
|
|
Mikim Član
Pridružen-a: Ned 10 Okt 2010 1:11 Prispevkov: 141 Aktiv.: 0.86 Kraj: Brežice
|
Objavljeno: Pet Maj 02, 2014 5:23 pm Naslov sporočila: |
|
|
Omrona mi ni potrebno obvadat to je samo driver servo motorja. Ja krmili ga pa Siemens naš programer ki obvlada step 7 žal mi ni mogel pomagat, čeprav sem mu ponudil gajbo pira. Sej če bi znal bi mi pomagal.
Ja Boštjan to zadevo delam zase kot hobi, ker kakšni firmi take zadeve se ne prodajajo. Oni majo denar za siemens mi smrtniki pa žal ne. Lej če mi pomagaš ti dam za pir ali tudi za gajbo samo da zadevo zalaufam. LP Miki
|
|
Nazaj na vrh |
|
|
Obelix Član
Pridružen-a: Pon 19 Maj 2008 13:59 Prispevkov: 1862 Aktiv.: 9.61 Kraj: Maribor
|
Objavljeno: Pet Maj 02, 2014 6:04 pm Naslov sporočila: |
|
|
Mikim je napisal/a: |
... če pa inkoder hitro vrtim se impulzi gubijo. Kod da jih polovica manjka... |
Iz napisanega bi lahko sklepali, da je problem bolj v enkoderju oziroma povezavi z arduinom (ali podobnim). Mogoče je enkoder že malo "zmatran", neustrezno povezan, mogoče boš moral uporabiti kak Schmitt trigger za oblikovanje ustreznih impulzov.
|
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5333 Aktiv.: 24.73 Kraj: Domzale
|
Objavljeno: Pet Maj 02, 2014 6:13 pm Naslov sporočila: |
|
|
bostjan 2 je napisal/a: |
Delaymicroseconds ti USTAVI kompletno procesiranje za ta čas. Takrat ne dela NIČ. Tudi INNTERRUPTI ne. |
Windows bi rekli "Are you sure?"
Pri Delay funkcijah HW interrupti ponavadi delujejo.
Lp, g
_________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
Mikim Član
Pridružen-a: Ned 10 Okt 2010 1:11 Prispevkov: 141 Aktiv.: 0.86 Kraj: Brežice
|
Objavljeno: Pet Maj 02, 2014 7:29 pm Naslov sporočila: |
|
|
Obelix je napisal/a: |
Mikim je napisal/a: |
... če pa inkoder hitro vrtim se impulzi gubijo. Kod da jih polovica manjka... |
Iz napisanega bi lahko sklepali, da je problem bolj v enkoderju oziroma povezavi z arduinom (ali podobnim). Mogoče je enkoder že malo "zmatran", neustrezno povezan, mogoče boš moral uporabiti kak Schmitt trigger za oblikovanje ustreznih impulzov. |
Enkoder je nov, puls se izgubi pri izhodu arduino plošče. Na vhodu prihaja v razmaku do 50mikroS. Gubim ga pa že pri 300microS. Tako da problem ni v enkoderju pač v programu.
|
|
Nazaj na vrh |
|
|
vpeter Član
Pridružen-a: Pon 11 Jun 2012 16:05 Prispevkov: 337 Aktiv.: 2.34 Kraj: Maribor okolica
|
Objavljeno: Pet Maj 02, 2014 8:10 pm Naslov sporočila: |
|
|
mucek je napisal/a: |
Pri Delay funkcijah HW interrupti ponavadi delujejo. |
http://arduino.cc/en/Reference/DelayMicroseconds
Odvisno od verzije - lahko da funkcija prekinitve onemogoči ali pa tudi ne.
|
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5773 Aktiv.: 25.92 Kraj: Grosuplje
|
Objavljeno: Pet Maj 02, 2014 8:18 pm Naslov sporočila: |
|
|
On dela z verzijo Arduino IDE 1.5.x, torej:
Citiram: |
As of Arduino 0018, delayMicroseconds() no longer disables interrupts |
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
Mikim Član
Pridružen-a: Ned 10 Okt 2010 1:11 Prispevkov: 141 Aktiv.: 0.86 Kraj: Brežice
|
Objavljeno: Pet Maj 02, 2014 10:01 pm Naslov sporočila: |
|
|
Jaka,
za mini sem uporabil arduino 1.0.5-r2
za DUE pa 1.5.6-r2
program je enak na obeh s tem da DUE ne podpira funkcije delay.h in sem jo izbrisal.
Pri testu so na obeh ploščah enake napake. Še vedno nisem dobil odgovora ali se lahko program napiše da deluje hitreje mogoče da podpira 32bit. Oziroma naj bi ga arduino 1.5.6 -r2 sam prevedel.
|
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5773 Aktiv.: 25.92 Kraj: Grosuplje
|
Objavljeno: Pet Maj 02, 2014 10:11 pm Naslov sporočila: |
|
|
@Mikim in zakaj misliš, da bi bilo 32 bit hitreje, če se uporabljajo 8 bitni registri, to je eno, drugo pa kje v samem programu bi prišla v poštev 32bitna aritmetika?
In še nekaj, ne vem zakaj je tako težko narisat vezje?
Ne potrebuješ risat MCUja, temveč samo nekaj podobnega, kot je tole:
Opis: |
|
Velikost datoteke: |
68.89 KB |
Pogledana: |
9 krat |
|
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
Mikim Član
Pridružen-a: Ned 10 Okt 2010 1:11 Prispevkov: 141 Aktiv.: 0.86 Kraj: Brežice
|
Objavljeno: Sob Maj 03, 2014 11:25 am Naslov sporočila: |
|
|
Vezje, če vam bo kaj pomagalo, vsaj upam.[/img]
Video povezava skoraj enake komponente razen enkoderja.
https://www.youtube.com/watch?v=2dh6TIkN6jE
Opis: |
|
Velikost datoteke: |
856.98 KB |
Pogledana: |
13 krat |
|
|
|
Nazaj na vrh |
|
|
|