Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- Servo myservo; //servo - zamek pudełka
- int serv_pos = 50;
- bool maze = 0;
- const int set = 11; //pin przycisku wyboru cyfry w dacie
- const int green_m = 10; //
- const int green_d = 12; //piny diod
- const int red_d = 13; //
- int tab[8] = {0,0,0,0,0,0,0,0}; //tablica do przechowywania daty
- int t = 0; //element tablicy
- int buttonState = 0; //
- int buttonState1 = 0; // stan przycisków (gwoździ)
- int buttonState2 = 0; //
- int buttonState3 = 0; //
- void setup() {
- myservo.attach(3);
- myservo.write(90);
- pinMode(green_m, OUTPUT);
- pinMode(red_d,OUTPUT);
- pinMode(green_d,OUTPUT);
- pinMode(set,INPUT_PULLUP);
- pinMode(A0, INPUT_PULLUP); //
- pinMode(A1, INPUT_PULLUP); // gwoździe podciągnięte do 5V
- pinMode(A4, INPUT_PULLUP); //
- pinMode(A5, INPUT_PULLUP); //
- pinMode(A2,INPUT); // pokrętło - potencjometr
- }
- void loop() {
- buttonState = analogRead(A0);
- buttonState1 = analogRead(A1);
- buttonState2 = analogRead(A4);
- buttonState3 = analogRead(A5);
- delay(100);
- if (buttonState <1010 && buttonState1 <1010 && buttonState2 <1010 && buttonState3 <1010) { // wartość 1010 dobierałem przez kilka prób
- digitalWrite(green_m, HIGH); // odczytu analogowego na monitorze
- maze = 1; // portu szeregowego po przyłożeniu palca
- }
- if(maze == 1) // jeżeli labirynt rozwiązany to przejście do szyfru
- {
- int knob = analogRead(A2)/76; // odczyt z pokrętła 0-9
- if(digitalRead(set)== LOW) // naciśnięcie przycisku
- {
- delay(20);
- tab[t] = knob;
- while(digitalRead(set)== LOW){}
- if(t<=7)
- t++;
- delay(20);
- }
- if(t == 8)
- {
- 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
- {
- digitalWrite(green_d,HIGH);
- delay(1000);
- digitalWrite(green_d,LOW);
- myservo.write(serv_pos);
- delay(2000);
- myservo.write(90);
- digitalWrite(green_m, LOW);
- t =0;
- maze = 0;
- }
- else
- {
- digitalWrite(red_d,HIGH);
- delay(1000);
- digitalWrite(red_d,LOW);
- t=0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement