Sensor de Proximidade Infravermelho de Baixo Custo para Raspberry Pi Usando Apenas Pinos Digitais
Placas Raspberry Pi rodam no processador Broadcom BCM2835, que oferece 26 pinos de entrada/saída de propósito geral (GPIO). Embora bibliotecas Python como RPi.GPIO tornem o controle desses pinos direto, uma limitação notável comparado ao Arduino é a ausência de entradas analógicas verdadeiras. Pinos GPIO são estritamente digitais: um pino configurado como saída só pode entregar 0 V (LOW) ou 3.3 V (HIGH). Quando configurado como entrada, qualquer tensão abaixo de 0.8 V é interpretada como LOW, e qualquer tensão acima de 1.3 V é tratada como HIGH.
Em muitas aplicações do mundo real – monitoramento de temperatura, medição de distância, detecção de intensidade de luz – o sinal subjacente é inerentemente contínuo. Confiar em uma saída binária "ligado/desligado" é frequentemente insuficiente. A solução típica é adicionar um conversor analógico-digital (ADC) externo como MCP3008, TLC549 ou MCP23017, que comunicam via SPI ou I²C. Esses chips são baratos individualmente, mas quando combinados com sensores comerciais, o custo total pode subir para $20–$30 e a montagem fica volumosa – um problema para projetos de robótica que requerem múltiplos sensores.
Felizmente, existe uma abordagem simples e eficaz que elimina a necessidade de um ADC externo. Convertendo a medição analógica em um sinal baseado em tempo, os pinos digitais do Raspberry Pi podem amostrar indiretamente dados contínuos. O tempo é uma quantidade naturalmente analógica, e a técnica baseia-se no princípio clássico de carregamento RC (resistor-capacitor).
Design do Sensor de Proximidade Infravermelho DIY
O circuito usa apenas componentes baratos: alguns LEDs infravermelhos, um fototransistor, um transistor NPN 2N3904, um capacitor cerâmico de 100 nF e resistores de baixa potência. Os números de peça exatos são intercambiáveis; a chave é manter as características elétricas corretas.
Nota importante do componente: O capacitor de 100 nF pode ser um cerâmico de baixo perfil ou capacitor cerâmico/filme classe 1 para estabilidade ótima.
Configuração de Hardware
- Alimentação: Conecte os fios +5 V e GND a uma fonte externa de 5 V. Una o GND ao terra do Raspberry Pi.
- Atribuição GPIO: Escolha um pino GPIO (ex:
PIN_A) como saída de gatilho, e outro (ex:PIN_B) como entrada de medição.
Princípio de Medição
Quando PIN_A é levado a HIGH, os LEDs infravermelhos iluminam a superfície alvo. Luz refletida ativa o fototransistor, que produz uma corrente proporcional à intensidade refletida. Esta corrente carrega o capacitor via o transistor 2N3904. O tempo que leva para a tensão do capacitor cruzar o limiar digital do Raspberry Pi no PIN_B é inversamente relacionado à corrente do fototransistor, e portanto diretamente proporcional à distância do objeto refletor.
Fluxo de Controle Python
# 1. Garanta que o capacitor está totalmente descarregado
GPIO.setup(PIN_B, GPIO.OUT)
GPIO.output(PIN_B, 0)
time.sleep(0.01) # 10 ms para exceder 200×RC (≈0.00005 s)
# 2. Mude PIN_B para modo de entrada
GPIO.setup(PIN_B, GPIO.IN)
# 3. Acione os LEDs IR
GPIO.setup(PIN_A, GPIO.OUT)
GPIO.output(PIN_A, 1)
# 4. Meça duração do nível baixo no PIN_B
counter = 0
start_time = time.time() * 1000 # milissegundos
while GPIO.input(PIN_B) == 0 and counter < 1e4:
counter += 1
elapsed = time.time() * 1000 - start_time
# elapsed (em ms) ≈ k × distância
Com um resistor de 4.3 kΩ e capacitor de 100 nF, a constante de tempo RC é 0.43 ms. O 2N3904 amplifica a corrente do fototransistor em aproximadamente 150×, permitindo que os LEDs consumam cerca de 50 mA cada durante ativação. O atraso de tempo resultante, elapsed, escala linearmente com a distância, fornecendo uma conversão analógico-para-tempo simples sem qualquer hardware ADC dedicado.
Este método oferece uma alternativa compacta e de baixo custo a sensores de proximidade baseados em ADC convencionais, tornando-o ideal para robótica embarcada, projetos de hobbyistas e demonstrações educacionais.
Processo de manufatura
- Conecte Múltiplos Sensores DS18B20 1-Wire ao Raspberry Pi para Monitoramento Preciso de Temperatura
- Como Conectar Sensor de Temperatura DS1820 One‑Wire ao Raspberry Pi via GPIO
- Integração de Dados de Sensores no Raspberry Pi: Guia Prático
- Conectando Sensor Ultrassônico HC‑SR04 ao Raspberry Pi 3 – Guia Completo
- Sensor de Rastreamento de Linha com Raspberry Pi – Detector KY‑033 Simples para Porta/Linha
- Medindo Sensores Analógicos no Raspberry Pi com um Único Pino GPIO
- Construa um Sensor de Movimento Infravermelho DIY para Raspberry Pi – Guia Passo a Passo
- Meça Sensores Analógicos no Raspberry Pi sem ADC Nativo
- Como Conectar um Termômetro Digital DS18B20 One-Wire ao Raspberry Pi – Guia Passo a Passo
- Leitura de Sensor Hall Linear com Raspberry Pi: Guia Java e Insights ADC0832