Skocz do zawartości

neverluk

Użytkownicy
  • Zawartość

    2
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O neverluk

  • Ranga
    1/10
  1. 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); }
×
×
  • Utwórz nowe...