• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Współrzędne ekran dotykowy
#1
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")
 
Odpowiedź
#2
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
      
    }
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#3
Wielkie dzięki za zaangażowanie i szybką odpowiedź, wszystko działa jak należy.    Big Grin
 
Odpowiedź
#4
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 .
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości