/*
   Código demonstrativo para a aula de Bancos de Dados aplicados à Internet das Coisas,
   Curso de Engenharia e Administração de Sistemas de Banco de Dados,
   Faculdade de Tecnologia - UNICAMP.
*/

#include <Servo.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20, 16, 2);

Servo servo;

void setup() {

  pinMode(3, INPUT);
  pinMode(4, INPUT);
  pinMode(5, INPUT);

  servo.attach(8, 500, 2500);

  lcd.init();
  lcd.backlight();
  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("Fac.  Tecnologia");
  lcd.setCursor(0, 1);
  lcd.print("Unicamp  Limeira");

  delay(3000);

  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("Bancos de Dados ");
  lcd.setCursor(0, 1);
  lcd.print("Aplicados a IoT ");

  delay(3000);

  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("   Exercicio    ");
  lcd.setCursor(0, 1);
  lcd.print("----------------");

  delay(3000);

  servo.write(90);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Posicao do Motor");
  lcd.setCursor(0, 1);
  lcd.print("     Centro     ");

}

void loop() {

  if (digitalRead(3) == HIGH) {
    servo.write(45);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Posicao do Motor");
    lcd.setCursor(0, 1);
    lcd.print("     Direita    ");
    delay(15); // Wait for 15 millisecond(s)
  }

  if (digitalRead(4) == HIGH) {
    servo.write(90);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Posicao do Motor");
    lcd.setCursor(0, 1);
    lcd.print("     Centro     ");
    delay(15); // Wait for 15 millisecond(s)
  }

  if (digitalRead(5) == HIGH) {
    servo.write(135);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Posicao do Motor");
    lcd.setCursor(0, 1);
    lcd.print("    Esquerda    ");
    delay(15); // Wait for 15 millisecond(s)
  }
}