Paso 4: programa de
Descargo de responsabilidad: no soy un programador y por lo tanto el debajo de código no puede ser más eficiente. No dude en mejorar el código para su propio uso, si ves cualquier error o problemas. Trabaja para mí así que espero que funcione para usted.girar CW a cerradura y CCW para desbloquear
CCW DE 1700; Parada de 1500; CW 1300
escrito por Chris Rybitski
#include < Servo.h >
Cerrojo del servo; crear servo
const int CWLimit = 6; Desbloquear carrera 6
const int CCWLimit = 7; Interruptor de límite de bloqueo 7
const int Redbtn = 12; botón pulsador rojo
const int Blackbtn = 8; botón pulsador negro
const int GreenLED = 10; LED verde
const int rojo = 11; LED rojo
const int Ch1 = 5; canal de RF 1
const int Ch2 = 4; canal de RF 2
const int Buzz = 9; zumbador
Desbloqueo de int = 0;
Cerradura de int = 0;
int contador = 0;
Boolean UnLcomplete = false;
Boolean Lcomplete = false;
void setup()
{
Serial.Begin(9600);
deadbolt.Attach(3); se fija el servo
pinMode (GreenLED, salida);
pinMode (rojo, salida);
pinMode(Buzz,OUTPUT);
pinMode (CWLimit, entrada);
pinMode (CCWLimit, entrada);
pinMode (Redbtn, entrada);
pinMode (Blackbtn, entrada);
pinMode (Ch1, entrada);
pinMode (Ch2, entrada);
sistema de LED y zumbador apagado por defecto
digitalWrite (GreenLED, alto);
digitalWrite (rojo, alto);
digitalWrite (Buzz, alto);
}
void loop()
{
Si (digitalRead(Ch1) == alta || digitalRead(Redbtn) == LOW) {//If remoto presiona o
if(UnLcomplete == false) {//dont ejecute unlock si la puerta ya está desbloqueada
Serial.println("Unlock");
Unlock = ;}} 1
Si (digitalRead(Ch2) == alta || digitalRead(Blackbtn) == LOW) {//If remoto presiona o
if(Lcomplete == false) {//dont ejecutar bloqueo si la puerta está ya cerrada
Serial.println("Lock");
Cerradura = ;}} 1
//---------------UNLOCK-------------------------
Si (desbloqueo == 1) {}
Contador = 0;
mientras que (digitalRead(CWLimit) == LOW) {}
Si (contador > 1500) {}
digitalWrite (Buzz, LOW);
Delay(500);
digitalWrite (Buzz, alto);
}
Else {}
deadbolt.Write(1700);
contador ++;
Delay(1);
}}
deadbolt.Write(1500); parada de servo
digitalWrite (rojo, baja);
digitalWrite (GreenLED, alto);
UnLcomplete = true; desbloqueo completo
Lcomplete = false; restablecer el valor booleano de la cerradura
digitalWrite (Buzz, LOW);
Delay(100);
digitalWrite (Buzz, alto);
Unlock = 0; RESET
}
//--------------LOCK----------------------------
Si (bloqueo == 1) {}
Contador = 0;
mientras que (digitalRead(CCWLimit) == LOW) {}
Si (contador > 1500) {}
digitalWrite (Buzz, LOW);
Delay(500);
digitalWrite (Buzz, alto);
}
Else {}
deadbolt.Write(1300);
contador ++;
Delay(1);
}}
deadbolt.Write(1500);
digitalWrite (GreenLED, LOW);
digitalWrite (rojo, alto);
Lcomplete = true; cerradura completa
UnLcomplete = false; restablecer el valor booleano de la cerradura
digitalWrite (Buzz, LOW);
Delay(100);
digitalWrite (Buzz, alto);
Delay(50);
digitalWrite (Buzz, LOW);
Delay(100);
digitalWrite (Buzz, alto);
Cerradura = 0; RESET
}
}