Arduino Polska Forum
Jak usunąć część znaków z łańcucha String? - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Jak usunąć część znaków z łańcucha String? (/watek-jak-usun%C4%85%C4%87-cz%C4%99%C5%9B%C4%87-znak%C3%B3w-z-%C5%82a%C5%84cucha-string)



Jak usunąć część znaków z łańcucha String? - MarJanPol - 09-12-2017

Chciałbym prosić o podpowiedź jak „przejąć” dane przychodzące ze smartfona po UART (a dokładnie z suwaka w RoboRemoFree) i wykorzystać część tych danych w programie Arduino.
Suwak wysyła łańcuch składający się z: ID suwaka (u mnie 2 litery), spacji oraz aktualnej wartości od 0 do 255. Jak zrobić, żeby przejąć tylko tę aktualną wartość bez 2 pierwszych znaków i spacji? Chciałem wykorzystać String, ale nie mam pojęcia jak "wyciąć" z łańcucha ten początek.
Może ktoś się pokusi o napisanie paru linijek kodu?
Pozdrawiam,
MarJanPol


RE: Jak usunąć część znaków z łańcucha String? - namok - 09-12-2017

Pomoc->Referencje->Serial - przeczytaj opis wszystkich funkcji. Jedna na pewno będzie pasować. Do tego masz sporo przykładów jak programować port szeregowy. Gdy zamieścisz program to będziemy w stanie Ci pomóc.


RE: Jak usunąć część znaków z łańcucha String? - MarJanPol - 09-12-2017

(09-12-2017, 18:05)namok napisał(a): Pomoc->Referencje->Serial - przeczytaj opis wszystkich funkcji. Jedna na pewno będzie pasować. Do tego masz sporo przykładów jak programować port szeregowy. Gdy zamieścisz program to będziemy w stanie Ci pomóc.

Zgadzam się, że czytanie jest najlepszym pomysłem na początek. Ale znacznie łatwiej się czyta gdy wiadomo czego szukać... Zrobiłem wstępny projekcik, ale wiem, że jeszcze sporo w nim brakuje:

Kod:
int led = 13;
String odebraneDane = ""; 

void setup() 
{Serial1.begin(9600);
pinMode(led,OUTPUT);
digitalWrite (led, LOW); 


void loop() 
{ if(Serial1.available() > 0)
  {odebraneDane = Serial.parseInt();
Serial.println(odebraneDane);
analogWrite(led,odebraneDane);
}}

Ponieważ dopiero uczę się podstaw programowania w C więc mam trochę problem z rozpoznaniem jaki jest najlepszy kierunek. Czy próbować ze String czy może jakoś z typem char budować tablicę... Próbowałem łapać łańcuch i funkcją parseInt wyciąć wszystko, co nie jest liczbą ale widzę, że nie bardzo można w ten sposób...


RE: Jak usunąć część znaków z łańcucha String? - namok - 10-12-2017

(09-12-2017, 18:35)MarJanPol napisał(a): Próbowałem łapać łańcuch i funkcją parseInt wyciąć wszystko, co nie jest liczbą ale widzę, że nie bardzo można w ten sposób...
Można, tylko trzeba rozumieć co się robi.
Na pewno będzie łatwiej sprawdzić działanie gdy program skompiluje się bez błędów.
Poczytaj podstawy: https://forbot.pl/blog/kurs-arduino-podstawy-programowania-spis-tresci-kursu-id5290


RE: Jak usunąć część znaków z łańcucha String? - Smaczek - 10-12-2017

Witam,
W opisie klasy String masz substring() którą możesz wyciąć część Stringi. To Co Ci zostanie potraktuj toInt() i gotowe.
Pozdrawiam


RE: Jak usunąć część znaków z łańcucha String? - MarJanPol - 10-12-2017

(10-12-2017, 09:43)Smaczek napisał(a): Witam,
W opisie klasy String masz substring() którą możesz wyciąć część Stringi. To Co Ci zostanie potraktuj toInt() i gotowe.
Pozdrawiam

Smaczek, BARDZO CI DZIĘKUJĘ!!! Tego właśnie mi brakowało. Teraz wszystko działa jak należy  Smile
Zamykam wątek...