Stap 5: codering
Deze code moet kunnen worden gekopieerd en geplakt in de Arduino IDE.
Kortom, nadat we alles ingesteld, de arduino leest welke knop is ingedrukt, hoe vaak, en, als de totale persen gelijk is aan een bepaald bedrag, verzamelt de gegevens overeenkomen met een vooraf bepaald aantal persen voor elke knop.
Ik zal bespaart u mijn poging om dit verklaren en leidt u naar gtr_stitch'skeypad als hij heeft een geweldige job uitleg van de programmeertaal.
In de code, kunt u wijzigen hoeveel persen elke knop om te activeren van de servo moet ontvangen. Ook kunt u de vertraging die het slot wacht na ontvangst van een onjuiste combinatie of de tijd die de servo geactiveerd blijft.
Als je iets onduidelijk vinden, laat alstublieft een reactie en ik zal proberen mijn best om uit te leggen.
#include < Servo.h >
Servo MyServo;
Const int button1 = A0;
Const int button2 = a1 worden verkregen;
Const int button3 = A2;
Const int button4 = A3;
houdt spoor van hoeveel keer knop is ingedrukt
int count1 = 0;
int count2 = 0;
int count3 = 0;
int count4 = 0;
houdt van toestand van knop
int gebracht1 = 0;
int state2 = 0;
int state3 = 0;
int staat vallen4 = 0;
bijhoudt aan vorige staat
int prev1 = 0;
int prev2 = 0;
int prev3 = 0;
int prev4 = 0;
totalCount is hoe vele malen knop werd ingedrukt
int totalcount = 0;
verklaren van de LED 's
int groen = 8;
int rood = 10;
VOID Setup {}
pinMode (button1, INPUT);
pinMode (button2, INPUT);
pinMode (button3, INPUT);
pinMode (button4, INPUT);
pinMode (groen, uitvoer);
pinMode (rood, OUTPUT);
Serial.begin(9600);
MyServo.attach(9);
MyServo.write(0);
for (int i = 0; ik < 180; i ++) {}
MyServo.write(i);
delay(50);
}
MyServo.write(0);
}
void loop {}
gebracht1 = digitalRead(button1);
State2 = digitalRead(button2);
state3 = digitalRead(button3);
staat vallen4 = digitalRead(button4);
Als (gebracht1! = prev1) {}
delay(10);
Als (gebracht1 == HIGH) {}
count1 ++;
}
}
Als (state2! = prev2) {}
delay(10);
Als (state2 == HIGH) {}
count2 ++;
}
}
Als (state3! = prev3) {}
delay(10);
Als (state3 == HIGH) {}
count3 ++;
}
}
Als (staat vallen4! = prev4) {}
delay(10);
Als (staat vallen4 == HIGH) {}
count4 ++;
}
}
prev1 = gebracht1;
prev2 = state2;
prev3 = state3;
prev4 = staat vallen4;
totalCount = count1 + count2 + count3 + count4;
Als (totalcount == 4) {}
Als (count1 == 1 & & count2 == 0 & & count3 == 1 & & count4 == 2) {}
Serial.println ('CODE geaccepteerd');
MyServo.write(90);
digitalWrite (groen, hoog);
digitalWrite (rood, laag);
count1 = 0;
count2 = 0;
count3 = 0;
count4 = 0;
totalCount = 0;
delay(10000);
Serial.println();
MyServo.write(0);
digitalWrite (groen, lage);
}
else {}
Als (count1! = 1 & & count2! = 0 & & count3! = 1 & & count4! = 2 & & totalcount == 4) {}
Serial.println ("CODE-REJECED");
digitalWrite (rood, hoge);
digitalWrite (groen, lage);
count1 = 0;
count2 = 0;
count3 - 0;
count4 = 0;
totalCount = 0;
delay(5000);
Serial.println ("ENTER CODE");
digitalWrite (rood, laag);
}
anders als (count1 > 1 & & count2 > 0 & & count3 > 1 & & count4 > 2 || totalcount == 4) {}
Serial.println ("CODE verworpen");
digitalWrite (rood, hoge);
digitalWrite (groen, lage);
count1 = 0;
count2 = 0;
count3 = 0;
count4 = 0;
totalCount = 0;
delay(5000);
Serial.println ("ENTER CODE");
digitalWrite (rood, laag);
}
}
}
}