Arduino Polska Forum
Współrzędne ekran dotykowy - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino)
+--- Wątek: Współrzędne ekran dotykowy (/watek-wsp%C3%B3%C5%82rz%C4%99dne-ekran-dotykowy)



Współrzędne ekran dotykowy - bugs1992 - 22-04-2016

Witam,
Potrzebuję pomocy w napisaniu kodu sczytującego współrzędne z ekranu dotykowego(sterowanie UART). Ekran wysyła komendy TXY XAddr YAddr (odczyt np. TXY 120 120). W jaki sposób wyodrębnić z tekstu współrzędne x,y aby wykonać zadanie- if (x>0) && (x<120) && (y>0) && (y<120) -----> Serial.Println("button1 pressed")


RE: Współrzędne ekran dotykowy - JasQ - 23-04-2016

Oj będzie ciężko tutaj zaawansowane funkcje string wchodzą , dla mnie troszkę to czarna magia ale po 2 godzinach skreśliłem kilka linijek zerknij czy ci to działa . Jeżeli dane jakie dostajesz są inne ( inaczej ułożone ) będzie trzeba zmodyfikować .

Kod:
String message;
String strA ;
String strB ;
int A;int B;

void setup(){

Serial.begin(9600);

}
    void loop()
    {
   while (Serial.available() > 0){ // odczytuje serial port
      char c = Serial.read();      // zapisuje kolejne odczytane znaki
      message += c;    }
      
      if (message.length() > 1){
      strA = message.substring(4,7); // wyciąga z wiadomości od 4-7 znaku
      strB = message.substring(8,11);// wyciąga z wiadomości od 8-11 znaku
      A = strA.toInt();// zamienia wyciągnięte znaki na zmienną A
      B = strB.toInt();// zamienia wyciągnięte znaki na zmienną B
      }
      
if ( A != 0 or B != 0 ){ // to akurat żeby drukował jak coś jest do testu

      Serial.print(A);
      Serial.print(" / ");
      Serial.println(B); }
      
      delay(80); // musi mieć czas na złożenie do kupy danych z serial portu  
      message = "";  // im szybciej działa port tym mniejsze opóźnienie potrzebne
      A = 0 ; B = 0 ;  // dla prędkości 115200 wystarczy 5ms
      
    }



RE: Współrzędne ekran dotykowy - bugs1992 - 23-04-2016

Wielkie dzięki za zaangażowanie i szybką odpowiedź, wszystko działa jak należy.    Big Grin


RE: Współrzędne ekran dotykowy - JasQ - 24-04-2016

Miałem plan odesłania cię do wujka google po 2 godzinach siedzenia w necie ale okazało się że delay jest kluczowe bez tego nie wyrabia . Niestety ograniczenie to 32 znaki powyżej nie działa ale do twoich potrzeb wystarczy .