#define LED_GREEN 41 //controla el led verd
#define LED_RED 40
#define LED_BLUE 39
#define pir_pin 5
#define PRENDIDO LOW
#define APAGADO HIGH
bool curr_pir_pin;
bool prev_pir_pin;
#define A4988_DIR 48//pin de dirección para A4988
#define A4988_STEP 45
#define BUTTON_P_1 15 //
#define BUTTON_P_2 17
#define HORARIO LOW
#define ANTI_HORARIO HIGH
uint8_t estado;
uint8_t dir = LOW;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(pir_pin, INPUT);
pinMode(BUTTON_P_1, INPUT_PULLUP);//
pinMode(BUTTON_P_2, INPUT_PULLUP);//
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_RED, OUTPUT);
pinMode(LED_BLUE, OUTPUT);
pinMode(A4988_DIR, OUTPUT); //Salida para asignar dirección del motor
pinMode(A4988_STEP, OUTPUT);
digitalWrite(LED_GREEN, APAGADO);
digitalWrite(LED_RED, APAGADO);
digitalWrite(LED_BLUE, APAGADO);
prev_pir_pin=digitalRead(pir_pin);
}
void loop() {
// put your main code here, to run repeatedly:
curr_pir_pin = digitalRead(pir_pin);
if(curr_pir_pin == prev_pir_pin){
digitalWrite(LED_GREEN, PRENDIDO);
digitalWrite(LED_RED, PRENDIDO);
digitalWrite(LED_BLUE, APAGADO);
delay(200);
digitalWrite(LED_BLUE, PRENDIDO);
digitalWrite(LED_GREEN, APAGADO);
digitalWrite(LED_RED, APAGADO);
delay(200);
}else{
digitalWrite(LED_GREEN, APAGADO);
digitalWrite(LED_RED, APAGADO);
digitalWrite(LED_BLUE, APAGADO);
digitalWrite(A4988_DIR, dir);
//for(int i=0; i<100; i++) {
Serial.println("P1");
digitalWrite(A4988_STEP, HIGH);
delay(20);
digitalWrite(A4988_STEP, LOW);
delay(20);
if (digitalRead(BUTTON_P_1) == LOW ) {
while(digitalRead(BUTTON_P_1) == LOW);
if(dir==LOW){
dir=HIGH;
}else{
dir=LOW;
}
//digitalWrite(A4988_DIR, ANTIHORARIO);
}else{
/*if (digitalRead(BUTTON_P_2) == LOW ){
switch(estado) {
case 1;
for(int i=0; i<100; i++) {
digitalWrite(A4988_STEP, HIGH);
delay(2000);
digitalWrite(A4988_STEP, LOW);
delay(2000);
break;
}
}*/
}
}
}