Paso 9: Código de Arduino
Pernos deint dir = 2;
int potencia = 3;
captor de int = 4;
Interruptor de láminas
int captorVal = 0;
Pin analógico para leer la pantalla hacia abajo
int screenDown = 0;
int screenDownVal = 0;
Pin analógico leer pantalla
int screenUp = 1;
int screenUpVal = 0;
Cadena screenState; Estado de pantalla proyector
String blindState; Estado oculto
Boolean ocupado = false;
void setup() {}
inicializar los pernos
pinMode (potencia, salida);
pinMode (dir, salida);
pinMode (captor, entrada);
Leer valor de interruptor reed en el programa de instalación
Delay(100);
captorVal = digitalRead(captor);
Delay(100);
Establecer la blindState en configuración
Si (captorVal == LOW) {}
blindState = "subida";
} else {}
blindState = "abajo";
}
Registrador de
Serial.Begin(9600);
}
void loop() {}
Leer proyector pantalla valores
screenDownVal = analogRead(screenDown);
screenUpVal = analogRead(screenUp);
Si (screenUpVal > 1000 & & screenDownVal > 1000) {}
Serial.println ("módulo de pantalla está apagado!");
screenState = "off";
} else if (screenUpVal < 200 & & screenDownVal < 200) {}
screenState = "detener";
} else if (screenUpVal > 1000 & & screenDownVal < 200) {}
screenState = "arriba";
} else if (screenDownVal > 1000 & & screenUpVal < 200) {}
screenState = "abajo";
}
refreshBlindMotor(screenState);
Delay(100);
}
void refreshBlindMotor() {}
Serial.println(blindState);
Pantalla se va para arriba y ciego (y ciego no ocupada)
Si (screenState == "por" & & blindState == "por" & & ocupado == false) {}
El ciego!
ocupado = true;
blindUp();
Pantalla va para abajo y es ciego (y ciego no está ocupada)
} else if (screenState == "por" & & blindState == "por" & & ocupado == false) {}
ABAJO la persiana!
ocupado = true;
blindDown();
} else if (screenState == "stop") {}
¿TODO: dejar la persiana?
}
}
void blindUp() {}
Encendido del motor + hasta
digitalWrite (energía, alto);
digitalWrite (dir, HIGH);
Mientras que reed no nal
captorVal = digitalRead(captor);
mientras que (captorVal == HIGH) {}
captorVal = digitalRead(captor);
Serial.println ("en espera para que ciegos en alcanzar el lejano hasta...");
Delay(100);
}
Salimos de los mientras que lazo,
Podemos dejar la persiana
halt();
blindState = "subida";
ocupado = false;
Serial.println ("ciego es para arriba!");
}
void blindDown() {}
Motor de + abajo
digitalWrite (energía, alto);
digitalWrite (dir, LOW);
El tiempo es tomas para los ciegos ir
Delay(18000);
Dejar ciegos
halt();
blindState = "abajo";
ocupado = false;
Serial.println ("ciego está!");
}
{} void halt()
Cortar la corriente al motor de persiana
digitalWrite (energía, baja);
Serial.println ("persiana se detiene!");
}