Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

[PIC16F88] Interfacciamento joystick mediante adc

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] [PIC16F88] Interfacciamento joystick mediante adc

Messaggioda Foto Utentempeino » 21 giu 2013, 11:43

Ho acquistato un joystick da futura elettronica http://www.futurashop.it/index.php?route=product/product&filter_name=joystick&product_id=5321 .
Volevo provare a pilotare due servo con un pic16f88 che come sappiamo ha un solo adc e può quindi gestire un solo ingresso alla volta da cui prelevare il segnale.
Ingresso che viene selezionato con il registro ADCON0.
Con un solo ingresso adc imposto ADCON0 e vai......ma con un joystick la situazione si complica.

Esempio:
muovo il joystick sull' asse delle x e tutto va bene in quanto l'ingresso è selezionato con ADCON0.

muovo il joystick sull' asse delle y non accade nulla perché l'ingresso non è selezionato è ancora selezionato
l'altro ( quello delle x)

Non riesco a trovare un modo per deselezionare il " vecchio " ingresso per il "nuovo"

Faccio presente che non ho scritto nessun programma questo problema mi blocca.

Massimo.
Avatar utente
Foto Utentempeino
595 4 11
Frequentatore
Frequentatore
 
Messaggi: 117
Iscritto il: 27 mar 2011, 18:21

0
voti

[2] Re: joystick e adc

Messaggioda Foto Utenterusty » 21 giu 2013, 12:06

Potresti risolvere con un multiplexer analogico, ce ne sono vari in commercio, oppure una soluzione dedicata a transistor. L'idea di base è selezionare alternativamente un ingresso (asse x) mandarlo all'ADC, fare la conversione e memorizzarla come asse x, poi selezionare l'altro ingresso (asse y) mandarlo all'ADC, fare la conversione memorizzandola come asse y, e cosi' via.
La frequenza di scambio deve essere decisa in base alla velocita' di conversione dell'ADC (c'è un limite massimo di frequenza dato dalla "lentezza" della conversione) da decidere, ad esempio se tutta la conversione completa impiega 20 us (esempio) scambi gli ingressi ogni 25 us, di modo da fare 40'000 letture (20'000 per "canale") ogni secondo; inoltre il multiplexer avra' una sua frequenza massima data nel suo datasheet.

Un esempio: http://www.analog.com/en/switchesmultip ... oduct.html

Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10

0
voti

[3] Re: joystick e adc

Messaggioda Foto Utentempeino » 21 giu 2013, 12:42

speravo in una soluzione software in quanto se nel PIC c'è la possibilità di avere più ingressi analogici ci sarà un
modo di usarli ???
Avatar utente
Foto Utentempeino
595 4 11
Frequentatore
Frequentatore
 
Messaggi: 117
Iscritto il: 27 mar 2011, 18:21

0
voti

[4] Re: joystick e adc

Messaggioda Foto Utentempeino » 21 giu 2013, 12:55

forse ci sono con l'uso di una routine di interrupt è da provare.....
Avatar utente
Foto Utentempeino
595 4 11
Frequentatore
Frequentatore
 
Messaggi: 117
Iscritto il: 27 mar 2011, 18:21

1
voti

[5] Re: joystick e adc

Messaggioda Foto Utenterusty » 21 giu 2013, 13:12

Per decidere quale canale "guardare" puoi usare il polling, puoi aspettare un interrupt ADC (che va settato e ti dice quando la conversione è finita), puoi fare come vuoi visto che hai piu' canali a disposizione.
Io avevo capito che tu volessi usare un solo canale per piu' ingressi analogici, da li' il multiplexer.

Senza googlare tanto, vai direttamente qui, è sicuramente la fonte piu' affidabile: http://ww1.microchip.com/downloads/en/d ... 30487c.pdf

Da pagina 116 spiega per bene i passi da seguire, in multichannel e con/senza interrupt.
Devi lavorare sostanzialmente con 5 registri (ADCON0, ADCON1,ADSEL,ADRESH,ADRESL).

Io farei un polling, ma se vuoi complicarti un po' puoi usare uno start "triggerato" settando il modulo compare come scritto a pagina 120.

Una lettura piu' approfondita la puoi dare a questo piccolo capolavoro : http://ww1.microchip.com/downloads/en/d ... 33023a.pdf

Tutto cio' che trovi in rete deriva da questi documenti, tanto vale leggere direttamente la fonte :ok:
Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10

0
voti

[6] Re: [PIC16F88] Interfacciamento joystick mediante adc

Messaggioda Foto Utentempeino » 21 giu 2013, 14:07

non so se puoi fare un polling in quanto se si considera che il joystick è in posizione centrale si avrà sul pin interessato una tensione di circa 2.5 V che non è ne zero ne uno secondo me.......
Avatar utente
Foto Utentempeino
595 4 11
Frequentatore
Frequentatore
 
Messaggi: 117
Iscritto il: 27 mar 2011, 18:21

0
voti

[7] Re: [PIC16F88] Interfacciamento joystick mediante adc

Messaggioda Foto Utenterusty » 21 giu 2013, 14:21

Non sapevo come è il segnale che arriva dal joystick, nel tuo caso ci vuole una pre-elaborazione del segnale con qualche operazionale, penso. Ma aspetta pareri piu' autorevoli, e metti magari le specifiche del joystick altrimenti se ad ogni post dici una cosa in piu' non la finiamo manco a natale, specifica bene il tipo di segnale che arriva e quanti sono.
Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10


Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti