Rotary Encoder (forgókapcsoló)

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
rzoli86
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2006. július 31. hétfő, 6:00

Hozzászólás Szerző: rzoli86 »

Sziasztok,

már két napja küzdök a következő problémával. Remélem tudtok valami megoldást, mert én már idegroncs lettem.

Tehát három 7 szegmenses kijelzőt vezérelek attiny2313-mal, adatbevitelre egy Bourns ECW1J enkódert használok. A kijelzőkön a számok megjelenítéséhez egy tömbben tárolok bináris adatot, majd a tömb 1...10 elemeit írom ki a PortB-re. A tömb elemeire egy i nevű változó mutat, amit az enkóder forgásirányának megfelelően növelnék vagy csökkentenék. A programkód hozzá így néz ki:

Interrupts...
Int0...
...
On int0 Getencoder
...
Getencoder:
waitms 5
If pind.2 = 1 then
if pind.3 = 1 then
decr i
end if
else
incr i
end if
gifr=6
return

A probléma az, hogy csökkenteni csökkenti, ám amikor növelni kéne, akkor valami ilyesmit csinál az értékekkel: 1-2-3-4-4-4-4-3-2-1-1-1-2-3-4-4-4-4
azaz elkezdi növelni, majd pár kattintásig semmi, aztán csökkenti, utána meg megint növeli. Mi lehet a probléma? Én már megpróbáltam külön IF-be tenni, mindent, de egyszerűen nem jövök rá a megoldásra.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Interrupts...
Int0...
...
On int0 Getencoder
...
Getencoder:
waitms 5
If pind.2 = 1 then
if pind.3 = 1 then decr i else incr i
end if
gifr=6
return


Prell? 10-100 nF a kapcsokon?
Avatar
rzoli86
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2006. július 31. hétfő, 6:00

Hozzászólás Szerző: rzoli86 »

Hello,

igen, prell volt a baj. Az adatlap szerint 5msec a prell időtartama, de az sok. 1msec-en jobb volt, most 200 mikrosec a debouncetime, és tökéletes.

Köszi a segítséget!
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

Hozzászólás Szerző: Bence »

Sziasztok!

Valaki tud mondani olyan forgókapcsolót (típus számot, vagy, hogy hol lehet venni) ami ugy működik, mint a 17. fejezetben (Enkóderek) az "Egy 'speciális' enkóder"? És még egy kérdés: létezik olyan, mint egy tolós potméter, csak nem az ellenállását változtatja, hanem ha felfelé tolom, akkor A lábon ad jeleket, ha lefelé akkor B lábon?
Bence
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Olyan nincsen! De ha oldalára fordítod, és kart teszel rá tologathatod mint 1 Joystick-ot! Esetleg valamilyen gyorsító áttételt is tehetsz rá!
Különben google.hu a barátod!
:)
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

Hozzászólás Szerző: Bence »

:( Tudom, hogy a google a barátom ( :D ), egész nap kerestem is, de nem találtam, ezért gondoltam, hogy írok ide. Az első kérdésemre is tudsz/tudtok válaszolni?
Bence
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

Hozzászólás Szerző: Bence »

"Tolós rotary encoderre" ( :D ) egy ötlet eszembe jutott: kell egy tolós potméter és figyelni kell, hogy amikor nő az értéke -> A lábon jelek, amikor csökken -> B lábon jelek. Ezt hogyan lehet megvalósítani, ADC? És ha igen melyik a legkisebb chip amelyikben van. Esetleg valahogy AVR nélkül, mert amit tervezek kéne bele kb öt ilyen, és így elég kölcséges lenne így.
Bence
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

Hozzászólás Szerző: herc1234 »

RC tag mérése ha C állandó.
GETRC parancs asszem
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Itt van 2db jó min. Digital! Reggelni kel!
http://www.lomex.hu/

182kB ENCODER ECW1J-B24-AC0024L (BOU) RoHS DIGITAL CONTACTING ENCODER
:evil: 5perc guglizás volt!

Optikai ez biztos nem prelez!
https://www.hqelektronik.hu/info/hu/em1 ... l032s.html
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2009. március 14. szombat, 19:32-kor.
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

Hozzászólás Szerző: Bence »

Köszi, de ez (ECW1J-B24-AC0024L) nem úgy működik, mint a "Speciális enkoder".
RC tag mérése ha C állandó.
GETRC parancs asszem
Lehet, hogy hülye kérdés, de ezt, hogy? :oops:
Bence
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Tolópotira minek rotary enkóder?
Ahogy megoldanám:
- Tolópoti ADCre.
- 2 kiemnet kell hozzá, és azt kapcsolgatod az ADC értékének megelelően. De fontos, hogy lépcsőnként kell növelni/csökkenteni a lépseket, nem lehet hogy beolvasom az ADC-t és abból generálom a jelet simán... Változtatni kell (mi van ha lerántod maxból min-be)?

1 tolópoti 3 lábat jelent így.
1 AVRben van 6/8/16 ADC (M8DIP:6db) és van is ennek megfelelő láb kimenetnek:). De miért kell ez a fajta kimenet?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Bence írta:Köszi, de ez (ECW1J-B24-AC0024L) nem úgy működik, mint a "Speciális enkoder".
RC tag mérése ha C állandó.
GETRC parancs asszem
Lehet, hogy hülye kérdés, de ezt, hogy? :oops:
=>Bascom súgóban ott a kép is....
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Miért szerinted milyen a speciális encoder?
:?:
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

Hozzászólás Szerző: Bence »

Az egész arra kell, hogy a VirtualDj nevű programhoz szeretnék egy vezérlőt (hasonlót mint ami itt van: http://www.djstore.hu/webshop/productlist.php?prod=25). A programban minden funkcióhoz lehet billentyű(kombináció)t hozzárendelni és ezért azt találtam ki, hogy szétszedek egy billentyűzetet, és aztán azzal összerakom a vezérlőt. A Play gomb meg hasonlók még egyszerű, a jog tárcsát úgy képzeletem el, hogy lesz egy "Speciális enkoderhez" hasonló rotary enkoder és amikor jobbra forgatom, akkor a GND és a B-re kötöm, be a pl. jobbra gombot. (Ha jobbra forgatom akkor "lenyomja" a jobbra gombot). Ha nem találok ilyen enkodert akkor kell egy Tiny13 és azzal megoldom.
A tolos potméter a crossfader vagy tempo álltáshoz kellene és ugyanugy gondoltam, mint a tárcsát, amikor feltolom "lenyomja" a pl. fel gombot.
Bence
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hát, nem az a hűde triviális feladat...
A tolópotit inkább ne akard így enkóderré alakítani:) Az ADC mért érték másra is jó lesz még.....

A jobbra forgatok és a jobbot nyomja, balra meg a balt: hagyományos enkóderrel is meg tudod oldani... és az beszerezhetőbb:).
Válasz küldése