Título: Ayuda con codigos de arduino, Activar/Desactivar sensor PIR via Bluetooh?
Publicado por: brunomars en 28 Abril 2017, 12:29 pm
Soy nuevo con el arduino, pero mirando foros y tutoriales cosegui armar este codigo para que funcione mi proyecto en el cual tengo que prender y apagar leds, usar un sensor LDR, sensor de movimiento y servomotores todo manejado a traves de un modulo de bluetooth con una app para el movil int led1 = 40; //Luz 1 Comedor int led2 = 41; //Luz_2_Comedor int led3 = 42; //Luz_Cocina int led4 = 43; //Luz_1_Pasillo int led5 = 44; //Luz_1_Pasillo int led6 = 45; //Luz_Hab 1 int led7 = 46; //Luz_Hab 1 int led8 = 47; //Luz_Baño int led9 = 48; //Luz_Garaje int led10 = 49; //Luz_1_Jardin int led11 = 50; //Luz_2_Jardin int led12 = 51; //Luz_3_Jardin int led13 = 52; //Luz_4_Jardin
int estado = 0;
int LDRpin=A1; // define el pin conectado al ldr int LDRabc=0; float LDRvoltaje=0; // variable tipo flotante
int led =6; // pin del led rojo int pirPin =7; // pin para el sesor de movimiento int buzzer = 5; // pin para buzzer activo
void setup(){ Serial.begin(9600); pinMode(LDRpin, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); pinMode(led7, OUTPUT); pinMode(led8, OUTPUT); pinMode(led9, OUTPUT); pinMode(led10, OUTPUT); pinMode(led11, OUTPUT); pinMode(led12, OUTPUT); pinMode(led13, OUTPUT); pinMode( led , OUTPUT) ; pinMode (pirPin , INPUT); pinMode (buzzer , OUTPUT);
} void loop(){ if( Serial.available()>0) { char dato= Serial.read (); // leremos el dato enviado Serial.println(dato); // mostramos el dato if(dato =='s') // si es igual se habilita alarma { while(!Serial.available()) // se ejecuta si el dato es "S" { digitalWrite(led, LOW); //apagamos el led rojo int pirVal = digitalRead(pirPin); // leemos el valor del sensor Serial.println (pirVal); // mostramos este valor if(pirVal == HIGH) //si es 1 { digitalWrite(buzzer, HIGH); //encenderemos el led rojo y sonara el buzzer digitalWrite(led, HIGH); } else // si fuese un "0" { digitalWrite(buzzer, LOW); digitalWrite(led, LOW); //se apaga el led rojo y deja de sonara el buzzer } delay(400); //esperamos 400ms } } else { digitalWrite(buzzer, LOW); digitalWrite(led, LOW); }
{ estado = Serial.read(); } switch( estado) { case 'a': digitalWrite(led1, HIGH); // primera luz del interior la casa break; case 'b': digitalWrite(led1, LOW); break; case 'c': digitalWrite(led2, HIGH); break; case 'd': digitalWrite(led2, LOW); break; case 'e': digitalWrite(led3, HIGH); break; case 'f': digitalWrite(led3, LOW); break;
case 'g': digitalWrite(led4, HIGH); digitalWrite(led5, HIGH); // luz pasillo ambas encienden a la vez break; case 'h': digitalWrite(led4, LOW); digitalWrite(led5, LOW); // luz pasillo ambas se apagan a la vez break;
case 'i': digitalWrite(led6, HIGH); break; case 'j': digitalWrite(led6, LOW); break;
case 'k': digitalWrite(led7, HIGH); break; case 'l': digitalWrite(led7, LOW); break;
case 'm': digitalWrite(led8, HIGH); break; case 'n': digitalWrite(led8, LOW); break;
case 'o': digitalWrite(led9, HIGH); break; case 'p': digitalWrite(led9, LOW); // ultima luz del interior de la casa break;
case 'q': digitalWrite(led10, HIGH); digitalWrite(led11, HIGH); // lucess del jardin digitalWrite(led12, HIGH); digitalWrite(led13, HIGH); break; case 'r': digitalWrite(led10, LOW); digitalWrite(led11, LOW); //apagamos luces del jardin digitalWrite(led12, LOW); digitalWrite(led13, LOW); break;
case 's': digitalWrite(pirPin, HIGH); // activamos alarma break; case 't': digitalWrite(pirPin, LOW); // desactivamos alarma break;
}
}
{ LDRabc=analogRead(LDRpin); LDRvoltaje=LDRabc*(5.0/1023.0); Serial.print("voltaje LDR: "); delay(200); Serial.println(LDRvoltaje);
if(LDRvoltaje<=1.20){ digitalWrite(led10, HIGH); delay(500); digitalWrite(led11, HIGH); // luces del jardin encienden de noche delay(600); digitalWrite(led12, HIGH); delay(700); digitalWrite(led13, HIGH); delay(800); }
else { digitalWrite(led10, LOW); digitalWrite(led11, LOW); // luces del jardin se apagan de dia digitalWrite(led12, LOW); digitalWrite(led13, LOW); } } }
En este primer codigo logre manjear los leds y el sensor ldr, el problema es cuando junte estos codigos con uno para un sensor pir para menjarlo por bluetooth, ya que logro juntar todos los codigos, y logro manejar el sensor PIR por el bluetooth pero los led ahora no me responden, exepto cuando se activan con el Sensor LDR, si pudieran ayudar en corregir el codigo que he armado, lo agradeceria bastante, ya que hay algo que falla dentro del codigo pero no se que es y que crea conflicto pero no se que es porque soy novato con el arduino. Gracias de antemano.
Título: Re: Ayuda con codigos de arduino, Activar/Desactivar sensor PIR via Bluetooh?
Publicado por: MAFUS en 28 Abril 2017, 15:45 pm
¿Y si empiezas con algo más sencillo y te centras solo en la comunicación bluetooth? Cuando sepas manejarla podrás juntarla con el resto del código. De todas formas te diría que intentaras usar el modelo de trabajo que usan los PLC:
1. Comunicación con el exterior. Serial COM, USB, Bluetooth. 2. Leer las entradas. 3. Ejecución del programa, cálculos, acciones, etc. 4. Refresco de las salidas. 5. Vuelta al punto 1.
Como puedes ver es una máquina de estados con trabajos bien definidos y fácil de depurar.
|