Arduino - Sensor de Movimento - Relé
Vamos aprender como:
- Se um movimento for detectado, ligar o relé
- Se nenhum movimento for detectado, desligar o relé
Ao conectar o relé a uma lâmpada, fita LED, motor ou atuador... podemos usar o sensor de movimento para controlar a lâmpada, fita LED, motor ou atuador...
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre o Relé e o Sensor de Movimento
Se você não conhece o relé e o sensor de movimento (pinagem, como funciona, como programar ...), aprenda sobre eles nos seguintes tutoriais:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Configuração Inicial
| Ajuste de Tempo de Atraso | Gire-o totalmente no sentido anti-horário. |
| Ajuste de Alcance de Detecção | Gire-o totalmente no sentido horário. |
| Seletor de Disparo Repetido | Coloque o jumper como mostrado na imagem. |

Código Arduino
/*
* Este código de Arduino foi desenvolvido por pt.newbiely.com
* Este código de Arduino é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino/arduino-motion-sensor-relay
*/
const int MOTION_SENSOR_PIN = 7; // Arduino pin connected to the OUTPUT pin of motion sensor
const int RELAY_PIN = A5; // Arduino pin connected to the IN pin of relay
int motionStateCurrent = LOW; // current state of motion sensor's pin
int motionStatePrevious = LOW; // previous state of motion sensor's pin
void setup() {
Serial.begin(9600); // initialize serial
pinMode(MOTION_SENSOR_PIN, INPUT); // set arduino pin to input mode
pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode
}
void loop() {
motionStatePrevious = motionStateCurrent; // store old state
motionStateCurrent = digitalRead(MOTION_SENSOR_PIN); // read new state
if (motionStatePrevious == LOW && motionStateCurrent == HIGH) { // pin state change: LOW -> HIGH
Serial.println("Motion detected!");
digitalWrite(RELAY_PIN, HIGH); // turn on
}
else
if (motionStatePrevious == HIGH && motionStateCurrent == LOW) { // pin state change: HIGH -> LOW
Serial.println("Motion stopped!");
digitalWrite(RELAY_PIN, LOW); // turn off
}
}
Passos Rápidos
- Conecte o Arduino ao PC via cabo USB
- Abra o Arduino IDE, selecione a placa e a porta corretas
- Copie o código acima e abra-o no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino

- Mova sua mão na frente do sensor
- Veja a mudança de estado do relé
Explicação do Código
Leia a explicação linha por linha nas linhas de comentário do código-fonte!