attiny2313 - A+B csatornas encoder parositas

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10097
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2008. április 16. szerda, 20:22

Kód: Egész kijelölése

config portd.2 as input
config portd.3 as input
.
.
.
portd.2=1'ezt a sort torolted....:)
portd.3=1'ezt a sort is torolted....:)


Avatar
albinolynx
Tranzisztorgyógyász
Hozzászólások: 161
Csatlakozott: 2007. október 28. vasárnap, 6:00
Tartózkodási hely: Veszprem
Kapcsolat:

HozzászólásSzerző: albinolynx » 2008. április 17. csütörtök, 7:31

Azt hiszem felreertettuk egymast! (:

A kapcsolastol teljesen fuggetlenul kinlodok az encoderrel!
Egyelore bekotni sincs ertelme, mert nem ad ki negyszogjeleket a kimeneten. Servo szabalyzo korben is suket. Nem ertem, ket hete meg csak a kozeleben sem voltam...

Azt hiszem be kell szereznem egy ujat. Nem tudok mire gondolni.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10097
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2008. április 17. csütörtök, 7:43

Ja.

Hülye kérdés:
- ha nem lámpafényben csinálod, akkor is hülyeséget ad ki?
- Ha a kimenetére beraksz egy 10k "lezáró" ellenállást, akkor hogy viselkedik?

Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

HozzászólásSzerző: gerry » 2008. április 17. csütörtök, 9:33

albinolynx!

Elolvastam a topicot és a legelső bevezető hsz-d.
Ez a project kisértetiesen hasonlít az én egyik agyalmányomhoz, amit úgy hívnak, hogy digitális mikrométer. Egy nyomdában melózok és néha szüségem lenne egy ilyen szerkezetre.
A lényege. Adott az enkóder én nem szoftveresen olvasám, hanem az újjabb bascomokban bevezetett Encoder parancsal.
Mivel nekem nem kell nagy elmozdulást mérnem direktbe lehet kötni az enkódert a tengelyre. De a nagy elmozdulást is lehet számoltatni enkóderrel. A tengely(menetes orsó) menetemelkedése, pedig szabvány(asszem a 8-as menetes orsó 1mm). Egy teljes fordulat 1mm, 1 miliméter = mondjuk 255 egység,vagy az adott enkódertől függ.
le kell osztani. Az 500-as tárcsád kiváló lenne erre a feladatra.

A Bascomban lévő mintaprogram tökéletes elindulása lehetne a projectnek. Egy kis módosítással még LCD-n is láthatók a lépések.

Kód: Egész kijelölése

$regfile = "attiny2313.dat"                                 ' specify the used micro
$crystal = 4000000                                          ' used crystal frequency
$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40                                             ' default use 40 for the frame space
Config Lcd = 20 * 2
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.6 , Rs = Portb.7
Config Lcdmode = Port

Dim A As Byte
Dim B As Byte
'we have dimmed a byte because we need to maintain the state of the encoder

Portd = &B1111111                                           ' activate pull up registers

Cls

Do
   B = Encoder(pind.2 , Pind.3 , Links , Rechts , 1)
   '                                               ^--- 1 means wait for change which blocks programflow
   '                               ^--------^---------- labels which are called
   '              ^-------^---------------------------- port PINs
   Lowerline
   Lcd "B" ; B
  Waitms 10
Loop
End


Links:
  Upperline
  Incr A
  Lcd " left rotation" ; A
Return

Rechts:
  Upperline
  Decr A
  Lcd "right rotation" ; A
Return


End


üdv

Avatar
albinolynx
Tranzisztorgyógyász
Hozzászólások: 161
Csatlakozott: 2007. október 28. vasárnap, 6:00
Tartózkodási hely: Veszprem
Kapcsolat:

HozzászólásSzerző: albinolynx » 2008. április 17. csütörtök, 10:44

RESPECT!


Mar csak mukodesre kell birnom az encodert. Lampa nem szokta zavarni, de adok en neki sotetseget. 10k-t A-B koze...

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10097
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2008. április 17. csütörtök, 11:29

10K-t NE az A+B közé!
Csak a ellenőrzésre gondoltam, hogy az A+GND illetve a B+GND közé rakd. Ha keletkezik némi feszültség ott, akkor azzal tudod mérni.
Illetve felhúzóellenállás+terhelő a enkóderen (felhúzó legyen mondjuk 10k, akkor a elkóderkimenet + GND közé 100k-t rakj.

Ha ezzel sem megy, akkor ciki....

Hülye ötlet: A vevőkapu előtti rész nincsen elkoszolódva? Hajszál, pormacska....

Avatar
albinolynx
Tranzisztorgyógyász
Hozzászólások: 161
Csatlakozott: 2007. október 28. vasárnap, 6:00
Tartózkodási hely: Veszprem
Kapcsolat:

HozzászólásSzerző: albinolynx » 2008. április 17. csütörtök, 12:29

Encoder osszesen kb. 20perc uzemoras. Por, stb nem jatszik, de kifujatom.
Tobbit a leirtak szerint probalom. Koszi!

Avatar
albinolynx
Tranzisztorgyógyász
Hozzászólások: 161
Csatlakozott: 2007. október 28. vasárnap, 6:00
Tartózkodási hely: Veszprem
Kapcsolat:

HozzászólásSzerző: albinolynx » 2008. április 24. csütörtök, 7:56

Ugy nez ki, hogy doglott az encoder. Megneztem masikakat is, nem ertek valamit...

Uj encoder, GND - A channel - szep negyszog jel
GND - B channel - semmi

5V-ot kap, szkop jo, kulso fenyt nem kap, nem nyitott kollektoros az encoder, tehat nem kell ellenallas a mukodesehez. Natur encoder vizsgalom, nincs csatlakoztatva semmihez.

A poen, hogy van bontott encoderem is. Tipus ua., eredmeny is ua. Tehat A channel ok, B rossz.


Mit javasoltok? En rontok el valamit?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10097
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2008. április 24. csütörtök, 8:29

A B csatorna kimenetet nem nem cserélted fel?

Avatar
albinolynx
Tranzisztorgyógyász
Hozzászólások: 161
Csatlakozott: 2007. október 28. vasárnap, 6:00
Tartózkodási hely: Veszprem
Kapcsolat:

HozzászólásSzerző: albinolynx » 2008. április 24. csütörtök, 8:40

Ezt nem ertem. Nincs mit felcserelni. GND-re a merofej GND reszet kotottem. A csucsot pedig eloszor A-ra, majd B-re. A-nal van negyszogjel, B-nel nincs.

Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 186
Csatlakozott: 2008. február 17. vasárnap, 7:00
Tartózkodási hely: Szuhakálló

HozzászólásSzerző: kefeur » 2008. április 24. csütörtök, 19:22

Jóestét mindenkinek!
Nekem az enkóderrel az a gondom , hogy forgatva lehet érezni a pzíciókat -24 et 1 körfordulat alatt .
1 pozícióugrás viszont 4 impulzus-t jelent a 2313 szerint .
Amiből származik az enkóder ott 1-1 volt a pozíció/impulzus arány.
Ezt programozva tudnám csak elérni vagy van más módszer is ?
( nemtudom érthető volt e a magyarázat)

a másik dolog : 1 bizonyos forgatási sebesség fölött elkezd össze vissza le-föl számlálni .
Az eredeti helyén ott vígan tudta ezt a sebességet !!!
Ez mi lehet kifogytam az ötletekből.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10097
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2008. április 24. csütörtök, 20:01

Hamar téveszt:
- INT alapú a számolás és túl gyorsan jön a következő.

Tipp:
- Külső órajel 20 MHzre
- az INT rutint le kell rövidíteni


A 4 impulzus gyanús: Nem kapcsolós véletlenül az enkóder? Azza nem optikai hanem mechanikai?

Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 186
Csatlakozott: 2008. február 17. vasárnap, 7:00
Tartózkodási hely: Szuhakálló

HozzászólásSzerző: kefeur » 2008. április 24. csütörtök, 20:06

Ezek mind mechanikusak , és tudták az autócd ben a dolgukat .
2 leddel megnéztem kézzel fogatva jól működik , és kb 96 váltás/fordulat.
Pont úgy néz ki mint a Bascom súgóban lévő!

16 mhz ről megy ha minden igaz

Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

HozzászólásSzerző: gerry » 2008. április 25. péntek, 5:39

Én mikor teszteltem a Bascom "encoder" programot, akkor arra a jelenségre figyeltem fel, hogy feszültség alá helyezve az áramkört és az enkoderhez nem nyúlva, egyett lépett "-,+" irányba. De nem mindig, szerintem az enkoder állapotától függött, milyen állásban hagytam. Kicsit zavaró volt .

Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 186
Csatlakozott: 2008. február 17. vasárnap, 7:00
Tartózkodási hely: Szuhakálló

HozzászólásSzerző: kefeur » 2008. április 25. péntek, 19:56

Igen , tapasztaltam én is.
Az is fura nem mindegy milyen sebességgel forgatom az enkódert .
Ha túl gyorsann forgatom oda-vissza lépeget!!
A lassabbat azt szereti .
Robert írta "az int rutint le kell rövidíteni " , nem értem miről beszél ?
Az én programomban nincs ilyen utsítás.


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég