Vai al contenuto
PLC Forum


Encoder


sil1975

Messaggi consigliati

ciao

ho avuto la brillante idea di acquistare su internet un encoder rotativo della ALPHA (non c'è nessuna altra sigla) per pochi euro per studiarne il funzionamento e vedere se poteva essermi utile come componente

il componente è simile ad un potenziometro senza inizio e fine ... con tanti scatti

ho trovato su internet che le uscite sono gray sfalsate di 90°

solo che per capire il funzionamento dovrei sapere come si collega e quale è la sua piedinatura. su internet non ho trovato nulla.

ho visto che ha 3 piedini da un lato e 2 dalla parte opposta ma da quello che ho capito le uscite dovrebbero essere 2 più il comune quindi in totale 3 piiedini ...

sapete aiutarmi ? mi basta poco per poter iniziare a studiarci ...

grazie

Link al commento
Condividi su altri siti


non dico nulla ...

i due pin sono un pulsante

i tre pin sono A - B - C come da schema allegato al componente

in più su internet ho trovato questo schema che volevo provare

non ha istruzioni ma penso che sulle uscite si dovrebbe avere 1 o 0 a seconda dell'avanti o indietro che potrebbe essere utile per interfacciare il decoder con il pic ...

è giunta l'ora di sperimentare (oggi vedo di recuperare quei 2 componenti)

ecco l'interfaccia

http://web.tiscali.it/ifachsoftware/ita/Scanner/Encoder.gif

a presto

Link al commento
Condividi su altri siti

In questo disegno c'e' praticamente tutto quello che serve sapere:

user posted image

non l'ho fatto io, me l' ero salvato tempo fa.

Complimenti all' autore.

Prova a dare un' occhiata a questo pdf:

Link

oltre a una bella spiegazione, alla fine e' illustrato il codice in basic.

Ne ho acquistati una decina completi di manopole a 10$ su ebay, ma devo ancora trovare il tempo per sperimentare. sad.gif

Link al commento
Condividi su altri siti

E' semplicissimo, non c'è bisogno di alcun datasheet.

ogni volta che fa uno scatto entrambe le uscite si muovono, ma si muovono con una sfasatura di 90° necessaria per conoscere la direzione di rotazione.

Il circuito con i TTL è inutile se si collega ad un micro, la decodifica si può fare tranquillamente via software.

Link al commento
Condividi su altri siti

Nikiki+21/01/2010, 03:47--> (Nikiki @ 21/01/2010, 03:47)

Ho capito ma probabilmente dovrei mettere +5V sul neutro dell'encoder e far uscire il segnale dalle due uscite

ho provato con il tester ed il cambio di codice è velocissimo, dovrei far funzionare il pic con un 20 MHz come oscillatore ...

Link al commento
Condividi su altri siti

Il collegamento tipico è con il comune (o neutro come lo chiami tu) a massa e le due uscite sugli ingressi del micro con un pull-up (che spesso è configurabile già all'interno del micro).

Il clock del micro non è necessario che sia alto, tu passi da un'estremità all'altra, dalla lettura di un tester (che è lentissimo) ad un clock da 20 Mhz.

Non ti preoccupare, qualsiasi clock è in grado di leggere il tuo encoder. smile.gif

Link al commento
Condividi su altri siti

Come scrive giustamente Nikiki non ti far ingannare delle letture con il multimetro, anzi i chip sono cosi' veloci nel rilevare i cambi di stato che uno dei problemi tipici e' la gestione dei rimbalzi.

Ho fatto delle prove (veloci), altrimenti c'e' il rischio che tutti quegli encoder che ho comprato finiscano nel solito cassetto.smile.gif

I miei "rotativi" hanno 3 pin, la scarna descrizione dice "Pulse: Connect PIN1 (or PIN3) and PIN2", in pratica il centrale e' il comune e i due laterali danno la cadenza.

Il circuito su breadboard e' questo:

user posted image

Ho usato il quarzo perche' il tutto era gia' in parte cablato per altre prove, ma si puo' usare tranquillamente l' oscillatore interno.

I led si accedono ad ogni impulso di rotazione rilevato, rispettivamente a seconda che sia orario o antiorario.

Questo e' il listato di test (picbasic), non usa interrupt e sembra funzionare bene:

'----- ROUTINE ENCODER ROTATIVO -----

' PIC16F628(A)

'

'----- Collegamenti ------

' PIN17 (RA0) -> 330ohm -> LED -> GND

' PIN18 (RA1) -> 330ohm -> LED -> GND

' PIN15,PIN16 -> Quarzo 4MHz con 2X22pF a GND

' PIN12 (RB6) -> 10K -> +5VDC (pullup)

' PIN13 (RB7) -> 10K -> +5VDC (pullup)

' PIN4 (MCLR) -> 10K -> +5VDC (pullup)

' PIN5 -> GND

' PIN14 -> +5VDC

'

'--- ENCODER ---

' COMUNE -> GND

' PIN MOVIMENTO -> PIN12 (RB6)

' PIN MOVIMENTO -> PIN13 (RB7)

'-----------------------------------------------

DEFINE OSC 4 ' 4 MHz

CMCON = %00000111 ' Disattiva i comparatori (CMCON=7)

OldPos VAR BYTE ' Posizione Precedente

NewPos VAR BYTE ' Posizione Successiva

Led1 VAR PORTA.0 'LED RA0

Led2 VAR PORTA.1 'LED RA1

' Flash dei LED per verifica run

HIGH led1 'ON

PAUSE 100 '100msec

HIGH led2 'ON

PAUSE 100 '100msec

LOW led1 'OFF

LOW led2 'OFF

'***** ROUTINE ENCODER *****

Start:

OldPos = (PORTB & %11000000)>>6 ' AND Maschera per estrazione bit RB6-RB7 (>>6 =Shift a dx 6 bit)

NewPos = OldPos

WHILE NewPos=0 OR NewPos=3 ' Attende movimento

NewPos = (PORTB & %11000000)>>6 ' Maschera per bit RB6-RB7

WEND

' Movimento rilevato...

PAUSE 20 ' 20msec antirimbalzo

NewPos=NewPos ^ OldPos ' XOR tra i valori "Dopo" e "Prima"

SELECT CASE NewPos ' 1 (orario) o 2 (antiorario)

CASE 1 ' Rotazione Oraria Flash LED1

HIGH Led1 ' LED1 ON

PAUSE 50 ' 50msec

LOW Led1 ' LED1 OFF

CASE 2 ' Rotazione Antioraria Flash LED2

HIGH Led2 ' LED2 ON

PAUSE 50 ' 50msec

LOW Led2 ' LED2 OFF

END SELECT

GOTO Start

'***** FINE ROUTINE ENCODER *****

'----------------------------------------------------

Questo e' il dump HEX del codice compilato, e' per un 16F628 :

:020000040000FA

:100000003428A301A200FF30A207031CA307031C8E

:100010002F280330A100DF300F200328A101E83E84

:10002000A000A109FC30031C1828A00703181528FC

:10003000A0076400A10F152820181E28A01C222844

:100040000000222808000310A10CA00CFF3E03189A

:10005000232820082F280404031DFF302F28831392

:10006000031383126400080007309F0005148316F1

:1000700005106430831201208514831685106430C6

:100080008312012005108316051083128510831634

:1000900085108312C0300605B800B9013808A000E9

:1000A0003908A10006302620BD003D08BC003C08F0

:1000B000003C031DFF30FF3AB8003C08033C031D21

:1000C000FF30FF3ABA00380884003A082B20BA0003

:1000D000BB0064003A083B0403197A28C0300605C7

:1000E000B800B9013808A0003908A1000630262060

:1000F000BC005728143001203D08BC0664003C08B1

:10010000013C031D8E28051483160510323083121E

:10011000012005108316051083129D2864003C08F9

:10012000023C031D9D2885148316851032308312EE

:0C013000012085108316851083124A28D8

:02400E006D3F04

:00000001FF

Copia/incolla in un editor ascii (es. notepad, NO Word) le righe che cominciano con ":".

Disattiva "A capo automatico" e salvalo con un nome a piacere usando l' opzione "Tutti i file", dandogli estesione ".HEX".

Apri il file salvato con il software che usi per programmare i PIC, ecc.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...