const int stepPin = 14;
const int dirPin = 12;
const int fc_arriba = 5;
const int fc_abajo = 18;
const int onoff = 21;
volatile bool arriba = true;
volatile bool abajo = false;
volatile int luz=0;
void setup() {
// Sets the two pins as Outputs
Serial.begin(115200);
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
pinMode(A5, INPUT);
pinMode(fc_arriba,INPUT_PULLUP);
pinMode(fc_abajo,INPUT_PULLUP);
pinMode(onoff,INPUT_PULLUP);
}
void loop() {
if(digitalRead(fc_arriba) == LOW && arriba){
delay(300);
bajar_persiana(100);
arriba = false;
abajo= true;
}
if(digitalRead(fc_abajo) == LOW && abajo){
delay(300);
subir_persiana(100);
abajo = false;
arriba = true;
}
luz = analogRead(A5);
Serial.println(luz);
if(luz > 500 && abajo){
subir_persiana(100);
abajo = false;
arriba = true;
}
}
void subir_persiana(int vueltas1){
digitalWrite(dirPin,LOW);
for(int x = 0; x < vueltas1; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
}
void bajar_persiana(int vueltas2){
digitalWrite(dirPin,HIGH);
for(int x = 0; x < vueltas2; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
}