Popularny post Prometeuszanin Napisano Styczeń 13, 2024 Popularny post Udostępnij Napisano Styczeń 13, 2024 Cześć. Dodaje gotowy program dla tych którzy dopiero się uczą a chcą mieć swój sejf już dzisiaj. Do projektu są potrzebne: Klawiatura Arduino Uno lub klon przewody złączki Zasilanie do arduino (u mnie z akumulatora 12V poprzez stabilizator 9v i 2 kondensatory 22uF 35V) Zasilanie do zamka (przy moim 12V) przekaźnik (u mnie do 30v 10A) Jeśli ktoś chce mogę podać więcej szczegółów, mam film z montażu dla opornych który też mogę dodać. Dorzucam też link do biblioteki do klawiatury. https://drive.google.com/drive/folders/1mxipzIFGr5mJVguOwGk4gk0CJSjblYsH?usp=sharing Informacje jak dodać bibliotekę macie w darmowym kursie na Forbot. (szukaj - "komunikacja z diodami", materiał w okolicy połowy strony) https://forbot.pl/blog/kurs-arduino-ii-diody-rgb-tradycyjne-oraz-ws2812-id15495 Nagranie pokazujące działanie systemu: Pin 11 połączony z przekaźnikiem klawiatura piny od 2 do 9 przekaźnik zasilany z płytki Program #include <Keypad.h> //biblioteka od klawiatury const byte ROWS = 4; // ile wierszy const byte COLS = 4; //ile kolumn byte rowPins[ROWS] = {2, 3, 4, 5}; //piny wierszy byte colPins[COLS] = {6, 8, 7, 9}; //piny kolum char keys[ROWS][COLS] = { //mapowanie klawiatury {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; Keypad klawiatura = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //inicjalizacja klawiatury volatile int stanZamka = 1; int pinZamkaPozycja = 1; int ileCzasuMinelo = 0; void setup() { pinMode(11, OUTPUT); //Sygnał dla przekaźnika } void loop() { char klawisz = 0; //zmienna do przetrzymywania znakow z klawiatury int i = 0; //zmienna pomocnicza do pętli switch(stanZamka) { //Wykonywania akcji odpowiedniej dla danego stanu case 2://Czuwanie systemu digitalWrite(11, LOW); delay(100); ileCzasuMinelo++; if (ileCzasuMinelo >= 50) { stanZamka = 1; } break; case 1: digitalWrite(11, HIGH); klawisz = klawiatura.getKey(); if (klawisz) { //Czy kolejna podana cyfra jest poprawna? if (pinZamkaPozycja == 1 && klawisz == '1') { //Jesli sprawdzamy 1 pozycje PINu pinZamkaPozycja++; //Cyfra poprawna, mozna sprawdzic na kolejna } else if (pinZamkaPozycja == 2 && klawisz == '2') { //Jesli sprawdzamy 2 pozycje PINu pinZamkaPozycja++; //Cyfra poprawna, mozna sprawdzic na kolejna } else if (pinZamkaPozycja == 3 && klawisz == '3') { //Jesli sprawdzamy 3 pozycje PINu pinZamkaPozycja++; //Cyfra poprawna, mozna sprawdzic na kolejna } else if (pinZamkaPozycja == 4 && klawisz == '4') { //Jesli sprawdzamy 4 pozycje PINu stanZamka = 2; //Wszystkie 4 cyfry kodu sa poprawne pinZamkaPozycja = 2; //Resetujemy informacje o wpisywanym pinie } else { pinZamkaPozycja = 2; //Resetujemy informacje o wpisywanym pinie delay(100); } } break; } } Kod możecie zmieniać zmieniając znaki w wierszach. na przykład z "2" na "D". Można też zmienić kod na dłuższy 3 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »