O Microchip MCP3008 ADC é um conversor de analógico para digital (A / D) de 10 bits com amostra integrada e circuito de retenção.
A comunicação com o dispositivo é realizada usando uma interface serial simples compatível com o protocolo SPI. O MCP3008 opera em uma ampla faixa de tensão (2,7V - 5,5V), e o design de baixa corrente permite a operação com correntes de espera típicas de apenas 5 nA e correntes ativas típicas de 320 µA.
Aqui está a pinagem do MCP3008:
![](https://suadica.com/imagensgeral/998-mcp3008-2.png)
Recursos
Interface SPI de 10 bits ADC de
8 bits Taxa de amostragem: 200kSPS Tensão de alimentação 2.7V a 5.5V Corrente de alimentação: 425µA Tempo de conversão de DIP de 16 pinos : 10µs
No mundo do Arduino, lembre-se de que você tem 6 entradas analógicas, mas se você usar dispositivos I2C, eles poderão cuidar de duas delas. Portanto, o uso desse chip pode adicionar outras 8 entradas analógicas, que podem ser úteis para determinados projetos.
Esquemas
Esquema bastante básico, observe os pinos 9 e 14 interligados e conectados ao terra e eu conectei o VREF (15) ao 3.3v, que é o pino 16. O exemplo abaixo mostra um pote conectado ao CH0
![](https://suadica.com/imagensgeral/897-wemos-and-mcp3008.png)
Código
#include <MCP3008.h> //define pin connections #define CS_PIN D8 #define CLOCK_PIN D5 #define MOSI_PIN D7 #define MISO_PIN D6 MCP3008 adc(CLOCK_PIN, MOSI_PIN, MISO_PIN, CS_PIN); void setup() { // open serial port Serial.begin(9600); } void loop() { int val = adc.readADC(0); // read Channel 0 from MCP3008 ADC (pin 1) Serial.println(val); delay(1000); }
Com base no exemplo da biblioteca em https://github.com/nodesign/MCP3008. Conecte o pino 1 do MCP3008 a 0v e observe o resultado no monitor serial, faça o mesmo em 3.3v.
Você também pode conectar um potenciômetro ou um ldr ou outra coisa que possa variar a leitura de entrada.