Adicionando Entradas Analógicas no Raspberry Pi

As GPIOs do Raspberry Pi, apesar de todas suas virtudes, falha em não possuir um conversor A/D (analógico digital) acoplado e portanto a leitura de entrada analógicas, pode ser um pouco mais trabalhosa do que o normal.

Vamos neste post explicar como conectar o MCP 3008, um conversor A/D de baixo custo e fácil utilização que podemos conectar ao Raspberryi e liberar 8 entradas analógicas de uma só vez.

mcp3008ip
MCP3008 – Conversor A/D

 

Este é um conversor de 10 bits (precisão) com 8 canais de entrada analógica e comunicação via SPI por hardware, não onerando o nosso RPi durante as comunicações.

O esquema de conexões é bem simplificado e direto ao ponto:

sensors_raspberry_pi_mcp3008pin
Pinagem MCP3008

As conexões ao RPi são feitas da seguinte forma:

raspberrypi_b_gpio_spi_mcp3008_breadboard_mikael-leven1
Conexão MCP3008 e RPi 2 Model B ou RPi 3

 

Descritivamente, as conexões do MCP3008 para o Raspberry Pi:

  • VDD >> 3.3V
  • VREF >> 3.3V
  • AGND >> GND
  • DGND >> GND
  • CLK >> SCLK
  • DOUT >> MISO
  • DIN >> MOSI
  • CS/SHDN >> Pi CE0 (zero)

SPI por Software

Apesar de não ser minha recomendação, existe um outro modo de conexão, denominada SPI via software. Basicamente o software emula o comportamento que deveria estar configurado por hardware se estivéssemo utilizando os pinos apropriados acima.

Portanto nesta abordagem, você pode alterar os pinos de CLK, DOUT e DIN para quaisquer outros que quiser.

  • VDD >> 3.3V
  • VREF >> 3.3V
  • AGND >> GND
  • DGND >> GND
  • CLK >> GPIO 18 (ou qualquer outro)
  • DOUT >> GPIO 23 (ou qualquer outro)
  • DIN >> GPIO 24 (ou qualquer outro)
  • CS/SHDN >> GPIO 25 (ou qualquer outro)

It’s Coding Time

Tudo ok com o hardware, precisamos, antes de codificar, habilitar as portas especiais GPIO para operarem no modo SPI.

**Caso você tenha optado pelo SPI por software este passo não é necessário.

Configurando pela Linha de Comando

Abra o raspi-config digitando:

sudo raspi-config

Acesso no menu ‘Advanced Options’raspi_config_spi_01

Busque por SPI. Clique ENTER e confirme YES que deseja habilitar o SPI

raspi_config_spi_02

Faça o ‘reboot’ e veja como conferir se está tudo habilitado abaixo.

Configurando pelo GUI

Para configurar utilizando a GUI do Raspbian. Vá até ‘Preferences’ e clique em ‘Raspberry Pi Configuration’.

raspiconfig_gui_01

Após isso, vá até a aba ‘Interfaces’ e na linha SPI clique em ‘Enable’.

raspiconfig_gui_02

Faça o ‘reboot’ e verifique como testar se está tudo ok nos passos abaixo.

Editando manualmente a configuração do SPI

O último modo de ativação do SPI é editando o arquivo de BOOT

sudo nano /boot/config.txt

No arquivo adicione o seguinte ao final da linha:

dtparam=spi=on

Fazer o reboot ao final para validar a alteração.

 

Verificando se SPI está ativado

Para verificar se a ativação do SPI foi realizada corretamente, digite:

lsmod

Veja na lista exposta se você possui ‘spi_bcm2708’ ou ‘spi_bcm283’.

Tudo ok, vamos para…

It’s Coding Time

Como simples exemplo para validar a leitura analógica, podemos ligar um potenciômetro da seguinte forma no canal 2 do MCP3008 (lembrando que os canais são numerados de 0 a 7).

Neste exemplo iremos utilizar o modo SPI por Hardware explicado acima.

circuito-mcp3008-rpi2
MCP3008 – Teste Leitura Analógica no canal 2

Criamos o arquivo mcp3008.py da seguinte forma

sudo nano mcp3008.py

Digitaremos o seguinte código

from gpiozero import MCP3008
from time import sleep
pot = MCP3008(2)

while True:
         print(pot.value)
         sleep(0.5)

Até a próxima.


DC

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s