Étape 4: programme
AVERTISSEMENT : je ne suis pas un programmeur et c’est pourquoi le code ci-dessous peuvent ne pas être le plus efficace. N’hésitez pas à améliorer le code pour vos propres utilisations si vous voyez des erreurs ou des problèmes. Ça marche pour moi alors j’espère que cela fonctionne pour vous.Tournez CW verrouillage et CCW pour déverrouiller
1700 CCW ; Arrêt de 1500 ; 1300 CW
écrit par Chris Rybitski
#include < Servo.h >
Pêne dormant à servo ; créer servo
const int CWLimit = 6 ; Fin de course sur 6 déverrouiller
const int CCWLimit = 7 ; Fin de course sur l’écluse 7
const int Redbtn = 12 ; bouton poussoir rouge
const int Blackbtn = 8 ; bouton poussoir noir
const int que = 10 ; LED verte
const int RedLED = 11 ; LED rouge
const int Ch1 = 5 ; canal RF 1
const int Ch2 = 4 ; canal RF 2
const int Buzz = 9 ; avertisseur sonore
int Unlock = 0 ;
int Lock = 0 ;
minuterie d’int = 0 ;
UnLcomplete booléen = false ;
Lcomplete booléen = false ;
void setup()
{
Serial.Begin(9600) ;
Deadbolt.Attach(3) ; attache le servo
pinMode (que, sortie) ;
pinMode (RedLED, sortie) ;
pinMode(Buzz,OUTPUT) ;
pinMode (entrée, CWLimit) ;
pinMode (entrée, CCWLimit) ;
pinMode (entrée, Redbtn) ;
pinMode (entrée, Blackbtn) ;
pinMode (Ch1, entrée) ;
pinMode (Ch2, entrée) ;
la valeur de LED et Buzzer d’être désactivé par défaut
digitalWrite (que, élevé) ;
digitalWrite (RedLED, élevé) ;
digitalWrite (Buzz, HIGH) ;
}
void loop()
{
Si (digitalRead(Ch1) == haute || digitalRead(Redbtn) == faible) {//If distant ou bouton est pressé
if(UnLcomplete == false) {//dont exécuter débloquer si la porte est déjà débloqué
Serial.println("Unlock") ;
Déverrouiller = 1;}}
Si (digitalRead(Ch2) == haute || digitalRead(Blackbtn) == faible) {//If distant ou bouton est pressé
if(Lcomplete == false) {//dont exécuter verrou si la porte est déjà verrouillée
Serial.println("Lock") ;
Verrou = 1;}}
//---------------UNLOCK-------------------------
Si (Unlock == 1) {}
Timer = 0 ;
même si (digitalRead(CWLimit) == faible) {}
Si {(minuterie > 1500)
digitalWrite (Buzz, faible) ;
Delay(500) ;
digitalWrite (Buzz, HIGH) ;
}
else {}
Deadbolt.Write(1700) ;
minuterie ++ ;
Delay(1) ;
}}
Deadbolt.Write(1500) ; arrêt de servo
digitalWrite (RedLED, basse) ;
digitalWrite (que, élevé) ;
UnLcomplete = true ; déverrouiller complète
Lcomplete = false ; réinitialiser le verrouillage boolean
digitalWrite (Buzz, faible) ;
Delay(100) ;
digitalWrite (Buzz, HIGH) ;
Déverrouiller = 0 ; remise à zéro
}
//--------------LOCK----------------------------
Si (Lock == 1) {}
Timer = 0 ;
même si (digitalRead(CCWLimit) == faible) {}
Si {(minuterie > 1500)
digitalWrite (Buzz, faible) ;
Delay(500) ;
digitalWrite (Buzz, HIGH) ;
}
else {}
Deadbolt.Write(1300) ;
minuterie ++ ;
Delay(1) ;
}}
Deadbolt.Write(1500) ;
digitalWrite (que, faible) ;
digitalWrite (RedLED, élevé) ;
Lcomplete = true ; serrure complète
UnLcomplete = false ; réinitialiser le verrouillage boolean
digitalWrite (Buzz, faible) ;
Delay(100) ;
digitalWrite (Buzz, HIGH) ;
Delay(50) ;
digitalWrite (Buzz, faible) ;
Delay(100) ;
digitalWrite (Buzz, HIGH) ;
Verrou = 0 ; remise à zéro
}
}