Potenciometro Digital AD5171

Este ejemplo muestra cómo controlar un Potenciómetro digital Analog Devices AD5171 que se comunica a través del protocolo serie síncrono de I2C. El uso de I2C de Arduino con la biblioteca Wire, el potencómetro digital pasa a través de 64 niveles de resistencia, consiguiendo el desvanecimiento de un LED.

El protocolo I2C implica el uso de dos líneas para enviar y recibir datos: un pin de reloj serie (SCL) que la placa Maestra Arduino o Genuino envía pulsos a intervalos regulares, y un pin de datos serie (SDA) sobre la cual se envían los datos entre los dos dispositivos. Como los cambios en las líneas de reloj de nivel LOW a nivel HIGH (conocido como el flanco de subida del pulso de reloj), un único bit de información - que va a formar en la secuencia de la dirección de un dispositivo específico y manda un comando de datos - se transfiere desde desde la placa al dispositivo I2C sobre la línea SDA. Cuando se envía esta información - bit a bit -, la llamada del dispositivo ejecuta la solicitud y transmite sus datos de nuevo - si es necesario - a la placa sobre la misma línea utilizando la señal de reloj que sigue siendo generada por el Maestro en SCL como sincronización.

Debido a que el protocolo de 12C permite que cada dispositivo sea habilitado para tener su propia dirección única, y como ambos dispositivos maestro y esclavo se comunican por turnos a través de una sola línea, es posible que la placa Arduino o Genuino se comunique (a su vez) con muchos dispositivos , u otras plataformas, mientras utiliza sólo dos pines del microcontrolador.

Hardware Necesitado

  • 1 Placa Arduino o Genuino
  • 1 Potenciómetro Digital AD5171
  • 1 LED
  • 1 Resistencia de 220 ohm
  • 2 Resistencias de 4.7k ohm
  • Hilo para cableado
  • 1 Protoboard
Circuito
Conectar los pines 3, 6, y 7 del AD5171 a GND, y los pines 2 y 8 a +5V.
Conecte el pin 4, pin de reloj del potenciómetro digital (SCL), al pin analógico 5 en el Arduino, y el pin 5, la línea de datos (SDA), al pin analógico 4. En ambas líneas SCL y SDA, añadir las resistencias de 4.7K ohm como pull-up, a las dos líneas a 5 V.
Por último, un terminal del LED al pin 1 del AD5171, con una resistencia de 220 ohmios en serie.



Cuando el pin del AD5171 6, ADO, está conectado a tierra, su dirección es 44. Para añadir otro potenciómetro digital al mismo bus SDA, conecte el pin ADO del segunda potenciómetro a + 5V, cambiando su dirección a 45.Sólo se pueden utilizar dos de estos potenciómetros digitales al mismo tiempo.

Esquema

Código


// Potenciometro Digital I2C
// por Nicholas Zambetti <http://www.zambetti.com>

// y Shawn Bonkowski <http://people.interaction-ivrea.it/s.bonkowski/>
// Demuestra el uso de la biblioteca  Wire
// Contro de potenciometro digital
AD5171  via I2C/TWI
// Creado el 31 Mazo de 2006
// Este codigo es de dominio publico


#include <Wire.h>

void setup() {
Wire.begin()    // unirse a bus I2C (dirección de maestro opcional )
}
byte val = 0;

void loop() {
  Wire.beginTransmission(44); // transmite al device #44 (0x2c)
  // la dirección del dispositivo se especifica en la ficha técnica
  Wire.write(byte(0x00));            // envia la direccion en un byte
  Wire.write(val);             // envia un byte con la direccion del dispositivo
  Wire.endTransmission();     // parada de transmision

  val++;        // incrementa el valor
  if (val == 64) { // si alcanza la posicion 64 (max)
    val = 0;    // empieza de nuevo desde el valor más bajo
  }
  delay(500);
}

No hay comentarios:

Publicar un comentario