#include <Arduino.h>
#include <TimerOne.h>
#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 rtc;
const int enablePin = 7; // Pin para habilitar el motor
const int dirPin = 2; // Pin para controlar la dirección
const int stepPin = 3; // Pin para controlar los pasos del motor
bool direccion = true; // Variable para guardar la dirección actual del motor
int segundoActual=0;
int flanco = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
rtc.begin();
SetTimer();
pinMode(dirPin, OUTPUT);
pinMode(stepPin, OUTPUT);
pinMode(enablePin, OUTPUT);
MdT_Disparar(0, 5, 5, Pasos);
digitalWrite(enablePin, LOW); // Habilitar el motor
}
void SetTimer(void) {
Timer1.initialize(1000);
Timer1.attachInterrupt(Systick_Handler);
}
void Systick_Handler(void) {
MdT_Descontar();
}
void loop() {
MdT_Analizar();
DateTime fechaHora = rtc.now(); // Obtener la fecha y hora actual
segundoActual = fechaHora.second();
if (segundoActual % 5 == 0) { // cada 5 segundo cambia de direccion
direccion = !direccion; // Cambia la dirección
digitalWrite(dirPin, direccion ? HIGH : LOW); // Actualiza el pin de dirección
}
}
void Pasos (void){
if (flanco) {
digitalWrite(stepPin, LOW);
flanco =0;
}
else{
digitalWrite(stepPin, HIGH);
flanco =1;
}
}