Início›Raspberry Pi
⬤ Opcional · Python 3 · GPIO

🍓 Raspberry Pi — GPIO e Python

⏱️ 30 min 🐍 Python 3 · RPi.GPIO · Raspberry Pi OS

Nesta página

🔄 Arduino vs. Raspberry Pi — Quando Usar Cada Um?

CaracterísticaArduino UNORaspberry Pi 4
TipoMicrocontrolador — sem SOComputador de placa única — Linux completo
CPUATmega328P 8-bit 16 MHzCortex-A72 64-bit 1.8 GHz (quad-core)
RAM2 KB SRAM2 / 4 / 8 GB LPDDR4
Entradas analógicas6 × ADC 10-bit integradoNenhuma — precisa de ADC externo (ex: MCP3008)
GPIO14 digitais (6 PWM) + 6 analógicos40 pinos (26 GPIO usáveis)
Ideal paraLeitura de sensores, PWM, tempo realProcessamento, IA, rede, câmara, logging CSV
Consumo~50 mA~600 mA (RPi 4)
Tensão GPIO5V tolerante3.3V apenas — não tolera 5V nos GPIO!
⚠️
Os GPIO do Raspberry Pi operam a 3.3V. Nunca liges um módulo de 5V diretamente — usa um divisor de tensão ou um conversor de nível lógico. Módulos que saem diretamente do Kit B 37 a 5V devem ser verificados.

📍 Pinagem GPIO do Raspberry Pi

ℹ️
O Raspberry Pi tem dois sistemas de numeração de pinos: BCM (número GPIO lógico, ex: GPIO17) e BOARD (número físico do pino no conector, ex: pino 11). A biblioteca RPi.GPIO permite usar qualquer um — define a escolha com GPIO.setmode(GPIO.BCM) ou GPIO.setmode(GPIO.BOARD).
FunçãoPino físicoBCMUso típico com Kit B 37
3.3V1, 17—Alimentação de módulos 3.3V
5V2, 4—Alimentação de módulos 5V (cuidado com GPIO!)
GND6, 9, 14, 20, 25, 30, 34, 39—Massa de todos os módulos
GPIO (entrada/saída)3,5,7,8,10,11,12,13,15,16,18,19,21,22,23,24,26,27,28,29,31,32,33,35,36,37,38,402–27Sensores e atuadores digitais
SDA (I²C)3GPIO2Display OLED, sensores I²C
SCL (I²C)5GPIO3Display OLED, sensores I²C
MOSI/MISO/SCLK (SPI)19/21/23GPIO10/9/11ADC externo MCP3008

⚙️ Configurar o Raspberry Pi OS

1

Descarregar o Raspberry Pi OS

Vai a raspberrypi.com/software e descarrega o Raspberry Pi Imager. Seleciona Raspberry Pi OS (64-bit) com Desktop.

2

Configuração inicial

Ao primeiro arranque, define localização (Portugal), teclado (PT), palavra-passe e rede WiFi.

3

Ativar interfaces

Vai a Preferências → Raspberry Pi Configuration → Interfaces. Ativa: SSH, I²C, SPI (para ADC externo).

4

Atualizar o sistema

Abre o terminal e executa: sudo apt update && sudo apt upgrade -y

5

Instalar RPi.GPIO

Normalmente já instalada. Para verificar: python3 -c 'import RPi.GPIO; print(RPi.GPIO.VERSION)'

🐍 Biblioteca RPi.GPIO — Referência Rápida

rpi_gpio_ref.py
import RPi.GPIO as GPIO
import time

# Configuração inicial
GPIO.setmode(GPIO.BCM)          # Usar numeração BCM (GPIO17, etc.)
GPIO.setwarnings(False)         # Suprimir avisos de pinos já em uso

# Configurar pinos
GPIO.setup(17, GPIO.OUT)         # Pino GPIO17 como saída (LED)
GPIO.setup(27, GPIO.IN,           # Pino GPIO27 como entrada
           pull_up_down=GPIO.PUD_UP)  # com pull-up interno

# Ler e escrever
GPIO.output(17, GPIO.HIGH)       # Liga (3.3V no pino)
GPIO.output(17, GPIO.LOW)        # Desliga (0V no pino)
estado = GPIO.input(27)          # Lê HIGH ou LOW

# PWM (frequência em Hz, duty cycle 0–100%)
pwm = GPIO.PWM(18, 1000)         # GPIO18, 1kHz
pwm.start(50)                    # 50% duty cycle
pwm.ChangeDutyCycle(75)          # Altera para 75%
pwm.stop()

# Limpeza final — SEMPRE no fim do programa
GPIO.cleanup()

🔬 Exemplos Comparativos Python vs. Arduino

led_pisca_pi.py
#!/usr/bin/env python3
# LED Pisca no Raspberry Pi — equivalente ao Blink do Arduino
import RPi.GPIO as GPIO
import time

LED_PIN = 17           # GPIO17 → pino físico 11
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)

try:
    while True:
        GPIO.output(LED_PIN, GPIO.HIGH)
        time.sleep(0.5)
        GPIO.output(LED_PIN, GPIO.LOW)
        time.sleep(0.5)
except KeyboardInterrupt:
    GPIO.cleanup()      # Ctrl+C → limpa os pinos
    print("GPIO limpo. Programa terminado.")
💡
Executa com python3 led_pisca_pi.py no terminal. Para parar, pressiona Ctrl+C — o bloco except KeyboardInterrupt garante que os GPIO ficam limpos. Sempre inclui GPIO.cleanup() no final dos scripts.

🏆 Para ir mais longe

Kit B 37 · PR.FT6_15 · Arduino UNO · Raspberry Pi · Início · led.dge.medu.pt