Witam, posiadam 2x Arduino oraz dwa moduły radiowe HC-12, które komunikują się za pomocą UART (Tx,Rx). Mój problem polega na tym, że wysyłając dane (odczyt 2x potencjometr oraz przycisk) za pomocą println odbieram dane np.
21 potencjometr
1023 potencjometr
0 przycisk
W taki sposób wyświetlają sie na monitorze portu szeregowego, a moim celem jest aby kazdą linijkę przypisać do np. int w odbiorniku by móc użyć tych danych
Nadajnik:
Nie jestem pewny jak działa ten przykładowy program, wiec nie wiem jak mógłbym go wykorzystać w moim programie. Zastanawiam się jak rozdzielić te wartości, poniewaz ilość znaków sie z mienia np. 0-1023. Jeśli mógłbyś mi to lepiej wytłumaczyć lub dopasować to do mojego programu byłbym wdzięczny.
Witam, posiadam 2x Arduino oraz dwa moduły radiowe HC-12, które komunikują się za pomocą UART (Tx,Rx). Mój problem polega na tym, że wysyłając dane (odczyt 2x potencjometr oraz przycisk) za pomocą println odbieram dane np.
21 potencjometr
1023 potencjometr
0 przycisk
No to masz praktycznie wszystko co potrzeba..
Wymagane jest dodatkowo tylko trochę wiedzy, która w relatywnie łatwy sposób zrozumiesz studiując te poniżej kilka źródeł.
Ponieważ musisz miec komunikację szeregową pomiędzy płytką arduino i układem HC12 oraz/również chcesz jednocześnie miec szeregową pomiędzy arduino i komputerem, zatem potrzebujesz dwa oddzielne, nazwijmy systemy/kanały.
Normalnie do komunikacji pomiędzy komputerem a płytką Arduino (update programu, Serial Monitor) wykorzystujesz wbudowany w układ hardwarowy system komunikacji szeregowej, a płytka arduino dysponuje tylko jednym taim układem, więc pozostaw tak jak jest a ten drugi ‘tor’ będzie musiał byc ‘softwarowy’.
Wobec czego będzie do tego wymagana odpowiednia library(biblioteka) : SoftwareSerial.h
Jako drugi dośc dobry przykład na Y/T to:
https://www.youtube.com/watch?v=DGRPqeacJns Autor/narrator troche się spieszy, więc niektóre fragmenty będziesz musiał przesłuchac kilkakrotnie...
pod oknem video znajdziesz opis całości oraz link do jego strony, skąd możesz download wszystkie przykłady.
I wreszcie trzecie źródło i niemal gotowy kode to :
https://www.youtube.com/watch?v=vqRqtgvltOI Również , pod video znajdziesz stosowny link do strony autora zawierającą dokładniejszą częśc opisową z rysunkami podłączeń, a także przykładowy program/(sketch), który już na tym etapie powinieneś potrafic zmodyfikowac go do swoich wymogów, albo napisac swój własny.
Dziękuję za tyle informacji ale już wcześniej przestudiowałem chyba każdy możliwy link zawierający info o module HC-12. Ale przynajmniej zwróciłem większą uwagę na 3. link i ten kod do sterowania silnikiem krokowym. Zacząłem więc zmieniać ten kod na swoją potrzebę i niby wszystko zrozumiałem jednak na Serial monitorze wywala mi masę danych na które nie ma znaczenia nawet krecenie potencjometrem. Mianowicie ostatnia zmienna w kodzie, którą chcę wyswietlić powinna pokazywać własnie odczyt potencjometru a wywala te dziwne dane. Kod poniżej:
Nadajnik:
Kod: C / C++
Zaloguj się, aby zobaczyć kod
Odbiornik:
Kod: C / C++
Zaloguj się, aby zobaczyć kod
Mam jeszcze pytanie co do linijki zawierającej:
Kod: C / C++
Zaloguj się, aby zobaczyć kod
Zmienna incomingByte już była charem wiec czemu jest znowu zmieniana na to. Po za tym zapis "+=" działa gdy po obu stronach są zmienne tego samego typu wiec nie wiem co sie dzieje w tej linijce. Przydałoby mi się słowne powiedzenie co sie tutaj dzieje. Oraz czemu nie może mi wyświetlić linijka po linijce wartości int z potencjometru.
Sprawdziłem link, i znalazł się tam jeden przykład, który pasował by do projektu, lecz zawiera on funkcje, których wyjaśnienia nie mogłem znaleźć w necie. Pozostane więc przy moim poprzednim komentarzu, i prosiłbym o pomoc w zrozumieniu co jest w tym kodzie nie tak.
Sprawdziłem link, i znalazł się tam jeden przykład, który pasował by do projektu, lecz zawiera on funkcje, których wyjaśnienia nie mogłem znaleźć w necie. Pozostane więc przy moim poprzednim komentarzu, i prosiłbym o pomoc w zrozumieniu co jest w tym kodzie nie tak.
Jak ktoś może udzielic pomocy skoro piszesz że: "znalazł się tam jeden przykład, który pasował by do projektu, lecz zawiera on funkcje, których wyjaśnienia nie mogłem znaleźć w necie"?
Nie spodziewaj się że ktoś zechce ci napisac gotowy program na oba układy (transmitter, oraz receiver).
Abyś miał pełniejszy obraz, przeanalizuj tą poniżej dyskusję, całkowicie zbieżną z twoim tematem, z ta różnicą że tam autor potrzebuje przetransmitowac kilka analogowych zmiennych, gdy tymczasem ty masz ich dwie (2).
Czytaj uważnie i analizuj ze zrozumieniem (!!!); inaczej zgubisz się.
Zwróc uwagę że jeden z konsultantów (Robin 2) to autor sugerowanego 'źródła do studiowania' w poprzedniej moje odpowiedzi.
Zwróc też uwagę na post #27 (PaulS) - jego reakcja odnośnie konversji zmiennych int do String przed ich wysłaniem.
Nie jest tego dużo, zaledwie 3 strony....
✨ Użytkownik poszukuje pomocy w przypisaniu danych z komunikacji UART do zmiennych typu int w projektach z użyciem Arduino i modułów radiowych HC-12. W swoim kodzie nadajnika odczytuje wartości z potencjometrów i przycisku, a następnie wysyła je przez port szeregowy. Problemy pojawiają się przy odbiorze danych, gdzie użytkownik nie wie, jak rozdzielić i przypisać te wartości do zmiennych. Odpowiedzi sugerują użycie biblioteki SoftwareSerial do obsługi komunikacji oraz wskazują na potrzebę konwersji zmiennych int na String przed ich wysłaniem. Użytkownik jest również zachęcany do przestudiowania dostępnych tutoriali i przykładów kodu, aby lepiej zrozumieć problem. Wygenerowane przez model językowy.