Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como Medir Tensão Usando um Raspberry Pi

Medir tensão é uma tarefa comum em projetos de eletrônica, e o Raspberry Pi pode ser uma ferramenta poderosa para isso. No entanto, o Raspberry Pi não possui um ADC (Conversor Analógico para Digital) integrado, o que significa que ele não pode medir tensões diretamente. Para contornar essa limitação, podemos utilizar um ADC externo, como o MCP3008, que se comunica com o Raspberry Pi via SPI (Serial Peripheral Interface).

Componentes Necessários

  • Raspberry Pi (qualquer modelo com pinos GPIO)
  • MCP3008 ADC
  • Resistores (para divisores de tensão, se necessário)
  • Protoboard e jumpers
  • Fonte de tensão a ser medida

Passo a Passo

1. Conectando o MCP3008 ao Raspberry Pi

Primeiro, conecte o MCP3008 ao Raspberry Pi conforme o diagrama abaixo:

  • VDD (pino 16 do MCP3008) -> 3.3V (pino 1 do Raspberry Pi)
  • VREF (pino 15 do MCP3008) -> 3.3V (pino 1 do Raspberry Pi)
  • AGND (pino 14 do MCP3008) -> GND (pino 6 do Raspberry Pi)
  • DGND (pino 9 do MCP3008) -> GND (pino 6 do Raspberry Pi)
  • CLK (pino 13 do MCP3008) -> GPIO11 (pino 23 do Raspberry Pi)
  • DOUT (pino 12 do MCP3008) -> GPIO9 (pino 21 do Raspberry Pi)
  • DIN (pino 11 do MCP3008) -> GPIO10 (pino 19 do Raspberry Pi)
  • CS/SHDN (pino 10 do MCP3008) -> GPIO8 (pino 24 do Raspberry Pi)

2. Instalando Bibliotecas Necessárias

Para facilitar a comunicação com o MCP3008, utilizaremos a biblioteca spidev. Instale-a com o seguinte comando:

sudo apt-get update
sudo apt-get install python3-spidev

3. Escrevendo o Código

Agora, crie um script Python para ler a tensão medida pelo MCP3008. Salve o arquivo como measure_voltage.py.

import spidev
import time

# Configura o SPI
spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 1350000

def read_channel(channel):
    adc = spi.xfer2([1, (8 + channel) << 4, 0])
    data = ((adc[1] & 3) << 8) + adc[2]
    return data

def convert_volts(data, places):
    volts = (data * 3.3) / float(1023)
    volts = round(volts, places)
    return volts

if __name__ == "__main__":
    try:
        while True:
            channel = 0  # Canal do MCP3008 onde a tensão está sendo medida
            adc_value = read_channel(channel)
            voltage = convert_volts(adc_value, 2)
            print(f"ADC Value: {adc_value}, Voltage: {voltage}V")
            time.sleep(1)
    except KeyboardInterrupt:
        spi.close()

4. Executando o Script

Execute o script com o comando:

python3 measure_voltage.py

Você verá a leitura da tensão no terminal.

Considerações Finais

Medir tensão com o Raspberry Pi é viável utilizando um ADC externo como o MCP3008. Esse método pode ser expandido para medir múltiplas tensões simultaneamente, utilizando os diferentes canais do MCP3008.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.