//adicionar escrita;
#include <Ultrasonic.h>
#define PIN_TRIG_EXT 13
#define PIN_ECHO_EXT 12
#define PIN_TRIG_INT 6
#define PIN_ECHO_INT 5
#define PIN_MOTOR_N1 10
#define PIN_MOTOR_N2 11
#define PIN_LED_VERDE 9
#define PIN_LED_VERMELHO 8
#define PIN_BOTAO 4
Ultrasonic SENSOR_EXT(PIN_TRIG_EXT, PIN_ECHO_EXT);
Ultrasonic SENSOR_INT(PIN_TRIG_INT, PIN_ECHO_INT);
bool APERTADO, ACESSO = true;
float DISTANCIA_EXT, DISTANCIA_INT;
void setup() {
Serial.begin(9600);
pinMode(PIN_BOTAO, INPUT_PULLUP);
pinMode(PIN_LED_VERDE, OUTPUT);
pinMode(PIN_LED_VERMELHO, OUTPUT);
pinMode(PIN_MOTOR_N1, OUTPUT);
pinMode(PIN_MOTOR_N2, OUTPUT);
}
void loop() {
APERTADO = !digitalRead(PIN_BOTAO);
DISTANCIA_EXT = SENSOR_EXT.read();
DISTANCIA_INT = SENSOR_INT.read();
if (APERTADO == true){
digitalWrite(PIN_LED_VERMELHO, HIGH);
digitalWrite(PIN_LED_VERDE, LOW);
ACESSO = false;
}else{
digitalWrite(PIN_LED_VERMELHO, LOW);
digitalWrite(PIN_LED_VERDE, HIGH);
ACESSO = true;
}
if (DISTANCIA_EXT > 100 and ACESSO == true){
MOTOR_ANTI();
}else{
MOTOR_PARADO();
}
if (DISTANCIA_INT > 100 and ACESSO == true){
MOTOR_HORARIO();
}else{
MOTOR_PARADO();
}
}
void MOTOR_HORARIO(){
digitalWrite(PIN_MOTOR_N1, HIGH);
digitalWrite(PIN_MOTOR_N2, LOW);
}
void MOTOR_ANTI(){
digitalWrite(PIN_MOTOR_N1, LOW);
digitalWrite(PIN_MOTOR_N2, HIGH);
}
void MOTOR_PARADO(){
digitalWrite(PIN_MOTOR_N1, LOW);
digitalWrite(PIN_MOTOR_N2, LOW);
}
void AJUSTES_EXT(){
Serial.print("SENSOR EXTERNO: ");
Serial.println(DISTANCIA_EXT);
}
void AJUSTES_INT(){
Serial.print("SENSOR INTERNO: ");
Serial.println(DISTANCIA_INT);
}
SENSOR INTERNO
SENSOR EXTERNO
MOTORES
Sentido anti-horário
Sentido horário