PR.FT5_15·Kit RPi›Potenciómetro + MCP3008Próximo →
⬤ Intermédio · SPI · ADC 10bit

🎛️ Potenciómetro + MCP3008

O RPi não tem conversor ADC nativo. Usamos o MCP3008 (8 canais, 10 bits, SPI) para ler o potenciómetro e outros sensores analógicos.

Ativar SPI e instalar biblioteca

Terminal
# Ativar SPI: raspi-config → Interfacing Options → SPI
sudo raspi-config
pip3 install adafruit-mcp3008

Circuito MCP3008

MCP3008 VDD + VREF → 3.3V
MCP3008 AGND + DGND → GND
MCP3008 CLK → GPIO 11 (SCLK)
MCP3008 DOUT → GPIO 9 (MISO)
MCP3008 DIN → GPIO 10 (MOSI)
MCP3008 CS → GPIO 8 (CE0)
Potenciómetro saída → MCP3008 CH0 (pino 1)

Exercício — Ler potenciómetro

Python · potenciometro.py
import Adafruit_MCP3008
import time

mcp = Adafruit_MCP3008.MCP3008(clk=11, cs=8, miso=9, mosi=10)

try:
    while True:
        valor = mcp.read_adc(0)         # canal 0, 0-1023
        pct   = round(valor / 1023 * 100)
        barra = '█' * (pct // 5) + '░' * (20 - pct // 5)
        print(f"\r[{barra}] {pct:3d}%  raw={valor}", end="")
        time.sleep(0.1)
except KeyboardInterrupt:
    print()