Fork me on GitHub

17/10/14

PIC: MCP41XXX

PIC: MCP41XXX



MCP41XXX é um potenciômetro digital de 256 posições ( 8 bits ). Estes são úteis quando queremos controlar o volume do som ou de uma iluminação em seu quarto sem precisar girar o eixo de um potenciômetro manualmente. Graças a estes chips podemos controlar um potenciômetro usando sinais digitais.

O MCP41XXX utiliza a comunicação SPI.

Os pinos PA0 e PB0 são os terminais do potenciômetro e PW0 é o terminal variável.

Está disponível em três versões: 10K ( MCP41010 ), 50K ( MCP41050 ) e 100K ( MCP41100 ).

BIBLIOTECA
MikroC PRO PIC
extern sfr sbit MCP41XXX_CS;
extern sfr sbit MCP41XXX_CS_Direction;

void MCP41XXX_Set_Pot( char value )
{
   MCP41XXX_CS_Direction = 0;
   MCP41XXX_CS = 0;
   Soft_SPI_Write( 0b00010001 );
   Soft_SPI_Write( value );
   MCP41XXX_CS = 1;
}


EXEMPLO
/*
   PROJETO: MCP41XXX, Potenciometro Digital
   MCU: PIC12F675
   CLOCK: INTOSC 4MHz
   COMPILADOR: MikroC PRO PIC v6.4.0
   AUTOR: Tiago Henrique
   
   Ativar as seguintes bibliotecas:
   - Software_SPI
*/

//Copie e cole a biblioteca aqui!!!

//Define os pinos de ligacao do MCP41XXX
sbit SoftSPI_Clk at GP0_Bit;
sbit SoftSPI_SDO at GP1_Bit;
sbit SoftSPI_SDI at GPIO.B7; //nao utilizado
sbit MCP41XXX_CS at GP2_Bit;
sbit SoftSPI_Clk_Direction at TRISIO0_Bit;
sbit SoftSPI_SDO_Direction at TRISIO1_Bit;
sbit SoftSPI_SDI_Direction at TRISIO.B7; //nao utilizado
sbit MCP41XXX_CS_Direction at TRISIO2_Bit;

void main()
{
char valor = 0;
    ANSEL = 0; //desativa o canal analogico
    CMCON = 7; //desativa o comparador analogico
    
    Soft_SPI_Init(); //inicia a emulacao do SPI
    
    while(1)
    {
        MCP41XXX_Set_Pot( valor++ );
        Delay_ms( 10 );
    }
}

2 comentários:

Postagens Relacionadas!!