Skocz do zawartości

Sterowanie bezprzewodowe serwomechanizmem za pomocą tact switchy i nrf24l01.


Pomocna odpowiedź

54 minuty temu, farmaceuta napisał:

nie chce bledu popelnic bo kwasu nie bylo i kalafonia musze sie meczy..

E... jakiego kwasu?

Masz denaturat? To rozpuść kalafonię w denaturacie, całkiem niezły topnik wychodzi. A jak masz izopropanol to w ogóle bajka...

A działać powinno. Może najpierw sprawdź na stykówce?

5 minut temu, ethanak napisał:

A działać powinno. Może najpierw sprawdź na stykówce?

Moze i faktycznie tak zrobie...poprostu tak na szybko musze to wykonac dlatego tak gonie z tym...

 

6 minut temu, ethanak napisał:

E... jakiego kwasu?

Zwykly kwas do lutowania...w tych buteleczkach jak spirytus salicylowy...ja zawsze na tym lutowalem i obylo sie bez stanow przed zawalowych...czego o kalafoni nie moge powiedziec...😅

 

8 minut temu, ethanak napisał:

Masz denaturat? To rozpuść kalafonię w denaturacie, całkiem niezły topnik wychodzi. 

A widzisz...wogole mi do glowy taki pomysl nie przyszedl...musze poszukac moze cos zdybie...😉 dziekuje za pomoc🙂

Ja bym dołożył kondensator na linię zasilania nrfa. Miałem też problem z wyjściem 3,3V i tymi modułami. Działało ale krótko. Później musiałem użyć dodatkowego stabilizatora. Problem dotyczył Arduino Mega (klon) ale powtórzył się trzykrotnie - może przypadek albo kiepska seria.

  • Pomogłeś! 1
21 godzin temu, ethanak napisał:

 Może najpierw sprawdź na stykówce?

i to byla genialna mysl..biorac moje szczescie pod uwage ktorego szczesciem nazwac nie moge..podpialem wszystko, wgralem prosty szkic i nie dziala..w odbiorniku gdy cos odbiore to mam wyswietlic w monitorze co,  i zmienic stan diody...problem w tym ze niby cos odbieram nawet jak zasilanie rf24 odlaczone...w nadajniku wysylam co sekunde no ale nic nie dochodzi...ktos ma pomysly o co tu chodzi??

TRANSMITER

//Transmiter
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(10, 9); // CE, CSN
const byte address[6] = "00001";

byte data = 9;

void setup() {
 /* radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
   radio.setDataRate(RF24_250KBPS);
   */
     radio.begin();
  radio.openWritingPipe(address);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_LOW);
  
pinMode(2 , INPUT);
pinMode(3 , INPUT);
}
 void loop(){
  
    radio.write(&data, sizeof(data));
   delay(1000);
  }
  

ODBIORNIK

//Reciver
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

byte data = 0;
byte stan = 0;

RF24 radio(10, 9); // CE, CSN
const byte address[6] = "00001";

void setup() {
  Serial.begin(9600);
 /* radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
  radio.setDataRate(RF24_250KBPS);
  */
    radio.begin();
  radio.openReadingPipe(0, address);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_LOW);
  radio.startListening(); //  Set the module as receiver
  //resetData();
  pinMode(13, OUTPUT);
}
void loop()
{  
  if ( radio.available() ) {
    radio.read(&data, sizeof(data));
    Serial.println(data);
}

if (data == 10) {
  stan = !stan;
  digitalWrite(13, stan);
  data = 0;
}
delay(1000);

 
}

 

Pytanie pierwsze: dlaczego z premedytacją pozbywasz się możliwości kontroli (tzn. informacji dla nadajnika czy informacja została odebrana)? (Nie, nie będę nic pisał na ten temat, w tym wątku już o tym pisałem).

Pytanie drugie: czy jesteś na 100% pewien że w odbiorniku nrf nie używa pinu 13 i możesz go sobie użyć do migania ledą?

Dalej mi się nie chce 😉

  • Pomogłeś! 1
28 minut temu, ethanak napisał:

Pytanie drugie: czy jesteś na 100% pewien że w odbiorniku nrf nie używa pinu 13 i możesz go sobie użyć do migania ledą?

Dalej mi się nie chce 😉

...............ahhhhhh a to glupi leb ze mnie! przeciez pin 13 to SCK...wstyd i chanba...dziekuje za podpowiedz..😉

30 minut temu, ethanak napisał:

dlaczego z premedytacją pozbywasz się możliwości kontroli (tzn. informacji dla nadajnika czy informacja została odebrana)?

