/*
################################################################################
# By DrCrowller #
# #
# Feel free to copy, modify and do whatever you want with this project #
# Be aware that the use of many variables may consume more memory than wanted #
# #
# Created : 7 Apr. 2022 #
################################################################################
*/
#include <Servo.h>
#define LED_L 12
#define LED_R 11
Servo servo; // Create a "Servo" object called "arm"
float pos = 0.0; // Variable where the arm's position will be stored (in degrees)
float step = 1.0; // Variable used for the arm's position step
unsigned long previousMillis = 0; // variable para almacenar el tiempo anterior
const long interval = 600; // intervalo en milisegundos para parpadear el LED
unsigned long previousMillis2 = 0; // variable para almacenar el tiempo anterior
void setup()
{
Serial.begin(9600);
pinMode(A1, INPUT_PULLUP); // Set the A1 pin to a pushbutton in pullup mode
pinMode(A2, INPUT_PULLUP); // Set the A1 pin to a pushbutton in pullup mode
pinMode(LED_L, OUTPUT);
pinMode(LED_R, OUTPUT);
servo.attach(2); // Attache the servo to the pin 2
servo.write(pos); // Initialize the arm's position to 0 (leftmost)
}
void loop()
{
if (!digitalRead(A1)){
servo.write(pos = 0);
Serial.println("left");
if(pos<45)
{
unsigned long currentMillis = millis(); // obtener el tiempo actual
if (currentMillis - previousMillis >= interval) {
// si ha pasado el intervalo, cambiar el estado del LED
previousMillis = currentMillis; // actualizar el tiempo anterior
digitalWrite(LED_L, !digitalRead(LED_L)); // cambiar el estado del LED
}
}
else{
digitalWrite(LED_L, LOW);
Serial.println("off");
}
}
if(!digitalRead(A2)){
servo.write(pos = 180);
Serial.println("right");
if(pos>135)
{
unsigned long currentMillis2 = millis(); // obtener el tiempo actual
if (currentMillis2 - previousMillis2 >= interval) {
// si ha pasado el intervalo, cambiar el estado del LED
previousMillis2 = currentMillis2; // actualizar el tiempo anterior
digitalWrite(LED_R, !digitalRead(LED_R)); // cambiar el estado del LED
}
}
else{
digitalWrite(LED_R, LOW);
Serial.println("off");
}
}
servo.write(pos = 90);
digitalWrite(LED_R, LOW);
digitalWrite(LED_L, LOW);
}