Paso 1: 8 bit DAC y Serial vs paralelo
El TLC7528 es un tipo digital al convertidor de análogo (DAC). Toma de datos digitales (números entre 0 y 255) y un voltaje entre 0 y cualquier tensión suministra el chip con las salidas. La tensión de salida de la DAC se puede calcular según la siguiente ecuación:
tensión de DAC de 8 bits de salida = (voltaje) * (datos de entrada digitales) / 255
En este Instructable, va ser alimentar el DAC de la Arduino construido en fuente de 5V, por lo que la ecuación anterior puede simplificarse a:
salida de voltaje de 8 bit DAC = 5V * (datos de entrada digitales) / 255
De esta ecuación podemos ver que el TLC7528 salida 5V si recibe un valor de 255, 0V si recibe un valor de 0, 2, 5V si recibe un valor de 127 y así sucesivamente. Usted se estará preguntando de dónde proceden los 255, esto es el resultado de la TLC7528 ser un DAC de 8 bits. 8 bits significa que los números binarios que podemos enviar a la DAC deben tener no más de 8 dígitos en ellos. En binario, los números que son mentionada aquí con 8 dígitos (o menos) rango de valor de 0 a 255 (en comparación con el habitual sistema de numeración decimal donde y 8 dígitos números van desde 0 a 99999999). Así que hay 256 valores posibles (0-255) que pueden recibir la DAC de 8 bits. Esto se puede calcular rápidamente de la siguiente ecuación:
2 ^ 8 = 256 valores posibles
Si utilizábamos un DAC de 10 bits, entonces podría recibir 2 ^ 10 = 1024 valores diferentes, que van desde 0-1023. Esto significa que un DAC de 10 bits tiene una resolución más alta que un DAC de 8 bits. A pesar de esto, he encontrado que 8 bits DAC es generalmente mucho más útil que 10 bits porque los datos están más fáciles de almacenar y de la salida de Arduino en forma de 8 bits en 10 bits forma. Por ejemplo, el tipo de datos byte en el lenguaje de Arduino es para almacenar números de 8 bits. Si desea almacenar un número de 10 bits, tendrías que utilizar un tipo de datos int , pero los tipos de datos int pueden almacenar números de 16 bits, por lo que usted estaría perdiendo 6 bits de la memoria. Además, los pines de Arduino son agrupadas en grupos de 8 o menos. En la ONU, el grupo completo sólo de 8 pines digitales 0-7, este grupo se denomina PORTD. Al escribir el código de Arduino puede generar fácilmente 8 bits de datos, estableciendo los Estados de los pines digitales 0-7 a la vez. En el código, esto se hace mediante el envío de un número de 8 bits al PORTD. Por ejemplo:
PORTD = 255;
define los pines digitales 0-7, es equivalente a lo siguiente:
digitalWrite(0,HIGH);
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
pero el comando PORTD establece todas las clavijas al mismo tiempo y es mucho más rápido. El siguiente comando establece pines digitales 0-7 baja:
PORTD = 0;
también puede utilizar el comando PORTD para establecer algunos de los pernos de alta y otros baja. Por ejemplo:
PORTD = 137;
137 en binario 10001001, por lo 137 envía a PORTD establecerá pin 7 alta (ya que el primer dígito del número binario "1"), pernos 6-4 bajo (porque los siguientes 3 dígitos son "0"), pin 3 alta, pines 1 y 2 bajo, perno alto 0. Usted puede leer más acerca de cómo funciona esto en la Web de Arduino. Usted puede incluso enviar números binarios a PORTD, por ejemplo:
PORTD = B10001001;
es equivalente a PORTD = 137;
Por último, a hablar de cómo obtenemos esta información en el TLC7528. El TLC7528 se llama un DAC paralelo. Esto significa que todos los datos que enviamos a la DAC se envían en paralelo. 8 bit DAC paralelo tiene ocho conexiones de datos entre el Arduino y el DAC que envían los 8 bits de datos al mismo tiempo. El contrario del URL es serial, en las configuraciones de serie menos las conexiones de datos (generalmente tres), pero enviar solamente un bit a la vez. Por lo tanto, con el fin de transmitir un número de 8 bits a través de una conexión en serie tienes que enviar ocho paquetes de 1 bit, uno tras otro, mientras que en las configuraciones paralelo puede enviar los 8 bits al mismo tiempo. Esto significa que las conexiones serie requieren transferencia de datos más rápido que las conexiones paralelas. Si usted no está preocupado acerca del uso de 8 pines digitales del Arduino, un paralelo de 8 bits DAC es una buena opción porque requiere menor velocidad de reloj y es más simple de código.