Advertisement
Guest User

Code

a guest
Nov 25th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2. LiquidCrystal lcd (12, 8, 0, 9, 10, 11);
  3. //LCD anschließen
  4.  
  5. const int Piezo = 3;
  6. const int LED = 1;
  7. const int Bewegungsmelder = 13;
  8. const int E1 = 5; //Eingabe: 1
  9. const int E2 = A5; // Eingabe: 2
  10. const int E3 = 7; // Eingabe: 3
  11. const int E4 = 6; //Eingabe: 4
  12. const int Enter = 4; //Pin bestätigen
  13. const int Clear = 1; //Eingabe zurücksetzen
  14.  
  15. char Pin[4] = {'1', '2', '3', '4'}; //Richtiger Pin
  16. char Entered[4] = {'0', '0', '0', '0'}; //eingegebener Pin
  17.  
  18. int count;
  19.  
  20. int right;
  21.  
  22. void setup() {
  23.  
  24. lcd.begin(16, 2); //LCD starten
  25. lcd.clear(); //LCD zurücksetzen
  26.  
  27. pinMode(Piezo, OUTPUT);
  28. pinMode(LED, OUTPUT);
  29. pinMode(Bewegungsmelder, INPUT);
  30. pinMode(E1, INPUT);
  31. pinMode(E2, INPUT);
  32. pinMode(E3, INPUT);
  33. pinMode(E4, INPUT);
  34. pinMode(Enter, INPUT);
  35. pinMode(Clear, INPUT); //Definition der einzelnen Pins
  36.  
  37. Serial.begin(9600); //startet Seriellen Monitor
  38.  
  39. attachInterrupt(0, ResetPin, RISING); //Interrupt zum reseten des Codes
  40.  
  41. }
  42.  
  43. void ResetPin() {
  44. for (int i = 0; i < 5; i++) {
  45. Entered[i] = 0; //Resetet den eingegebenen Pin
  46. }
  47. }
  48.  
  49. void loop() {
  50. digitalWrite(LED, LOW);
  51.  
  52. delay(500);
  53.  
  54. digitalWrite(LED, LOW);
  55.  
  56. do {
  57. if (digitalRead(Clear) == HIGH) {
  58. break;
  59. }
  60. } while (digitalRead(Clear) == LOW); //Wenn die Cleartaste gedrückt wird, geht's weiter.
  61.  
  62. Serial.println("Test1");
  63.  
  64. do {
  65. if (digitalRead(Bewegungsmelder) == HIGH) {
  66. break;
  67. }
  68. } while (digitalRead(Bewegungsmelder) == LOW); //Wenn eine Bewegung erkannt wird, geht's weiter.
  69.  
  70. Serial.println("Test2");
  71.  
  72. lcd.setCursor(0, 0);
  73. lcd.print("Pin eingeben");
  74. delay(3000);
  75. lcd.clear();
  76.  
  77. for (count = 0; count < 5; count++) {
  78.  
  79. do {
  80. if ((digitalRead(E1) == HIGH) || (digitalRead(E2) == HIGH) || (digitalRead(E3) == HIGH) || (digitalRead(E4) == HIGH)) {
  81. goto weiter;
  82. }
  83. } while (digitalRead(Clear) == LOW); //Wenn eine Taste zur Pineingabe gedrückt wird, geht's weiter
  84.  
  85. weiter:
  86. if (digitalRead(E1) == HIGH) {
  87. Entered[count] = 1;
  88. }
  89. else if (digitalRead(E2) == HIGH) {
  90. Entered[count] = 2;
  91. }
  92. else if (digitalRead(E3) == HIGH) {
  93. Entered[count] = 3;
  94. }
  95. else if (digitalRead(E4) == HIGH) {
  96. Entered[count] = 4;
  97. }
  98. lcd.setCursor(count, 0);
  99. lcd.print("*"); //Stern ersetzt eingegebene Nummer.
  100. }
  101.  
  102. for (count = 0; count < 5; count++) {
  103. if (Entered[count] = Pin[count]) {
  104. right++;
  105. }
  106. }
  107.  
  108. if (right = 4) {
  109. lcd.clear();
  110. lcd.print("richtiger Code");
  111. }
  112. else {
  113. lcd.clear();
  114. lcd.print("falscher Code");
  115. }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement