Kunkune

Como configurar um sensor PIR HC-SR501 com Arduino

Como configurar um sensor PIR HC-SR501 com Arduino

By Kunkune | Published: 2026-10-13

Category: Guias Práticos

Ligue um módulo PIR HC-SR501 a um Arduino, ajuste a sensibilidade e os potenciómetros de atraso e depure disparos falsos com um processo claro, passo a passo.

Resposta rápida

Ligue o HC-SR501 com VCC a 5V, GND a GND e OUT a um pino digital. Depois cubra a lente e aguarde 30-60 segundos para o aquecimento antes de confiar nas leituras. Coloque ambos os potenciómetros aproximadamente a meio curso primeiro, carregue um sketch simples de digitalRead e só depois ajuste a sensibilidade e o atraso enquanto observa o monitor serial.

O que os pinos do HC-SR501 realmente fazem

O módulo tem três pinos: VCC, OUT e GND. OUT é um sinal digital que fica ALTO quando é detetado movimento, por isso qualquer entrada digital do Arduino funciona. O catálogo lista a tensão de saída como 3.3V, que é o nível lógico que o módulo apresenta em OUT. Isso é importante se planeia alimentar o sinal numa entrada lógica de apenas 5V ou numa placa de 3.3V: um ALTO de 3.3V é normalmente lido corretamente por MCUs de 3.3V como ESP32 ou Raspberry Pi, mas um Arduino Uno clássico de 5V trata qualquer coisa acima de cerca de 3V como ALTO, por isso também funciona. Se não tiver a certeza, meça OUT com um multímetro durante um disparo em vez de assumir.

O HC-SR501 também tem dois potenciómetros e um jumper. Um pot define a sensibilidade (alcance de deteção), o outro define o atraso (quanto tempo OUT fica ALTO após o movimento parar). O jumper seleciona o modo de disparo repetível ou não repetível. O módulo precisa de um período de aquecimento após ser ligado; durante esse tempo OUT pode ficar ALTO ou alternar, por isso não julgue o sensor até que ele estabilize.

Escolhas de alimentação e cablagem que previnem ruído

O HC-SR501 é mais feliz com uma alimentação estável de 5V. Alimentá-lo a partir do pino de 5V do Arduino é suficiente para um único módulo, mas se adicionar relés, motores ou fios longos, use uma alimentação separada regulada de 5V e ligue os terras. Uma alimentação fraca ou ruidosa é uma das causas mais comuns de disparos aleatórios.

Mantenha o fio de sinal curto e afaste-o da cablagem de motores ou da rede elétrica. Se precisar de usar um cabo longo, torça os fios OUT e GND juntos ou use cabo blindado. Para uma montagem permanente, solde as ligações ou use um terminal de parafuso em vez de fios jumper soltos que podem deslocar-se.

Um sketch mínimo de Arduino para verificar movimento

Comece com o teste mais simples possível: leia um pino digital e imprima o seu estado. Ligue OUT ao pino 2 e depois carregue um sketch que define o pino 2 como INPUT e imprime digitalRead(2) no monitor serial a 9600 baud. Agite a mão à frente da lente e observe a mudança de valor. Isto confirma a cablagem antes de adicionar qualquer lógica.

Assim que a leitura bruta funcionar, adicione um debounce curto ou uma verificação de mudança de estado para que um evento de movimento não inunde a saída serial. Por exemplo, imprima apenas quando a leitura mudar de BAIXO para ALTO. Isso torna o comportamento do pot de atraso muito mais fácil de observar.

Ajustar sensibilidade e atraso sem perseguir falsos disparos

Gire ambos os potenciómetros totalmente para a esquerda primeiro e depois aumente a sensibilidade lentamente até o sensor cobrir a área que precisa. Mais sensibilidade não é melhor: também capta fontes de calor, correntes de ar e animais de estimação. O pot de atraso controla quanto tempo OUT fica ALTO após o último movimento; defina-o curto para contagem de eventos e mais longo para tempos de retenção de iluminação ou alarme.

Faça uma alteração de cada vez e aguarde o módulo estabilizar. Se a saída ficar constantemente ALTA, reduza a sensibilidade e verifique se a lente não está virada para uma janela, aquecedor ou cortina em movimento. Se nunca disparar, confirme o modo do jumper e que o período de aquecimento já passou.

Configuração passo a passo do HC-SR501 com Arduino

  1. Passo 1: Identifique a pinagem e defina o jumper: Com a lente virada para si, os pinos são geralmente VCC, OUT, GND da esquerda para a direita, mas confirme nas marcações da sua placa. Defina o jumper para o modo não repetível (H) para deteção simples de ligar/desligar, ou modo repetível (L) se quiser que OUT fique ALTO enquanto o movimento continuar. Ponto de verificação: se as marcações não forem claras, teste com um multímetro antes de ligar a alimentação.
  2. Passo 2: Ligue a alimentação e o sinal: Ligue VCC a 5V, GND a GND e OUT ao pino digital 2 do Arduino. Mantenha o fio de sinal curto e afastado de motores ou cabos de rede. Se usar uma alimentação externa, ligue o seu terra ao terra do Arduino. Erro comum: esquecer o terra partilhado ao usar uma alimentação separada de 5V.
  3. Passo 3: Aguarde o aquecimento: Ligue o módulo e aguarde 30-60 segundos sem se mover à frente dele. A saída pode alternar durante este período; isso é normal. Não ajuste os pots até o módulo estabilizar. Ponto de verificação: se OUT ainda estiver instável após dois minutos, verifique a estabilidade da alimentação e a cablagem.
  4. Passo 4: Carregue um sketch mínimo de leitura: Defina o pino 2 como INPUT e imprima digitalRead(2) no monitor serial a 9600 baud. Agite a mão e confirme que o valor muda. Adicione uma verificação de mudança de estado para que apenas as transições sejam impressas. Erro comum: usar INPUT_PULLUP, que luta contra a saída do módulo; use INPUT simples a menos que o seu módulo específico exija o contrário.
  5. Passo 5: Ajuste a sensibilidade e o atraso: Comece com ambos os pots totalmente para a esquerda. Aumente a sensibilidade até o sensor cobrir de forma fiável a sua área alvo e depois pare. Defina o atraso para o tempo de retenção mais curto que se adequa ao seu projeto. Ponto de verificação: se os falsos disparos persistirem, reduza a sensibilidade e remova fontes de calor ou correntes de ar do campo de visão.
  6. Passo 6: Teste o comportamento final no local: Monte o sensor na altura e ângulo que vai usar e depois caminhe pela zona de deteção várias vezes. Confirme que OUT fica ALTO quando esperado e cai para BAIXO após o atraso. Próximo passo: adicione debounce ou um temporizador de retenção no código se precisar de uma contagem de eventos mais limpa.

Factos do produto

  • Módulo sensor de movimento HC-SR501 Detector PIR ajustável: Módulo sensor de movimento HC-SR501 Detector PIR ajustável, tensão de saída 3.3V. Um ALTO lógico de 3.3V é compatível com placas de 3.3V e ainda é lido como ALTO pela maioria das entradas Arduino de 5V, por isso pode usá-lo com qualquer uma sem um conversor de nível em configurações típicas.
  • Conversor DC-DC buck-boost 4-35V para 1.25-25V LM2596S XL6019E1 3A: Conversor DC-DC buck-boost 4-35V para 1.25-25V LM2596S XL6019E1 3A com saída ajustável. Útil quando o seu projeto funciona com bateria ou uma tensão mais alta e precisa de uma alimentação limpa e ajustável de 5V para o módulo PIR em vez de usar uma linha ruidosa do Arduino.

Shop Related Products

Conversor DC‑DC Buck‑Boost 4‑35V para 1.25‑25V LM2596S XL6019E1 3A

Conversor DC‑DC Buck‑Boost 4‑35V para 1.25‑25V LM2596S XL6019E1 3A

$2.94 $4.90

Shop Now
Módulo sensor de movimento HC‑SR501 PIR ajustável

Módulo sensor de movimento HC‑SR501 PIR ajustável

$0.97 $1.45

Shop Now