rotary encoder + Bascom

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
broland
Tranzisztorgyógyász
Hozzászólások: 152
Csatlakozott: 2009. április 20. hétfő, 6:00

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

Szia Puzzafutar

És az a HDD motor csak egyszerűen a procira van kötve, vagy van közötte valami illesztő fokozat is? (nem szeretném a cuccot hazavágni!!!)

Előre is köszi.

Üdv Roland
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Hi Roland!
Félreértetted a témát!
Nem a HD motor meghajtásról van szó, hanem a benne levő jeladóról.
Amit a motor fordulatszámának szinkronban tartására használnak.

:)
Avatar
broland
Tranzisztorgyógyász
Hozzászólások: 152
Csatlakozott: 2009. április 20. hétfő, 6:00

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

Szia Kapu48

Sajnos nekem csak olyan motorom van amiből 3 tyúkbél jön ki, és azok a pikercsei a motornak. Ha azt rákötöm, lehet, hogy indukál olyan delejt, ami a procit a másvilágra löki. :oops: :cry:


Üdv Roland
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Ja igazad van!
Itt illesztette Müv. erősítővel.
http://www.fleurey.com/franck/pmwiki.ph ... HDDEncoder
:?

De még mindég nem tudjuk, hogy 1 fordulatra menyi impulzust kapunk?
Bár ez lehet motortól függő!
:(
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!

Én ezt korábban megépítettem. Nem emlékszem pontosan, hogy mennyi impulzust küldött egy fordulatra, de az biztos, hogy nem volt sok.

Lehet, hogy később előszedem és megnézem nektek.
Bence
Avatar
ampervadasz
Bitmanipulátor
Hozzászólások: 119
Csatlakozott: 2008. január 19. szombat, 7:00

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

Szervusztok AVR Istenei!

Belefutottam egy furcsa encoder-be, amihez az eddig használatos program nem megfelelő működést idézett elő. Biztos, ami biztos rákötöttem szkópra. Az alábbi jelalak figyelhető meg!

Kép

A függőleges vonalak az encoder alaphelyzetben lévő értékeinél van.

Kérlek titeket, segítsetek leprogramozni.

Köszönettel Ampervadasz.
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

ampervadasz írta:Szervusztok AVR Istenei!

Belefutottam egy furcsa encoder-be, amihez az eddig használatos program nem megfelelő működést idézett elő. Biztos, ami biztos rákötöttem szkópra. Az alábbi jelalak figyelhető meg!

Kép

A függőleges vonalak az encoder alaphelyzetben lévő értékeinél van.

Kérlek titeket, segítsetek leprogramozni.

Köszönettel Ampervadasz.
Én is találkoztam valami hasonlóval,de a fiók méllyén landolt :) Kíváncsi vagyok én is a megoldásra, annó nem volt kedvem foglalkozni vele!
Geht nicht, Gibt's nicht!
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

És mi ebben a bonyolult?
A szokásos fel vagy lefutó élre történő megszakítás kérés és megszakításban megvizsgálod a másik jel állapotát.
Nevezzük a felső görbét A-nak, az alsót B-nek.
A –nál lefutó élre INT és ha B = 0 mozgás > ,vagy ha B = 1 < mozgás
És / vagy:
B –nél Felfutó élre INT és ha A = 0 mozgás > ,vagy ha A = 1 < mozgás
8)
Avatar
strigo
DrótVégénSzéndarab
Hozzászólások: 27
Csatlakozott: 2006. február 17. péntek, 7:00

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

Sziasztok!

A két jel a két adatvonal? vagy jobbra és balra?
Ha a két adatvonal, akkor jó lenne látni a másik irányt is!
Üdv:
Zsolt
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Mért nem látod??
Igen 2 adatvonal van összehasonlítva. Annyi a minimum, hogy megtud állapítani a mozgás irányt is.
És az elmozdulás fokát adja az Impulzus*(360/enkóder osztásának száma).
Jobbról balra haladva az egyik irány, balról jobbra a másik irány!
És forduláskór a vizsgált élek mindig átkerülnek a másik oldalra.
Avatar
ampervadasz
Bitmanipulátor
Hozzászólások: 119
Csatlakozott: 2008. január 19. szombat, 7:00

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

Még egyszerűbb lenne a helyzet, ha lehetne invertálni az "A" (felső) jelét... De mivel nem lehet, igy marad kapu48 ötlete. Műszak végén - holnap - ki is próbálom. :D
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

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

miért akarod invertálni?

Int alapon meg foghatod a fel és a lefutó éleket is vagy a változást.

Szerintem is ez a legjobb megoldás én is ezt szoktam használni.
-= STK500 =-
Avatar
tetye
Chipgyilok
Hozzászólások: 279
Csatlakozott: 2007. augusztus 29. szerda, 6:00

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

Sziasztok!
Küzdök egy ilyen:http://www.ia.omron.com/data_pdf/data_s ... csm490.pdf E6A2-CW5 encoderrel.
Ezzel a progival:

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

'MCU
$regfile = "m16def.dat"
$crystal = 8000000

'LCD
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
Initlcd
Cursor Off
Cls

'ADC
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

'FŰTÉS
Config Portd.5 = Output
Triak Alias Portd.5

'SPEAKER
Config Portd.6 = Output
Speaker Alias Portd.6

'MEGSZAKÍTÁSOK
Config Int0 = Falling
Config Int1 = Falling
Enable Interrupts
Enable Int0
Enable Int1
On Int0 Encodera
On Int1 Encoderb

'VÁLTOZÓK
Const Debouncetime = 5
Dim Encounter As Integer
Dim Wait_time As Word
Dim T_ram As Eram Integer
Dim W As Word
Dim I As Integer

'RUTINOK
Declare Sub Encoder_push

'_______________________________________________________________________________


'BOOT
Wait_time = 1000
Lcd "Inicializalas:"
Lowerline
For I = 1 To 16
Lcd "."
Waitms Wait_time
Next I
Cls
Encounter = T_ram

'MAIN

Do
 ' Locate 1 , 1
 ' W = Getadc(0)
  'Cls
 ' Lcd " value: " ; W
  'Lowerline
  Locate 2 , 1
    Lcd Encounter
  Waitms Wait_time
Loop
End

'ÁLLÁS MENTÉSE
Sub Encoder_push:
 T_ram = Encounter

End Sub

Encodera:
  Waitms Debouncetime
  Incr Encounter
  If Encounter > 450 Then Encounter = 450
  Gifr = 64
Return

Encoderb:
  Waitms Debouncetime
  Decr Encounter
  If Encounter < 0 Then Encounter = 0
  Gifr = 128
Return
A bajom az hogy nem tudom hogy lehetne számolni mert ez össze vissza írja most így ki, ami nem is lep meg, mert ugye egyik megszakításból jön a másik ahogy forog és amit számolna fel a következő húzza is le.
Hogy szoktátok ezt csinálni?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Prellegés nem kavar be?
100nF kondi, nem csak belső felhúzóellenállás, hanem külső 1...10k ?
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

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

Ez elektronikus encoder, nem kell pergésmentesíteni. A megszakításban meg nézd meg a másik fázis állapotát, abból derül ki az irány. Nem úgy jönnek, hogy egyik irányban az A-n, a másikban a B-n jön ki imp. (most emiatt fel-le ugrál ugye).
JAni
Válasz küldése