Índice:

PCF8591 (Expansor de E / S analógica i2c) Uso rápido e fácil: 9 etapas
PCF8591 (Expansor de E / S analógica i2c) Uso rápido e fácil: 9 etapas

Vídeo: PCF8591 (Expansor de E / S analógica i2c) Uso rápido e fácil: 9 etapas

Vídeo: PCF8591 (Expansor de E / S analógica i2c) Uso rápido e fácil: 9 etapas
Vídeo: Master GPIO with Raspberry Pi Pico & MicroPython - Uncover the Secrets! 2024, Julho
Anonim
PCF8591 (Expansor de E / S analógica i2c) Uso rápido e fácil
PCF8591 (Expansor de E / S analógica i2c) Uso rápido e fácil

Biblioteca para usar i2c pcf8591 IC com arduino e esp8266.

Este IC pode controlar (até 4) a entrada analógica e / ou 1 saída analógica como medir a tensão, ler o valor do termistor ou atenuar um LED.

Pode ler o valor analógico e escrever o valor analógico com apenas 2 fios (perfeito para ESP-01).

Tento simplificar o uso deste IC, com um conjunto mínimo de operação.

Você pode encontrar a versão atualizada em meu site

Etapa 1: Como funciona o I2c

Como funciona o I2c
Como funciona o I2c

O I2C trabalha com seus dois fios, o SDA (linha de dados) e o SCL (linha do relógio).

Ambas as linhas têm dreno aberto, mas são puxadas para cima com resistores.

Normalmente, há um mestre e um ou vários escravos na linha, embora possa haver vários mestres, mas falaremos sobre isso mais tarde.

Tanto mestres quanto escravos podem transmitir ou receber dados, portanto, um dispositivo pode estar em um destes quatro estados: mestre transmitir, mestre receber, escravo transmitir, escravo receber.

Passo 2:

Você pode encontrar minha biblioteca aqui.

Baixar.

Clique no botão DOWNLOADS no canto superior direito, renomeie a pasta descompactada PCF8591.

Verifique se a pasta PCF8591 contém PCF8591.cpp e PCF8591.h.

Coloque a pasta de biblioteca PCF8591 em sua pasta / libraries /.

Você pode precisar criar a subpasta de bibliotecas se for sua primeira biblioteca.

Reinicie o IDE.

Etapa 3: uso

Construtor: você deve passar o endereço de i2c (para verificar o endereço use este guia I2cScanner)

PCF8591 (endereço uint8_t);

para esp8266 se você quiser especificar SDA e SCL pin use isto:

PCF8591 (endereço uint8_t, uint8_t sda, uint8_t scl);

Etapa 4: Leia o valor

Leia o valor
Leia o valor

Como você pode ver na imagem, o IC tem 4 entradas analógicas e 1 saída analógica.

Portanto, para ler todas as entradas analógicas em uma transmissão, você pode fazer (o valor é de 0 a 255):

PCF8591:: AnalogInput ai = pcf8591.analogReadAll ();

Serial.print (ai.ain0); Serial.print ("-"); Serial.print (ai.ain1); Serial.print ("-"); Serial.print (ai.ain2); Serial.print ("-"); Serial.println (ai.ain3);

se você quiser ler uma única entrada ou canal analógico:

int ana = pcf8591.analogRead (AIN0); // leia 0 analógico

Etapa 5: Leia Vale do Canal

Leia Vale do Canal
Leia Vale do Canal

Este IC tem vários tipos de leitura e você pode usar entrada analógica ou canal analógico (quando você usa entrada analógica de leitura única e o canal está nas fotos).

Por exemplo, para ler o valor do canal 0 em Duas entradas diferenciais, você deve fazer:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // leia 0 analógico

Etapa 6: escrever o valor

Se você quiser escrever um valor analógico, você deve fazer (o valor é de 0 a 255):

pcf8591.analogWrite (128);

Etapa 7: recursos adicionais

O recurso adicional é ler uma tensão de gravação: Para o cálculo da tensão você deve passar algum parâmetro:

  • microcontrollerReferenceVoltage: obter a tensão da tensão do microcontrolador (apenas AVR não esp8266 para esp 3.3v fixo)
  • referenceVoltage: se microcontrollerReferenceVoltage false tome este valor Os comandos são:

void voltageWrite (valor flutuante, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5,0);

float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5,0);

Um exemplo é:

pcf8591.voltageWrite (2.7); // Saída de 2,7 Volts

atraso (3000);

float ana0V = pcf8591.voltageRead (AIN0); // Lê a tensão do analógico 0

Serial.println (ana0V);

Etapa 8: Diagrama de conexão de exemplos

Diagrama de conexão de exemplos
Diagrama de conexão de exemplos

Etapa 9: Obrigado

série de projetos i2c (coleção):

  • Sensor de temperatura e umidade
  • Expansor analógico
  • Expansor digital
  • Tela de LCD

Recomendado: