Sari la conținut
ELFORUM - Forumul electronistilor

Encoder ED16111O


Ionut Remus

Postări Recomandate

Vreau sa folosesc acest model de encoder cu un atmega si nu-i gasesc nicicum datasheetul! ma poate ajuta cineva cum trebuie sa fac softul sau ce specificatii are macar encoderul? L-am montat pe A si B cu un condesator la masa si cate o rezistenta de 10k la +5V iar C se duce si el la masa. Acum ne avand datasheet presupun ca am gresit undeva si probabil nu sunt pinii respectivi care am crezut eu ca sunt A;B;C si nici nu stiu cum sa-l testez sa vad daca e ok cum am safut sau nu!Poate cineva sa-mi spuna mai multe detalii despre acest encoder cat si cum sa ii fac softul? (macar sa am un "start" ca restul ma mai descurc eu )

Link spre comentariu
  • Răspunsuri 3
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Ionut Remus

    2

  • ywar2

    1

  • nico_2010

    1

Zile populare

Top autori în acest subiect

Salut,

Am folosit un asemenea encoder intr-un proiect si a mers fara probleme. Pinul din mijloc se conecteaza la masa , iar cei de pe margine fara rezistente la pinii A si B. Nu stiu daca te ajuta dar iata varianta simplificata a programului meu.

Succes !!!

'*******************************************************************************'                     RCI2950DX CPU Experimental Board''                                 YO7FWS'*******************************************************************************$regfile = "M8def.dat"$crystal = 4000000'setari afisaj LCDConfig Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0Config Lcd = 16 * 2Deflcdchar 0 , 31 , 16 , 16 , 16 , 16 , 16 , 16 , 31        ' replace ? with number (0-7)Deflcdchar 1 , 31 , 32 , 32 , 32 , 32 , 32 , 32 , 31        ' replace ? with number (0-7)Deflcdchar 2 , 31 , 1 , 1 , 1 , 1 , 1 , 1 , 31              ' replace ? with number (0-7)Deflcdchar 4 , 31 , 32 , 31 , 31 , 31 , 31 , 32 , 31        ' replace ? with number (0-7)Deflcdchar 3 , 31 , 16 , 23 , 23 , 23 , 23 , 16 , 31        ' replace ? with number (0-7)Deflcdchar 5 , 31 , 1 , 29 , 29 , 29 , 29 , 1 , 31          ' replace ? with number (0-7)Dim Control8 As ByteDim Control16 As WordDim Freq As Long                                            'frecventa de lucruDim N1 As WordDim N2 As WordDim N3 As SingleDim Tune As Bit                                             'indica daca s-a schimbat frecventa sau nuDim Freqlcd As String * 6                                   'Dim Freq_mem As Eram Long                                   'memoreaza frecventa in memoria ERAMDim S As String * 10'*******************************************************************************'encoderConfig Portd.2 = InputConfig Portd.3 = InputA Alias Pind.2                                              'upB Alias Pind.3                                              'down'MC145162Config Portd.5 = OutputConfig Portd.6 = OutputConfig Portd.7 = OutputClk Alias Portd.5Dat Alias Portd.6Enb Alias Portd.7Portd = &B00001100'*******************************************************************************'rutineDeclare Sub EcranDeclare Sub Init_pllDeclare Sub Set_pllDeclare Sub Freq2dataConfig Int0 = FallingConst Debouncetime = 1                                      'Set BOn Int0 GetencoderEnable InterruptsEnable Int0'*******************************************************************************'                                 PROGRAMUL'*******************************************************************************         Cls         Locate 1 , 1         Lcd " RCI2950DX TEST "         Freq = Freq_mem         If Freq < 240000 Or Freq > 320000 Then Freq = 285000       'valabil la prima pornire         Call Ecran         Call Freq2data         Call Init_pll         Call Set_pll         Tune = 0Loop:         'daca frecventa s-a schimbat atunci                                             'afisez frecventa,                                             'setez PLL,                                             'salvez in memorie frecventa         If Tune = 1 Then            Call Ecran            Freq_mem = Freq            Call Freq2data            Call Init_pll            Call Set_pll            Tune = 0         End IfGoto Loop'*******************************************************************************'                                  Freq2data'*******************************************************************************Sub Freq2data         '..........End Sub'*******************************************************************************'                                    init PLL'*******************************************************************************Sub Init_pll         '..........End Sub'*******************************************************************************'                                     Set PLL'*******************************************************************************Sub Set_pll         '..........End Sub'*******************************************************************************'                                     ENCODER'*******************************************************************************Getencoder:         Waitms Debouncetime         If A = 0 Then            If B = 0 Then               Freq = Freq + 1            Else               Freq = Freq - 1            End If         End If         Gifr = 64         Tune = 1Return'*******************************************************************************'                                     ECRAN'*******************************************************************************Sub Ecran:         Freqlcd = Str(freq)         Freqlcd = Format(freqlcd , "00000.0")         Locate 2 , 1         Lcd Freqlcd         Lcd " KHz"End Sub'*******************************************************************************'                                        END'*******************************************************************************
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări