#include <Servo.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
Servo arm; // Cria um objeto Servo para controlar o braço do servo
float pos = 0.0; // Posição do braço (em graus)
float step = 1.0; // Avanço do braço (a cada 1 grau)
void setup()
{
pinMode(A1, INPUT_PULLUP); // Botão anti-horário
pinMode(A2, INPUT_PULLUP); // Botão horário
lcd.begin(16,2);
arm.attach(2); // Instancia o braço no pino digital 2
arm.write(pos); // Inicializa o braço na posição 0 graus
}
void loop()
{
lcd.clear();
lcd.print("Pronto");
if (!digitalRead(A1)) // Checa pressionamento do botão anti-horário
{
lcd.clear();
lcd.print("Anti-horario");
if (pos>0) // Para checar que a posição não baixe de 0°
{
arm.write(pos); // Avança o braço
pos-=step; // Decrementa a posição do braço
delay(5); // Delay de 5ms para o braço avançar
}
}
if (!digitalRead(A2)) // Checa pressionamento do botão horário
{
lcd.clear();
lcd.print("Horario");
if (pos<180) // Para checar que a posição não avance de 180°
{
arm.write(pos); // Avança o braço
pos+=step; // Incrementa a posição do braço
delay(5); // Delay de 5ms para o braço avançar
}
}
}