Skocz do zawartości

Arduino i Bluetooth - sterowanie za pomocą 3 "suwaków" na aplikacji zmiennymi w arduino


pcsoft

Pomocna odpowiedź

Witam

Stworzyłem sobie programik na telefon który na arduino za pomocą bluetooth przesyła dane

np fOn, fOff, sOn, sOff i wszystko działą nie ma problemu problem pojawił się z przekazywaniem danych za pomocą suwaków w telefonie. Mam 3 suwaki, którymi reguluje zakres np od 0- 255 i wysyła do bluetooth wartość suwaka np a232 lub b153 lub c123

Mam problem z obrobieniem tych danych jak za pomocą trzech suwaków przekazać wartość na np zmienną x z daną np a323 na y z daną np b153 na z z daną c123 w arduino.

W terminalu poprzez bluetooth widzę po zmianie położenia suwaka literkę suwaka i wartość np a132

Jak odebrać zmienną z konkretnego suwaka i wpisać ją do konkretnej zmiennej na arduino?

Po prostu jakbym miał 1 suwak to bym sobie poradził bo bym przekazywał tylko wartości i nie było by problemu. A przy 3 suwakach nie mam pojęcia siedzę już kilka godzin i brak pomysłów.

Proszę o pomoc czy da się to zrobić w taki sposób jak ja myślę, czy mam coś zmienić w programie na smartphonie, aby inaczej wysłać dane.

Link do komentarza
Share on other sites

Strasznie ciężko jest mi zrozumieć, na czym polega Twój problem, ale wydaje mi się, że potrzebujesz zaprojektować ramkę, za pomocą której Twój telefon będzie się komunikował z arduino przez bluetooth. Obecna "ramka" to po prostu jedna wartość, więc nie ma problemu - to, co wyślesz, to odbierzesz i automatycznie zinterpretujesz. W praktyce potrzebujesz na ogół przesłać więcej informacji i do tego celu tworzy się ramki komunikacyjne. Taka ramka to po prostu przyjęty przez Ciebie standard, w którym jest zakodowana informacja - układasz dane w określonej kolejności w telefonie i znając tę kolejność odczytujesz dane w Arduino.

Najprostsza wersja - układasz ramkę korzystając z ASCII, wstawiając kolejno potrzebne dane, czyli np. w appce na Androidzie masz:

A = 232

B = 131

C = 002

D = 505

układasz to w ramkę:

RAMKA = "232#131#002#505"

i taki string wysyłasz przez uart (bluetooth) do arduino.

Ten sam string odbierasz w Arduino, wiesz, ze pierwsze 3 litery/cyfry to wartość suwaka A, potem jest separator (delimiter), kolejne 3 to wartość suwaka B itd. - musisz stringa po prostu "pociąć", wyciągnąć kolejno interesujące Cię fragmenty, przekonwertować je na zmienną liczbową (np. funkcją atoi) i tyle... Jeśli pytasz o mechanizmy do składania i "cięcia" ramki złożonej ze znaków ASCII, to polecam zainteresować się funkcjami sprintf (składanie) oraz strtok (cięcie na podstawie delimitera)

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dzięki wielkie nie mogłem znaleźć na to sposobu.

Teraz muszę pokombinować w aplikacji i powinienem dać rade.

Wielkie dzięki za szybką odpowiedź 🙂

Jeszcze jedno masz może jakiś przykład na arduino jak ciąć taką ramkę?

Byłbym niezmiernie wdzięczny 🙂

Link do komentarza
Share on other sites

Skoro potrafisz już odebrać dane po UART, to nie potrzebujesz "przykładu na arduino", tylko przykładu w C do cięcia stringów.

Masz jakiś przykład ze stackoverflow

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
   char *strings[30];
   char Policystr[4096] = "the|string|to|split"; 
   char delims[] = "|";

   int i = 0;
   strings[i] = strtok( Policystr, delims );
   while( strings[i] != NULL  ) 
   {
       printf("%d '%s'\n", i, strings[i]);
       strings[++i] = strtok( NULL, delims );          
   }

   for ( int j = 0; j < i; j++ ) 
   {
       printf("%d '%s'\n", j, strings[j]);
   }
}

http://stackoverflow.com/questions/10513841/using-strtok-to-split-the-string

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.