Chodzi Ci pewnie o to setAutoAck()...no a jak mam z tego skorzystac? Tzn. wiem jak zainicjowac tylko w jaki sposob zostane poinformowany o powodzeniu/niepowodzeniu transmisji?

No nic...juz sprawdzam z tym pinem 13 czy bedzie dzialalo

1 minutę temu, farmaceuta napisał:

tylko w jaki sposob zostane poinformowany o powodzeniu/niepowodzeniu transmisji?

Dobra, znaj moje dobre serce... w końcu późno jest, nie każdemu się chce czytać o tej porze poprzednie posty w wątku...

Co zwraca Twoim zdanie, radio.write?

 

  • Lubię! 1
6 minut temu, ethanak napisał:

Co zwraca Twoim zdanie, radio.write?

niewiedzialem ze wogole cos zwraca...he, false/true??

no narazie to musze dojsc czemu nie dziala bo dalej nie dziala...przelece jeszcze raz kabelki

20 minut temu, ethanak napisał:

Dobra, znaj moje dobre serce... w końcu późno jest, nie każdemu się chce czytać o tej porze poprzednie posty w wątku...

Przeczytam przeczytam...😉 zeby nie bylo ze len ze mnie..😉 no juz doszedlem co nie tak bylo dzieki sugesti @matural  czyli 

 

22 godziny temu, matural napisał:

Ja bym dołożył kondensator na linię zasilania nrfa.

I tak...dokladam kondensator, dziala...wyciagam kondensator, nie dziala...😅 czyli jednak kondzioly to potega..😄 (zasilanie 3.3v z Uno)...drugi rf zasilany z pro mini poprzez ftdi 3.3v dziala bez problemu..

Dnia 13.05.2021 o 16:15, ethanak napisał:

Przy ustawionym autoAck możesz sprawdzić czy odbiornik dostał dane (sprawdzaj co zwróci write) 

No i tak...cos tam poczytalem i rozumiem ze przy autoAck=true gdy pakiet nie dotrze do RX to write zwraca false...i rozumiem ze sam musze uwzglednic ponowne wyslanie danych z TX w takiej sytuacji (write=false)...a jest jeszcze cos takiego jak radio.setRetries() gdzie podaje czas miedzy probami i ilosc prob ponownego wyslania danych w przypadku kiedy te nie dotarly do RX...tutaj tez musze "osobiscie" ponawiac te proby czy jakos z automatu to sie dzieje?

6 minut temu, farmaceuta napisał:

i rozumiem ze sam musze uwzglednic ponowne wyslanie danych z TX w takiej sytuacji (write=false)...

Raczej podjąć decyzję co zrobić, jeśli odbiornik nie odpowiada (np. ktoś go wyłączył), bo do ponownego wysyłania wiadomości...

7 minut temu, farmaceuta napisał:

jest jeszcze cos takiego jak radio.setRetries()

🙂

 

  • Pomogłeś! 1
7 minut temu, ethanak napisał:

Raczej podjąć decyzję co zrobić, jeśli odbiornik nie odpowiada (np. ktoś go wyłączył), bo do ponownego wysyłania wiadomości...

Aha..juz kapuje😉

 

8 minut temu, ethanak napisał:

 

🙂

Yhymmm....doczytam doczytam..hehe😉 jeszcze musze sobie ta zmiane z TX/RX zrobic ale to na spokojnie...a zapytam tylko z ciekawosci jeszcze...moge miec max do 6 rf naraz...ale gdybym np mial 20 sztuk RX i jeden adres we wszystkich plus ten sam adres w TX to rozumiem ze wszystkie odbieraja normalnie tak? (domyslam sie ze napewno tak, ale lepiej zapytac)

8 minut temu, farmaceuta napisał:

gdybym np mial 20 sztuk RX i jeden adres we wszystkich

To wtedy nie możesz stosować ack. Albo stosujesz rozgłoszenie (tak jak opisałeś, czyli nadajnik sobie nadaje tak jak nadajnik Radia Maryja i nie interesuje go kto co odebrał, aby płacił), albo połączenie jeden do jednego (czyli z możliwością jak w sieci TCP, gdzie każdy wysłany pakiet musi być potwierdzony).

 Oczywiście możesz stosować połączenie jeden do jednego bez potwierdzenia, tyle że wtedy nadajnik nie wie czy komunikat został odebrany.

  • Pomogłeś! 1
39 minut temu, ethanak napisał:

To wtedy nie możesz stosować ack. 

 Oczywiście możesz stosować połączenie jeden do jednego bez potwierdzenia, tyle że wtedy nadajnik nie wie czy komunikat został odebrany.

Tak tak...juz udalo mi sie wczoraj to doczytac..🙂 dzieki za odpowiedzi😉

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ę »
×
×
  • Utwórz nowe...