• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z NRF24L01
#1
Witam,
porwałem się na drugi w moim życiu projekt na arduino. Tym razem sterowanie wózka z nadajnikiem i odbiornikiem opartym o NRF24L01.
Mam pewien problem. Otóż wygląda na to, że nie za każdym razem kiedy powinien zostać wysłany pakiet danych jest on wysyłany. Wysyłam go co 70 milisekund. Sprawdziłem to tak: na monitorze portu wyświetlam sobie  komunikat kiedy jest wykonywany fragment kodu przed i po wysyłce. Z reguły te dwa komunikaty dzieli około 35 milisekund (pewnie tyle czasu potrzebne jest na wysłanie danych, swoją drogą trochę długo). Jednak co jakiś czas, z reguły co około sekundę komunikat przed i po wyświetlany jest w tej samej milisekundzie więc wnioskuję, że wtedy nic nie zostało wysłane. A bardzo mi zależy żeby co te około 70 milisekund pakiet został wysłany bo odbiornik sprawdza co ile otrzymuje dane i jeśli ich nie otrzyma w określonych odstępach czasu to wyłącza silniki - a im dłuższy ten czas ustawię w odbiorniku tym większą mam bezwładność zatrzymania się wózka w razie problemów z łącznością.
Dlaczego nie za każdym razem są wysyłane dane i jak najprościej uporać się z tym problemem?

Przesyłam w sumie za każdym razem 6 bajtów. Tutaj fragment kodu odpowiadający za wysyłkę.
Kod:
  static unsigned long timeWyslaniaPakietu = 0;
  if (millis() > timeWyslaniaPakietu + 70 && (xJoystickNeutral - 25 > daneDoWyslania.xValue || xJoystickNeutral + 25 < daneDoWyslania.xValue || yJoystickNeutral - 25 > daneDoWyslania.yValue || yJoystickNeutral + 25 < daneDoWyslania.yValue || daneDoWyslania.liftValue != 0)) {
    Serial.println("przed");
    radio.stopListening();
    radio.write (&daneDoWyslania, sizeof(daneDoWyslania));
    radio.startListening();
    Serial.println("po");
    timeWyslaniaPakietu = millis();
  }
 
Odpowiedź
  


Wiadomości w tym wątku
Problem z NRF24L01 - przez leoj - 29-06-2020, 10:27
RE: Problem z NRF24L01 - przez Jarewa0606 - 29-06-2020, 18:42
RE: Problem z NRF24L01 - przez leoj - 29-06-2020, 20:42
RE: Problem z NRF24L01 - przez Jarewa0606 - 29-06-2020, 21:12
RE: Problem z NRF24L01 - przez leoj - 29-06-2020, 21:25
RE: Problem z NRF24L01 - przez Jarewa0606 - 29-06-2020, 21:47
RE: Problem z NRF24L01 - przez leoj - 29-06-2020, 22:31
RE: Problem z NRF24L01 - przez Jarewa0606 - 29-06-2020, 23:05
RE: Problem z NRF24L01 - przez leoj - 30-06-2020, 07:33
RE: Problem z NRF24L01 - przez Jarewa0606 - 30-06-2020, 15:27
RE: Problem z NRF24L01 - przez leoj - 30-06-2020, 18:16
RE: Problem z NRF24L01 - przez Robson Kerman - 30-06-2020, 07:51
RE: Problem z NRF24L01 - przez leoj - 30-06-2020, 07:56
RE: Problem z NRF24L01 - przez Robson Kerman - 30-06-2020, 13:25
RE: Problem z NRF24L01 - przez leoj - 30-06-2020, 13:42
RE: Problem z NRF24L01 - przez leoj - 30-06-2020, 21:05

Skocz do:


Przeglądający: 1 gości