//******************************************************************************************
// Exercicio cancela
// TERCEIRA ENTREGA
// NOME DO ALUNO:
//******************************************************************************************

// bibliotecas
#include <HCSR04.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

// cria o objeto para controle do servo 
Servo servo;

// mapeamento
// NAO PODE MUDAR A LIGAÇÃO FISICA DOS COMPONENTES.
#define TRIGGER1 10  //NAO MUDE O PINO
#define ECHO1    9   //NAO MUDE O PINO
#define TRIGGER2 6   //NAO MUDE O PINO
#define ECHO2    5   //NAO MUDE O PINO
#define SERVO_MOTOR    11  //NAO MUDE O PINO
#define LCD1     0X20  // NAO MUDE O ENDEREÇO
#define LCD2     0X21  // NAO MUDE O ENDEREÇO

// variaveis
/*
Como deve funcionar

   O CARRO ESTA SE APROXIMANDO NÃO CHEGOU NO SENSOR
 Sensor Esquerda   |  Sensor Direita   |    LCD Esquerda  |  LCD Direita

  MAIOR VALOR      |   MAIOR VALOR     |  Percurso Livre  | Percurso Livre

  O CARRO ESTA EM FRENTE AO SENSOR DA DIREITA
  MAIOR VALOR      |  Menor valor      |  CANCELA SERA    | CANCELA SERA
                                              ABERTA      |    ABERTA

  O CARRO PASSOU TOTALMENTE PELO SENSOR DA DIREITA E AINDA NÃO CHEGOU NO SENSOR DA ESQUERDA
  MAIOR VALOR      |   MAIOR VALOR     |  CANCELA ABERTA  |   DIMINUA A 
                                                              VELOCIDADE

  O CARRO ESTA EM FRENTE AO SENSOR DA ESQUERDA
  Menor valor      |   MAIOR VALOR     |  CANCELA ABERTA |   DIMINUA A 
                                                            VELOCIDADE
  O CARRO PASSOU TOTALMENTE PELO SENSOR DA ESQUERDA
  MAIOR VALOR      |   MAIOR VALOR     |  Percurso Livre  | Percurso Livre


*/


//Inicializa o display 
LiquidCrystal_I2C lcd1(LCD1,16,2);
LiquidCrystal_I2C lcd2(LCD2,16,2);

// Inicializa o sensor ultrassonico
UltraSonicDistanceSensor distanceSensor1(TRIGGER1, ECHO1); 
UltraSonicDistanceSensor distanceSensor2(TRIGGER2, ECHO2); 

void setup () {

//Inicializa o lcd

  // define o pino 11 como entrada para o servo
  servo.attach(11);

  //Liga o backlight
  lcd1.init();
  lcd1.setBacklight(HIGH);
  lcd2.init();
  lcd2.setBacklight(HIGH);

  //Mensagem
  lcd1.println("     ETECAF   ");
  lcd1.setCursor(0,1);
  lcd1.println("   ELETRONICA   ");
  lcd1.setCursor(1,1);

  lcd2.println("   EXERCICIO   ");
  lcd2.setCursor(0,1);
  lcd2.println("    CANCELA");
  lcd2.setCursor(1,1);

  delay(5000);
}

void loop () {

 

}