/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////// PROGRAMA CONTROL INTRUSIÓN LOCAL //////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////// MAGNETICOS E ZUMBADOR ////////////////////////////////////////////////////////////////////////////////////////////////// /*Neste programa controlaremos os sensores magnéticos das fiestras e a porta de acceso, que se empregan no sistema de intrusión. Avisando cun zumbador en caso de perigo por activación dun destes sensores. */ // indicamos o pin da placa no que conectaremos o sensor magnético (reed switch) int intmagneticohabitacion1 = 5; // indicamos o pin da placa polo que sacaremos o sinal para o zumbador int zumbador = 9; // buble de inicio, é onde se indica se os pins son entradas ou saídas void setup() { //configuramos os interruptores magnéticos como entradas con resistencia pull-up interna pinMode(intmagneticohabitacion1, INPUT_PULLUP); //configuramos os avisos sonoros, como unha saída pinMode(zumbador, OUTPUT); //Mostramos no monitor serie os detectores que se empregan Serial.begin(9600); Serial.println("Deteccion de intrusion. Realizase con interruptores magneticos NO nas fiestras, que se activaran cun iman para a simulacion "); } // bucle de traballo void loop() { // lemos o valor de cada sensor magnético para saber se está activado ou non. Se o sensor magnético está activado cun imán, a entrada leerá LOW int valor1 = digitalRead(intmagneticohabitacion1); // se calquera dos sensores se activa avisaremos co zumbador da intrusión. Porque se supón que un sensor magnético se activa cando alguén abriu unha fiestra ou a porta de acceso if (valor1 == 0) { // Se tivesemos 5 magneticos teríamos que facer unha porta OR do estilo if (( valor1 == 0||valor2 == 0||valor3 == 0||valor4 == 0||valor5 == 0)) digitalWrite(zumbador, LOW); // a maioría dos zumbadores como saída funcionan á inversa de outro tipo de elementos, cun 0 é cando emiten son. Pero o modelo que vai na caixa do curso // traballa a nivel alto, emite o son cando recibe un 1. Ademáis está mal serigrafiado: vendo a bucina de frente ó lado esquerdo vai GND, no medio VCC, e no lado dereito sinal. // Repetimos cada 2 segundos (cada 2000ms) delay(2000); } else { digitalWrite(zumbador, HIGH); delay(300); } }