Autor Tema: como usar el potenciometro digital MCP41xxx con pic16f873 en lenguaje C  (Leído 3038 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado leacipo

  • PIC10
  • *
  • Mensajes: 1
Que tal amigos, les estaré eternamente agradecido si pueden ayudarme con esto. El problema es que al parecer el micro no manda nada al potencimetro, y estoy teniendo en cuenta lo del CS, que esté en nivel bajo mientras se envia y luego lo levanto. Si me pueden mandar un programa como ejemplo se los voy a agradecer.
Deesde ya muchas gracias.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
RE: como usar el potenciometro digital MCP41xxx con pic16f873 en lenguaje C
« Respuesta #1 en: 02 de Diciembre de 2005, 02:44:00 »
Yo hace un tiempo utilicé el X9313 (de Xicor) pero... el programa lo tengo en asm. Si de todas formas crees que te puede ayudar, hazmelo saber.

Un saludo desde Alicante.

Desconectado omix

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 244
RE: como usar el potenciometro digital MCP41xxx con pic16f873 en lenguaje C
« Respuesta #2 en: 02 de Diciembre de 2005, 15:15:00 »
Hola, yo use esos potenciometros para unas pruebas y era muy sencillo el manejarlos. Simplemente tienes que enviar un byte con el comando de escritura y numero el pote  que quieres cambiar, seguido del valor que quieres poner en el pote. Por ejemplo, para poner el pote al 50% de su valor tendrias que enviar el comando 0bxx01xx01 seguido del dato 0b10000000, las xx pueden ser 0"s o 1"s es indistinto, el 01 de mas a la izquierda es el  comando de escritura en el pote y el de mas a la derecha es para indicar que vamos a escribir en el pote 0.

Hacer esto que te comento en C es muy simple si tienes ya una libreria que maneje el SPI, sino sera algo mas complicado, pero no mucho mas. Suponiendo que dispones de dicha libreria lo unico que tendrias que hacer es:

CS = 0;
spi_writeData(0b00010001);// se han sustituido las xx anteriores por 0"s
spi_writeData(0b10000000);//dato = 128, valor para poner el pote al 50%
CS = 1;

Donde spi_writeData seria la rutina que realiza la escritura a traves del bus SPI.

Un saludo y espero que te sirva.