Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h> //dodaj obsługę biblioteki SPI
- #include <nRF24L01.h> //dodaj bibliotekę obsługującą moduł
- #include <RF24.h> //dodaj bibliotekę główną modułów RF24
- #include <avr/sleep.h> //library needed to use AVR based sleep API
- #define S1 9
- #define S2 3
- #define S3 5
- #define S4 6
- #define K 10
- // S1-> O== ==O <-S2
- // = =
- // = =
- // ==
- // = =
- // = =
- // S3 -> O== ==O <-S4
- //
- //================================================================================================================
- const uint64_t kod = 0x1CF8361637LL; //kod kanału
- RF24 radio(7, 8); //tworzymy instancje komunikacji
- int stan=0; //tworzymy zmienną przechowującą przesłane dane
- long prawo;
- long lewo;
- long tyl;
- long przod;
- long kamera;
- long dol;
- long gora;
- //============================================================================================================
- void setup()
- {
- Serial.begin(9600);
- // pinMode(dioda,OUTPUT);
- // wirelessSPI.maskIRQ(1,1,0); //mask all IRQ triggers except for receive (1 is mask, 0 is no mask)
- //ustawiamy diodę jako wyjście
- delay(1000); //przed uruchomieniem pętli głównej odczekaj 1s
- radio.begin(); //uruchom moduł
- radio.openReadingPipe(1,kod); //zacznij odczyt z kanału o danym kodzie
- radio.startListening(); //zacznij odczyt danych
- radio.setPALevel(RF24_PA_HIGH);
- // wirelessSPI.maskIRQ(1,1,0); //mask all IRQ triggers except for receive (1 is mask, 0 is no mask)
- pinMode(S1, OUTPUT);
- pinMode(S2, OUTPUT);
- pinMode(S3, OUTPUT);
- pinMode(S4, OUTPUT);
- pinMode(K, OUTPUT);
- };
- //=========================================================================================================================================
- void loop()
- {
- if (radio.available()) //jeżeli są jakieś dane do odczytu
- {
- radio.read(&kamera, sizeof(long));
- radio.read(&stan, sizeof(int)); //odczyt z tego joysticka cnie, tyle że na jednym ma byc tylko os OY do korekty mocy,
- radio.read(&prawo, sizeof(long)); //a na drugim wszystkie żeby płynnie przechodzić ze skrętu w bok na przod
- radio.read(&lewo, sizeof(long));
- radio.read(&dol, sizeof(long));
- radio.read(&gora, sizeof(long)); //moc wszystkich silnikow na raz
- radio.read(&przod, sizeof(long)); //moc TYLNYCH silnikow
- radio.read(&tyl, sizeof(long)); //moc PRZEDNICH silnikow
- radio.read(&stan, sizeof(int)); //odczytaj dane i zapisz je do zmiennej stan
- Serial.print("\n"); Serial.print("prawo: "); Serial.print(prawo);
- Serial.print("\n"); Serial.print("lewo: "); Serial.print(lewo);
- Serial.print("\n"); Serial.print("przod: "); Serial.print(przod);
- Serial.print("\n"); Serial.print("tyl: : "); Serial.print(tyl);
- Serial.print("\n"); Serial.print("kamera: "); Serial.print(kamera);
- Serial.print("\n"); Serial.print("gora: "); Serial.print(gora);
- Serial.print("\n"); Serial.print("dol: "); Serial.print(dol);
- //funkcja trzymajca pułap
- if(!gora== 0){
- analogWrite(S1,gora);
- analogWrite(S2,gora);
- analogWrite(S3,gora);
- analogWrite(S4,gora);
- }
- else
- {
- for(int i=70;i>0 ;i--){
- analogWrite(S1,i);
- analogWrite(S2,i);
- analogWrite(S3,i);
- analogWrite(S4,i);
- delay(50);}
- };
- //skręt w lewo
- if(lewo > gora){
- analogWrite(S1,lewo);
- analogWrite(S4,lewo);
- };
- //skręt w prawo
- if(prawo > gora){
- analogWrite(S2,prawo);
- analogWrite(S3,prawo);
- };
- if(przod > gora){
- analogWrite(S3,przod);
- analogWrite(S4,przod);
- };
- if(tyl > gora){
- analogWrite(S1,tyl);
- analogWrite(S2,tyl);
- };
- analogWrite(K, kamera);
- }
- // if(stan == 0) //jeżeli wartość zmiennej stan jest równa zero to:
- //
- // digitalWrite(dioda,HIGH); //zapal diodę
- //
- // else //w przeciwnym wypadku
- // digitalWrite(dioda,LOW); //zgaś diodę
- //
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement