Mobile
Procedimentos experimentais
O módulo é alimentado diretamente por Arduino , portanto, não precisamos de uma fonte de alimentação externa. Os pinos são conectados de acordo com a tabela:
Pino do sensor
Pin por Arduino UNO
VCC
5V
GND
FORA
Pino 2
Os outros dois pinos do módulo do sensor são conectados à sonda de medição usando os cabos fornecidos, conforme mostrado no diagrama a seguir:
Diagrama de conexão do sensor para a placa UNO
Operação
Para que este código funcione corretamente, é melhor definir o jumper do modo de disparo para 'H' (modo de repetição de disparo). Defina também o potenciômetro de retardo de tempo para o valor mais baixo. Gire no sentido anti-horário tanto quanto possível.
O código lerá o status do sensor (HIGH ou LOW) e ligará ou desligará o LED embutido de acordo. Ele também imprimirá uma mensagem no Monitor Serial, que você pode acessar em Ferramentas ou digitar (Ctrl + Shift + M).
Abra um novo esboço e cole o seguinte código:
/ * Exemplo de código para o sensor de movimento PIR HC-SR501 com Arduino . Mais informações: www.makerguides.com * /
// Definir pinos de conexão:
#define pirPin 2
#define ledPin 13
// Crie variáveis:
int val = 0;
bool motionState = false ; // Começamos sem detectar movimento.
vazio configuração() {
// Defina os pinos como entrada ou saída:
pinMode(ledPin, OUTPUT);
pinMode(pirPin, INPUT);
// Inicie a comunicação serial na taxa de transmissão de 9600:
Serial. começar ( 9600 ) ;
}
vazio loop() {
// Leia o pirPin e armazene-o como val:
val = digitalRead (pirPin);
// Se o movimento for detectado (pirPin = HIGH), faça o seguinte:
E se (val == HIGH) {
digitalWrite(ledPin, HIGH); // Liga o LED embutido.
/ Alterar o status do movimento para verdadeiro (movimento detectado):
E se ( motionState == false ) {
Serial.println(" Movimento detectado!
motionState = verdadeiro;
// Se nenhum movimento for detectado (pirPin = LOW), faça o seguinte:
outro {
digitalWrite ( ledPin, LOW ) ; // Desligue o LED embutido.
// Altere o estado de movimento para falso (sem movimento):
E se (motionState == true) {
Serial. println ( " Movimento concluído !" ) ;
motionState = falso ;
Os efeitos do programa podem ser vistos na tela abaixo ao abrir o Monitor Serial: