Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // projekt zamek szyfrowy sterowany bezprzewodowo przez NRF24L01
- // sterowanie klawiaturą 4x3
- // komunikacja pomiedzy NANO z klawiatura i NANO z servo
- // versja v0.1 realizuje wyłącznie sterowanie serwem przez klawiaturę na jednym NANO, bez komunikacji RF
- // wersja v0.11 realizuje dodatkowo usypianie diód LED dla oszczędności prądu. stan zamka odczytuje #
- // wersja v0.111 realizuje dodatkowo zamykanie i otwieranie z klawiszy w domu oraz stałe świecenie LED w domu oznaczających otwarcie lub zamknięcie zamka
- // wersja v1.0 realizuje wszystkie funkcje wcześniejszych wersji v0.111 oraz komunikację RF
- // wersja v1.0 podzielona jest na plik TX (transmisja - płytka z klawiaturą i przyciskiem) oraz RX (odbiornik - płytka z serwem)
- //---------- biblioteki
- #include <SPI.h>
- #include <nRF24L01.h>
- #include <RF24.h>
- #include <Servo.h>
- //#include <avr/sleep.h>
- RF24 radio(9, 10); // piny CE, CSN na płytce Nano #9 i#10
- const byte addresses[6] = "00001"; // kanał komunikacji
- Servo myservo;
- int otwarte = 0; //serwo kąt otwarcia
- int posrodku = 45; // serwo kąt początkowy
- int zamkniete = 90; //serwo kąt zamknięcia
- int stan_oz = zamkniete; //serwo stan otwarcia zamknięcia
- void setup() {
- delay (100);
- myservo.attach(3); //serwo do pin 3
- myservo.write(zamkniete); //ustawienie serwa w początkowej pozycji zamknięte
- delay(2000);
- myservo.write(posrodku); //ustawienie serwa w początkowej pozycji środkowej
- radio.begin(); //uruchomienie radia
- radio.openReadingPipe(0, addresses); //ustawienie jako odbiornik
- radio.setPALevel(RF24_PA_MIN); //ustawienie mocy nadawania na minimum
- radio.startListening(); //nasłuchiwanie
- delay(50);
- }
- void loop() {
- delay(5);
- if ( radio.available()) {
- radio.read(&stan_oz, sizeof(stan_oz)); //odczytaj i zapisz do zmiennej
- if (stan_oz == otwarte){
- myservo.write(otwarte);
- delay(500);
- myservo.write(posrodku); //wykonaj na serwo z zadaną wartością zmiennej
- }
- else if (stan_oz == zamkniete){
- myservo.write(zamkniete);
- delay(500);
- myservo.write(posrodku);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement