Conversor de analógico para digital MCP3008 para ESP8266

Tecnologia

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:




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



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.

Fonte
http://www.esp8266learning.com/wemos-mcp3008-example.php
Mais Dicas