LDR Y BLUETOOTH EN TANDEM

Buenas tardes. Soy Daniel de Misiones, Argentina. Nuevo en arduino...

Les planteo la siguiente interrogante. Armamos con alumnos un proyecto en el que se comandan el encendido de luces a través de bluettoth. Al mismo tiempo quisieramos que también lo haga a través de un ldr, cosa que lo logramos (probamos con un pin). El problema que las lineas del ldr anulan las de bluetooth del pin en cuestión (13).

Lo que intentamos hacer es que si el ldr puso en high el pin 13 yo pueda desde la aplicación, poner en low dicho pin, suspendiendo la acción del ldr por un tiempo determinado.

Supongamos que las luces de una habitación se encienden por accion del ldr puesto que el nivel de luminosidad lo amerita pero, yo quiero apagar dicha iluminación a voluntad pues vamos a ver una proyección por determinado espacio de tiempo - seria interesante que pudiera elegir ese tiempo de una lista de opciones. Del mismo modo, poder encender las luces aunque el ldr no haya activado el estado del pin.

Espero puedan orientarme. Gran abrazo

Hola Daniel, lo correcto es que hubiese puesto tu código, asi entendemos mejor tu nivel en programación de Arduino.

Una posible solución a tu consulta es que uses una variable auxiliar que represente a la entrada del bluetooth y otra que mida el tiepo que esta esta activada (ejemplo 10 min = 600000 milisegundos).

char x;     //Para el bluetooth
bool bt;
unsigned long t;
int ldr;     //Para el LDR


void setup() {
   Serial.begin(9600);
   pinMode(13, OUTPUT);
}

void loop() {
   bt = true;
   //lee puerto serie
   if (Serial.avalable()){
      x = Serial.read();
      if (x == 'A'){
         t = millis();
      }
   }
   if (millis() - t < 600000){
      bt = false;
   }   
   ldr = analogRead(A0);
   if (ldr < 700 && bt){
      digitalWrite(13, HIGH);  //Prende LED
   }else{
      digitalWrite(13, LOW);   //Apaga LED
   }
}