Advertisement
Peet_Peet

NRF24L01 RX Servo full power

Apr 6th, 2020
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // projekt zamek szyfrowy sterowany bezprzewodowo przez NRF24L01
  2. //   sterowanie klawiaturą 4x3
  3. //   komunikacja pomiedzy NANO z klawiatura i NANO z servo
  4. //   versja v0.1 realizuje wyłącznie sterowanie serwem przez klawiaturę na jednym NANO, bez komunikacji RF
  5. //   wersja v0.11 realizuje dodatkowo usypianie diód LED dla oszczędności prądu. stan zamka odczytuje #
  6. //   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
  7. //   wersja v1.0 realizuje wszystkie funkcje wcześniejszych wersji v0.111 oraz komunikację RF
  8. //   wersja v1.0 podzielona jest na plik TX (transmisja - płytka z klawiaturą i przyciskiem) oraz RX (odbiornik - płytka z serwem)
  9.  
  10.  
  11. //---------- biblioteki
  12.  
  13. #include <SPI.h>
  14. #include <nRF24L01.h>
  15. #include <RF24.h>
  16. #include <Servo.h>
  17. //#include <avr/sleep.h>
  18.    
  19. RF24 radio(9, 10);                              // piny CE, CSN na płytce Nano  #9 i#10
  20. const byte addresses[6] = "00001";              // kanał komunikacji
  21.  
  22. Servo myservo;
  23. int otwarte = 0;                              //serwo kąt otwarcia
  24. int posrodku = 45;                               // serwo kąt początkowy
  25. int zamkniete = 90;                            //serwo kąt zamknięcia
  26. int stan_oz = zamkniete;                        //serwo stan otwarcia zamknięcia
  27.  
  28. void setup() {
  29.     delay (100);
  30.      myservo.attach(3);                         //serwo do pin 3
  31.      myservo.write(zamkniete);                  //ustawienie serwa w początkowej pozycji zamknięte
  32.      delay(2000);
  33.      myservo.write(posrodku);                  //ustawienie serwa w początkowej pozycji środkowej
  34.      radio.begin();                             //uruchomienie radia
  35.      radio.openReadingPipe(0, addresses);       //ustawienie jako odbiornik
  36.      radio.setPALevel(RF24_PA_MIN);             //ustawienie mocy nadawania na minimum
  37.      
  38.      radio.startListening();                    //nasłuchiwanie
  39.      delay(50);
  40.    }
  41. void loop() {
  42.      delay(5);
  43.      if ( radio.available()) {
  44.          radio.read(&stan_oz, sizeof(stan_oz)); //odczytaj i zapisz do zmiennej
  45.          if (stan_oz == otwarte){
  46.             myservo.write(otwarte);
  47.             delay(500);
  48.             myservo.write(posrodku);               //wykonaj na serwo z zadaną wartością zmiennej
  49.             }
  50.          else if (stan_oz == zamkniete){
  51.             myservo.write(zamkniete);
  52.             delay(500);
  53.             myservo.write(posrodku);  
  54.             }
  55.     }
  56.  
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement