Advertisement
Jellay

Untitled

Jan 17th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. #include <Servo.h>
  2. Servo myservo; //servo - zamek pudełka
  3. int serv_pos = 50;
  4. bool maze = 0;
  5.  
  6. const int set = 11; //pin przycisku wyboru cyfry w dacie
  7. const int green_m = 10; //
  8. const int green_d = 12; //piny diod
  9. const int red_d = 13; //
  10. int tab[8] = {0,0,0,0,0,0,0,0}; //tablica do przechowywania daty
  11. int t = 0; //element tablicy
  12.  
  13. int buttonState = 0; //
  14. int buttonState1 = 0; // stan przycisków (gwoździ)
  15. int buttonState2 = 0; //
  16. int buttonState3 = 0; //
  17.  
  18. void setup() {
  19.  
  20. myservo.attach(3);
  21. myservo.write(90);
  22.  
  23. pinMode(green_m, OUTPUT);
  24. pinMode(red_d,OUTPUT);
  25. pinMode(green_d,OUTPUT);
  26.  
  27. pinMode(set,INPUT_PULLUP);
  28.  
  29. pinMode(A0, INPUT_PULLUP); //
  30. pinMode(A1, INPUT_PULLUP); // gwoździe podciągnięte do 5V
  31. pinMode(A4, INPUT_PULLUP); //
  32. pinMode(A5, INPUT_PULLUP); //
  33.  
  34. pinMode(A2,INPUT); // pokrętło - potencjometr
  35. }
  36.  
  37. void loop() {
  38. buttonState = analogRead(A0);
  39. buttonState1 = analogRead(A1);
  40. buttonState2 = analogRead(A4);
  41. buttonState3 = analogRead(A5);
  42. delay(100);
  43. if (buttonState <1010 && buttonState1 <1010 && buttonState2 <1010 && buttonState3 <1010) { // wartość 1010 dobierałem przez kilka prób
  44. digitalWrite(green_m, HIGH); // odczytu analogowego na monitorze
  45. maze = 1; // portu szeregowego po przyłożeniu palca
  46.  
  47. }
  48. if(maze == 1) // jeżeli labirynt rozwiązany to przejście do szyfru
  49. {
  50. int knob = analogRead(A2)/76; // odczyt z pokrętła 0-9
  51. if(digitalRead(set)== LOW) // naciśnięcie przycisku
  52. {
  53. delay(20);
  54. tab[t] = knob;
  55. while(digitalRead(set)== LOW){}
  56. if(t<=7)
  57. t++;
  58. delay(20);
  59.  
  60. }
  61.  
  62. if(t == 8)
  63. {
  64. if(tab[0]==0 && tab[1]==4 && tab[2]==0 && tab[3]==6 && tab[4]==2 && tab[5]==0 && tab[6]==1 && tab[7]==6) // jesli hasło prawidłowe
  65. {
  66. digitalWrite(green_d,HIGH);
  67. delay(1000);
  68. digitalWrite(green_d,LOW);
  69. myservo.write(serv_pos);
  70. delay(2000);
  71. myservo.write(90);
  72. digitalWrite(green_m, LOW);
  73. t =0;
  74. maze = 0;
  75. }
  76. else
  77. {
  78. digitalWrite(red_d,HIGH);
  79. delay(1000);
  80. digitalWrite(red_d,LOW);
  81. t=0;
  82. }
  83. }
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement