- Componentes Requeridos
- Módulo PCF8591 ADC / DAC
- Pins I2C em Raspberry Pi
- Interface do Módulo PCF8591 ADC / DAC com Raspberry Pi
- Programa Python para conversão analógica para digital (ADC)
A conversão analógica para digital é uma tarefa muito importante na eletrônica embarcada, já que a maioria dos sensores fornecem saída como valores analógicos e para alimentá-los em microcontroladores que entendem apenas valores binários, temos que convertê-los em valores digitais. Portanto, para poder processar os dados analógicos, os microcontroladores precisam de um conversor analógico para digital.
Alguns microcontroladores têm ADC embutido como Arduino, MSP430, PIC16F877A, mas alguns microcontroladores não têm como 8051, Raspberry Pi etc. e temos que usar alguns ICs conversores analógicos para digitais externos como ADC0804, ADC0808. Abaixo você pode encontrar vários exemplos de ADC com diferentes microcontroladores:
- Como usar ADC no Arduino Uno?
- Tutorial do Raspberry Pi ADC
- Interface do ADC0808 com o microcontrolador 8051
- Voltímetro digital 0-25V usando microcontrolador AVR
- Como usar ADC em STM32F103C8
- Como usar ADC em MSP430G2
- Como usar ADC em ARM7 LPC2148
- Usando Módulo ADC de Microcontrolador PIC com MPLAB e XC8
Neste tutorial, vamos aprender como fazer a interface do módulo PCF8591 ADC / DAC com o Raspberry Pi.
Componentes Requeridos
- Raspberry Pi
- Módulo PCF8591 ADC
- 100K Pot
- Cabos Jumper
Presume-se que você tenha o Raspberry Pi com o sistema operacional Raspbian mais recente instalado e saiba como fazer SSH no Pi usando um software de terminal como o putty. Se você for novo no Raspberry Pi, siga este artigo para começar a usar o Raspberry Pi. Mesmo assim, se você enfrentar qualquer problema, existem muitos tutoriais do Raspberry Pi que podem ajudar.
Módulo PCF8591 ADC / DAC
O PCF8591 é um módulo conversor de 8 bits analógico para digital ou 8 bits digital para analógico, o que significa que cada pino pode ler valores analógicos de até 256. Ele também tem LDR e circuito termistor fornecido na placa. Este módulo possui quatro entradas analógicas e uma saída analógica. Ele funciona em comunicação I 2 C, portanto, há pinos SCL e SDA para relógio serial e endereço de dados seriais. Requer tensão de alimentação de 2,5-6 V e tem baixa corrente de reserva. Também podemos manipular a tensão de entrada ajustando o botão do potenciômetro no módulo. Existem também três jumpers na placa. J4 é conectado para selecionar o circuito de acesso do termistor, J5 é conectado para selecionar o LDR / circuito de acesso do foto-resistore J6 é conectado para selecionar o circuito de acesso de tensão ajustável. Existem dois LEDs na placa D1 e D2-D1 mostra a intensidade da tensão de saída e D2 mostra a intensidade da tensão de alimentação. Quanto maior a tensão de saída ou alimentação, maior a intensidade do LED D1 ou D2. Você também pode testar esses LEDs usando um potenciômetro no VCC ou no pino AOUT.
Pins I2C em Raspberry Pi
Para usar o PCF8591 com o Raspberry Pi, a primeira coisa a fazer é conhecer os pinos da porta I2C do Raspberry Pi e configurar a porta I2C no Raspberry pi.
Abaixo está o diagrama de pinos do Raspberry Pi 3 Modelo B +, e os pinos I2C GPIO2 (SDA) e GPIO3 (SCL) são usados neste tutorial.
Configurando I2C no Raspberry Pi
Por padrão, I2C está desabilitado no Raspberry Pi. Portanto, primeiro ele deve ser ativado. Para habilitar o I2C no Raspberry Pi
1. Vá para o terminal e digite sudo raspi-config.
2. Agora a ferramenta de configuração do software Raspberry Pi é exibida.
3. Selecione Opções de interface e ative o I2C.
4. Depois de habilitar o I2C, reinicie o Pi.
Digitalizando endereço I2C de PCF8591 usando Raspberry Pi
Agora, para iniciar a comunicação com o IC PCF8591, o Raspberry Pi deve saber seu endereço I2C. Para encontrar o endereço, primeiro conecte o pino SDA e SCL do PCF8591 ao pino SDA e SCL do Raspberry Pi. Conecte também os pinos + 5V e GND.
Agora abra o terminal e digite o comando abaixo para saber o endereço do dispositivo I2C conectado, sudo i2cdetect –y 1 ou sudo i2cdetect –y 0
Depois de encontrar o endereço I2C, agora é hora de construir o circuito e instalar as bibliotecas necessárias para usar o PCF8591 com Raspberry Pi.
Interface do Módulo PCF8591 ADC / DAC com Raspberry Pi
O diagrama de circuito para a interface do PCF8591 com o Raspberry Pi é simples. Neste exemplo de interface, vamos ler os valores analógicos de qualquer um dos pinos analógicos e mostrá-los no terminal Raspberry Pi. Podemos alterar os valores usando um pote de 100K.
Conecte o VCC e o GND ao GPIO2 e ao GPIO do Raspberry Pi. Em seguida, conecte o SDA e o SCL ao GPIO3 e GPIO5, respectivamente. Finalmente conecte um pote de 100K com AIN0. Você também pode adicionar LCD 16x2 para exibir os valores ADC em vez de exibi-los no Terminal. Saiba mais sobre a interface do LCD 16x2 com Raspberry Pi aqui.
Programa Python para conversão analógica para digital (ADC)
O programa completo e o vídeo de trabalho são fornecidos no final deste tutorial.
Em primeiro lugar, importe a biblioteca smbus para a comunicação do barramento I 2 C e a biblioteca de tempo para dar um tempo de espera entre a impressão do valor.
import smbus import time
Agora defina algumas variáveis. A primeira variável contém o endereço do barramento I 2 C e a segunda variável contém o endereço do primeiro pino de entrada analógica.
endereço = 0x48 A0 = 0x40
A seguir, fizemos um objeto da função SMBus (1) da biblioteca smbus
bus = smbus.SMBus (1)
Agora, enquanto a primeira linha diz ao IC para fazer a medição analógica no primeiro pino de entrada analógica. A segunda linha armazena o endereço lido no pino analógico em um valor variável. Finalmente imprima o valor.
enquanto True: bus.write_byte (endereço, A0) valor = bus.read_byte (endereço) print (value) time.sleep (0.1)
Agora, finalmente, salve o código Python em algum arquivo com.py entension e execute o código no terminal raspberry Pi usando o comando abaixo ”
python filename.py
Antes de executar o código, certifique-se de que ativou a comunicação I 2 C e que todos os pinos estão conectados conforme mostrado no diagrama, caso contrário, haverá erros. Os valores analógicos devem começar a aparecer no terminal como abaixo. Ajuste o botão do potenciômetro e você verá a mudança gradual nos valores. Saiba mais sobre como executar o programa em
O código Python completo e o vídeo são fornecidos abaixo.