💡 LEDs Coloridos
Ligar e piscar LEDs com saída digital GPIO. Aprender PWM por software para controlo de brilho. Componentes: 5× vermelho, 5× verde, 5× amarelo.
Material necessário
- 1× LED (vermelho, verde ou amarelo)
- 1× Resistência 220Ω
- Fios jumper
- Breadboard
Circuito
LED ânodo (+) → Resistência 220Ω → GPIO 18 (BCM)
LED cátodo (−) → GND (pino 6)
Nunca ligar um LED diretamente ao GPIO sem resistência — o pino pode ficar danificado. A resistência de 220Ω limita a corrente a ~15mA, dentro do máximo de 16mA por pino do RPi.
Exercício 1 — Piscar simples
Python · led_piscar.py
import RPi.GPIO as GPIO import time LED = 18 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(LED, GPIO.OUT) print("LED a piscar — Ctrl+C para parar") try: while True: GPIO.output(LED, GPIO.HIGH) time.sleep(1) GPIO.output(LED, GPIO.LOW) time.sleep(1) except KeyboardInterrupt: GPIO.cleanup()
Exercício 2 — Múltiplos LEDs em sequência
Python · led_sequencia.py
import RPi.GPIO as GPIO import time LEDS = [18, 23, 24] # vermelho, verde, amarelo GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) for led in LEDS: GPIO.setup(led, GPIO.OUT) GPIO.output(led, GPIO.LOW) try: while True: for led in LEDS: GPIO.output(led, GPIO.HIGH) time.sleep(0.3) GPIO.output(led, GPIO.LOW) except KeyboardInterrupt: GPIO.cleanup()
Exercício 3 — Controlo de brilho com PWM
O PWM (Pulse Width Modulation) varia o brilho do LED mudando a percentagem de tempo que o pino fica em HIGH. O olho humano interpreta isso como variação de intensidade:
Python · led_pwm.py
import RPi.GPIO as GPIO import time LED = 18 GPIO.setmode(GPIO.BCM) GPIO.setup(LED, GPIO.OUT) # Criar objeto PWM: pino 18, frequência 1000 Hz pwm = GPIO.PWM(LED, 1000) pwm.start(0) # começa apagado try: while True: # Aumentar brilho gradualmente for dc in range(0, 101, 5): pwm.ChangeDutyCycle(dc) time.sleep(0.05) # Diminuir brilho gradualmente for dc in range(100, -1, -5): pwm.ChangeDutyCycle(dc) time.sleep(0.05) except KeyboardInterrupt: pwm.stop() GPIO.cleanup()
Duty Cycle: 0% = sempre LOW (apagado), 50% = metade do tempo HIGH, 100% = sempre HIGH (brilho máximo). A frequência de 1000 Hz é suficientemente alta para que o LED não pareça piscar.