Paso 6: MCP3204 - ADC
Un ADC (Analogue to Digital Converter) nos ayuda a leer una tensión analógica y convertirla a un número digital binario que permite que el microcontrolador ponerlo debajo. Este MCP3204 (hoja de datos) ADC Microchip realiza y utiliza una interfaz SPI para comunicarse con el microcontrolador. Voy a hablar más sobre el SPI en otro paso.
Los pernos para el MCP3204 son las siguientes,
- Entrada para el ADC canal 0.
- Entrada para el ADC canal 1.
- Entrada para el ADC canal 2.
- Entrada canal ADC 3.
- No conectados internamente.
- No conectados internamente.
- Tierra digital - este proyecto utiliza un terreno común.
- Se trata de un activo bajo Chip select pin utilizado para la interfaz SPI (explicada en un paso posterior).
- Se trata de datos, a veces conocido como MOSI utilizada para la interfaz SPI (explicada en un paso posterior).
- Se trata de datos, a veces conocida como MISO utilizada para la interfaz SPI (explicada en un paso posterior).
- Pin de reloj serial utilizado para la interfaz SPI (explicada en un paso posterior).
- Tierra analógica - este proyecto utiliza un terreno común.
- Entrada de referencia de voltaje.
- VDD - pin de fuente de voltaje - 5V
Estrictamente hablando, realmente no tenía que incluir un ADC independiente en el diseño como la ATMega32U4 tiene un incorporado 10 bits ADC, sin embargo, hay dos razones principales que hice,
- Mejor resolución
- Porque quería jugar con uno!
Como usted probablemente ya sabe microcontroladores son productos digitales, digital que solo funcione en 0s y 1s. Un dispositivo digital, por sí mismo, no puede leer un valor analógico como una tensión o 3.21V. Productos digitales sólo pueden leer lógica valores de nivel de, por ejemplo, 0v "es", 5v "es el".
Antes de llegar demasiado lejos en esto, un poco es lo binario, binario es base 2 sistema de numeración, es decir pueden contar solamente 2 pasos antes marcando el dígito siguiente.
0
1
Nuestro sistema de numeración normal, el sistema decimal, es un sistema de numeración de base 10, contamos 10 pasos antes de marcar el dígito siguiente.
0
1
2
3
4
5
6
7
8
9
Este es un ejemplo de lo que se ve de 0 a 7 como en binario,
0 0
1 de 1
2 10
3 11
4 100
5 101
6 110
7 111
Cada dígito se conoce como un "poco" y 8 bits es un "byte", por lo que el número máximo de decimal puede contar utilizando un número binario de 8 bits es 255. Es que 256 valores diferentes porque incluimos el 0 como un valor.
0 0
.. ..
.. ..
11111111 255
La resolución de un ADC representa cuántos bits o pasos de un binario el número lo puede medir un valor analógico y convertirlo a número binario digital, por ejemplo,
- ADC de 8 bits puede medir 256 pasos = 2 a la potencia de 8
- 10 pedacito ADC puede medir 1024 pasos = 2 a la potencia de 10
- ADC de 12 bits puede medir 4096 pasos = 2 a la potencia de 12
Supongo que esto no es hacer mucho sentido sin embargo, está bien, lo hará.
ADCs de todos tienen que usar una tensión de referencia, este voltaje de referencia permite el ADC comparar la tensión de la lectura contra la tensión de referencia y volver un porcentaje como el número binario. OK, ejemplo, para un 8 bit ADC, el número máximo de pasos puede romper la tensión de referencia en es 256 (no olvides 0V), así que por facilidad, vamos a hacer nuestra tensión referencia 255v (sería pero permite ir con él), si las lecturas del voltaje del ADC es 255v, se compara con el voltaje de referencia y dice , Su 100% de mi tensión de referencia por lo que voy a enviarle el digital más alto valor puede aceptar, 255. Lee otra vez y su ahora 128V, dice OK, ahora sólo el 50% de mi tensión de referencia por lo enviará el 50% de mi binario valor, 128.
¿En nuestro ejemplo anterior, hemos tenido una tensión de referencia de 255V y teníamos 256 pasos, así que es fácil, puede leer en incrementos de 1V, lo que si necesitamos leer 0.1V incrementos? Bueno eso es solo dura, porque sólo puede contar un ADC de 8 bits a 256. Es donde mayor resolución ADC. Ahora permite compara contra una tensión de referencia de 100V para que podamos ver los beneficios de utilizar a un ADC con una resolución más alta.
8 bits = 256 pasos, dividimos la tensión de referencia por nuestra resolución para averiguar qué diferencias de voltaje puede leer nuestro ADC, 100 / 256 = 0.39V. Así que el menor puede leer los 8 bits es 0.39V, entonces el siguiente valor es 0.78V
10 bits = 1024 pasos, 100/1024 = 0.098V. Así que el menor puede leer nuestro 10 bit es 0.098v, entonces el siguiente valor será 0.196V. Mucho más pequeña diferencia entre las lecturas.
bit 12 = 4096 pasos, 100/4096 = 0.024v. Por lo que el menor puede leer nuestros 12 bits es 0.024v, entonces el siguiente valor será 0.048v y así sucesivamente. Entonces habrá 4096 valores diferentes, antes de que llegue la full 100V.
Como se puede ver, es una mucho mayor precisión de la resolución más alta que vaya.