Skocz do zawartości

Jaki program do sterowania dwoma serwo za pomocą modułu nrf24l01


kayhoo

Pomocna odpowiedź

Jestem posiadaczem arduino nano i uno .Ostatnio napotkałem problem z sterowanie dwoma serwo na odległość . Problem polega na tym że jak podepnę jedno serwo na podstawowy program do sterowania to działa ale jak zmienię program i podepnę 2 serwa to już nie działa .Nie wiem na czym polega dokładnie problem ale podejrzewam program. (Podstawowy program jest na jedno serwo a zmieniony na dwa)

 

 

nadajnik__program_podstawowy_.zip

odbiornik__program_podstawowy_.zip

nadajnik__program_zmieniony_.zip

odbiornik__program_zmieniony_.zip

Link do komentarza
Share on other sites

Skoro każdy program ma max 35 linijek równie dobrze mógłbyś je wkleić na forum, zaoszczędziłbyś sobie i innym niepotrzebnej roboty. To po pierwsze.

Po drugie - co rozumiesz przez "nie działa". Tylko jedno serwo się rusza? Żadne się nie rusza? Oba się ruszają tak samo?

Spójrz na tablicę "msg" - używasz tablicy 1-elementowej chociaż funkcja "radio.read" przyjmuje dwa parametry - adres tablicy i jej rozmiar. Zamiast za jednym razem wysłać dwie wartości, Ty dwa razy wysyłasz jedną wartość. Nie wiedząc jakiej konkretnie biblioteki używasz, pokusiłbym się nawet o założenie, że pierwsza wiadomość może nie zostać do końca wysłana, a Ty już chcesz wysłać następną (no bo nie znam kodu bibliotek). Druga sprawa - skąd odbiornik ma wiedzieć, która wiadomość jest dla którego serwa?

Spróbuj z tablicą dwuelementową, utwórz sobie
 

// nadajnik
int msg[2];

//...

msg[0] = zmapowany_potencjometr1;
msg[1] = zmapowany_potencjometr2;
radio.write(msg, 2);

//...

i

// odbiornik
int msg[2];

//...
  
radio.read(msg, 2);
serwo1.write(msg[0]);
serwo2.write(msg[1]);

//...

Może pomoże... Rozszerz opis problemu, bo strasznie mało informacji.

Link do komentarza
Share on other sites

Nie pomoże - trzeba by było 

radio.read(msg,4);

albo zdeklarować msg jako unsigned char a nie int.

A tak poprawnie to będzie:

//nadajnik
radio.write(msg, sizeof msg);
//odbiornik
radio.read(msg, sizeof msg);
	

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

ok dzięki spróbuje tak jak mówiłeś

a co do : co rozumie przez nie działa

czasami ruszają się ona tak samo a czasami w ogóle nic się nie dzieje.

 

1 godzinę temu, ethanak napisał:

Nie pomoże - trzeba by było 


radio.read(msg,4);

albo zdeklarować msg jako unsigned char a nie int.

A tak poprawnie to będzie:


//nadajnik
radio.write(msg, sizeof msg);
//odbiornik
radio.read(msg, sizeof msg);
	

 

jak i gdzie mam to dać że siętak zapytam

a tak z innej beczki macie namiary na jakieś dobre kable najlepiej męsko-żeńskie

 

bo istnieje prawdopodobieństwo że kable nie kontaktują (wiadomo wszystko chińskie łapki robiły 😉)

@Nawyk raczej twój pomysł działa ba pierwsze serwo się rusza ale drugie nie mogę sprawdzić dokładnie ponieważ kable od modułu komunikacyjnego nie kontaktują.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.