Potenziometro digitale
9 Anni 6 Mesi fa #16
da Lello Guidi
Risposta da Lello Guidi al topic Potenziometro digitale
Si, ho usato il protocollo SPI con un potenziometro MCP4161.
Come micro ho usato il 18F4550 su una Freedom Light.
Come ambiente di sviluppo uso MPLABXIDE e XC8.
Saluti
Lello
Come micro ho usato il 18F4550 su una Freedom Light.
Come ambiente di sviluppo uso MPLABXIDE e XC8.
Saluti
Lello
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Lello Guidi
- Autore della discussione
- Platinum Member
Riduci
Di più
9 Anni 6 Mesi fa #17
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Potenziometro digitale
Un'alternativa potrebbe anche essere quella di usare un potenziometro digitale da 5V e usare poi un amplificatore operazionale alimentato alla tensione d'interesse (considerando il valore massimo delle uscite) posto in configurazione non invertente e con guadagno opportuno per raggiungere la tensione massima voluta al valore massimo in uscita dal potenziometro (ovvero quando il centrale virtuale e' collegato a Vcc).
Saluti,
Mauro
Saluti,
Mauro
Ringraziano per il messaggio: vito1984
Si prega Accedi o Crea un account a partecipare alla conversazione.
9 Anni 6 Mesi fa #18
da vito1984
Risposta da vito1984 al topic Potenziometro digitale
Ciao a tutti,
sto utilizzando il PIC16f877A per pilotare il potenziometro digitale ad5290, mediante la SPI. Prima di realizzare il circuito ne sto simulando il funzionamento mediante Proteus 8.0, in cui ho a disposizione entrambi i componenti.
Seguendo i datasheet del pic e del potenziometro ho scritto una piccola routine di codice, in cui inizializzo la SPI del Pic programmando i due registri di stato e di controllo. Ho difficoltà nella comprensione e utilizzo del registro SSPBUF: nel codice ho passato ad esso il byte con il quale programmare il valore della resistenza del potenziometro, ma non sembra funzionare per niente. Allego lo schematico e il codice
void main (void)
{
TRISC3=0; //bit SCK impostato come uscita
TRISC5=0; //bit SDO impostato come uscita
TRISD0=0; //bit RD0 impostato come uscita per pilotare il Chip Select del potenziometro
SSPSTAT = 0b00000000;
SSPCON = 0b00100001;
RD0=1;
RD0=0;
unsigned char data_out = 0x11; /*valore esadecimale con cui programmare il potenziometro*/
SSPBUF = data_out;
RD0=1;
}
sto utilizzando il PIC16f877A per pilotare il potenziometro digitale ad5290, mediante la SPI. Prima di realizzare il circuito ne sto simulando il funzionamento mediante Proteus 8.0, in cui ho a disposizione entrambi i componenti.
Seguendo i datasheet del pic e del potenziometro ho scritto una piccola routine di codice, in cui inizializzo la SPI del Pic programmando i due registri di stato e di controllo. Ho difficoltà nella comprensione e utilizzo del registro SSPBUF: nel codice ho passato ad esso il byte con il quale programmare il valore della resistenza del potenziometro, ma non sembra funzionare per niente. Allego lo schematico e il codice
void main (void)
{
TRISC3=0; //bit SCK impostato come uscita
TRISC5=0; //bit SDO impostato come uscita
TRISD0=0; //bit RD0 impostato come uscita per pilotare il Chip Select del potenziometro
SSPSTAT = 0b00000000;
SSPCON = 0b00100001;
RD0=1;
RD0=0;
unsigned char data_out = 0x11; /*valore esadecimale con cui programmare il potenziometro*/
SSPBUF = data_out;
RD0=1;
}
Si prega Accedi o Crea un account a partecipare alla conversazione.
- vito1984
- Junior Member
Riduci
Di più
- Messaggi: 31
- Ringraziamenti ricevuti 0
9 Anni 6 Mesi fa #19
da alfa75
Risposta da alfa75 al topic Potenziometro digitale
Ciao Vito
se usi XC8 ti conviene utilizzare la funzione WriteSPI( unsigned char data_out )
poi se vai sul libro di Mauro c'e un capitolo dedicato allo SPI con degli esempi
Ciao
Andrea
se usi XC8 ti conviene utilizzare la funzione WriteSPI( unsigned char data_out )
poi se vai sul libro di Mauro c'e un capitolo dedicato allo SPI con degli esempi
Ciao
Andrea
Ringraziano per il messaggio: vito1984
Si prega Accedi o Crea un account a partecipare alla conversazione.
- alfa75
- Platinum Member
Riduci
Di più
- Messaggi: 527
- Ringraziamenti ricevuti 86
9 Anni 5 Mesi fa #20
da vito1984
Risposta da vito1984 al topic Potenziometro digitale
Ti ringrazio Andrea, ho scaricato il libro e ho letto il capitolo dedicato all'SPI.
Comunque ho trovato l'errore nel codice, ossia, sbagliando, impostavo tutti i bit dei registri di stato e di controllo quando dovevo solo impostare i primi due del registro di stato e gli ultimi 5 di quello di controllo.
Comunque ho trovato l'errore nel codice, ossia, sbagliando, impostavo tutti i bit dei registri di stato e di controllo quando dovevo solo impostare i primi due del registro di stato e gli ultimi 5 di quello di controllo.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- vito1984
- Junior Member
Riduci
Di più
- Messaggi: 31
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.