Skocz do zawartości

Serial monitor LCD - wyzwalanie przyciskiem


neverluk

Pomocna odpowiedź

Witam,

 

chciałbym aby na wyświetlaczu po wciśnięciu przycisku pokazywały się komunikaty wysłane z UART urządzenia po wysłaniu zapytania. 

Mianowicie wciskam przycisk - następuje wysłanie komendy do urządzenia GVER000 i na wyświetlaczu pojawia mi się komunikat od urządzenia, następnie arduino ma wysłać kolejną komendę MACM i w drugiej linijce na wyświetlaczu ma się pojawić odpowiedź od urządzenia. Odpowiedzi mają kilkanaście znaków dlatego użyłem jeszcze scroll. No i tutaj jest problem z którym sobie nie mogę już poradzić. Program się zapętla przy zapytaniu MACM. Nie wiem jako to zrobić aby po wciśnieciu była wykonywane te warunki tylko raz, a scroll był wykonywany tylko na 1 lini a druga zablokowana. Czy jest ktoś wstanie mi pomóc, bo przyznam że nie mam zbyt dużego doświadczenia ale już nawet nie mam pomysłu gdzie szukać rozwiązania.

 

Poniżej kod:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4); 
const int tranzystor = 2;
const int ledkey = 8;

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.backlight();
  Serial.begin(115200);
  pinMode(tranzystor, OUTPUT); //tranzystor - zalaczajacy zasilanie urzadzenia
  digitalWrite(2, HIGH);       //tranzystor - zalaczajacy zasilanie urzadzenia


  pinMode(4, INPUT_PULLUP); //Przycisk jako wejście
}

void loop()
{
  if (digitalRead(4) == LOW) { //Jeśli przycisk wciśnięty
  digitalWrite(2, HIGH);
  delay(1000);
  Serial.write("GVER000");
  }
  
  if (Serial.available()) {
   
    delay(100);
    // clear the screen
    lcd.clear();
    // read all the available characters
    while (Serial.available() > 0) {
      // display each character to the LCD
      lcd.write(Serial.read()); 
      delay(100);
      Serial.write("MACM");
    }
    
    if (Serial.available()){
      lcd.setCursor(1,1);
      
       while (Serial.available() > 0) {
      // display each character to the LCD
      lcd.write(Serial.read());  
    }  
    }
  }

 lcd.scrollDisplayLeft();
 delay(450);
}

 

Link do komentarza
Share on other sites

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.