// Definir as portas usadas para controle do motor e do sensor PIR
const int stepPin = 5;
const int dirPin = 4;
const int enablePin = 2;
const int ledPin = 15;
const int sensorPin = 18;
const int buzzerPin = 12;
// Definir as constantes para controle do motor
const int stepsPerRevolution = 200;
const int stepDelay = 20000; // reduzir o atraso para aumentar a velocidade do motor
void setup() {
// Definir as portas como saídas
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(sensorPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
// Desabilitar o motor
digitalWrite(enablePin, LOW);
}
void loop() {
if (digitalRead(sensorPin) == LOW) {
digitalWrite(enablePin, LOW);
// Definir a direção do motor;
digitalWrite(dirPin, LOW); //Direção ANTI HORÁRIO
//O LED ficará acesso até ser desligado pelo pino RESET;
digitalWrite(ledPin, HIGH);
digitalWrite(buzzerPin, HIGH);
// Girar o motor
for (int i = 0; i < stepsPerRevolution && (digitalRead(sensorPin) == LOW); i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepDelay);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepDelay);
}
}else{
digitalWrite(enablePin, HIGH);
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
}
}