Skocz do zawartości

zatrzymanie pętli podczas zmian na wyświetlaczu (biblioteka LiquidCrystal_I2C.h)


Termoo

Pomocna odpowiedź

Witam.
Borykam się z takim problemem, że pętla nie wykonuje się w przypadku gdy mamy w niej kod, który steruje wyświetlaczem LCD.
Posiadam bibliotekę LiquidCrystal_I2C.h 1.0.7. Co pół sekundy na wyświetlaczu oraz w konsoli zmienna "i" powinna się inkrementować. Tak się nie dzieje. Po usunięciu 3 linii z "lcd.(...)" wszystko działa jak należy. Problem jest taki, że gdy chciałem dodać zmianę stanu przy wciskaniu guzika (wyeliminować while) to nic się nie zmienia. Gdy jest wciśnięty przycisk to wykonywanie poleceń kończy się na pierwszym "lcd.(...)". Jak temu zaradzić?
EDIT:
Dodam tylko, że to skrawek większego kodu (znalazłem co powoduje błąd i zrobiłem z niego mini kod). Celem jest: Po wciśnięciu przycisku na wyświetlaczu pojawi się czas który będzie odliczał od 10 do 0. Gdy przycisk zostanie puszczony przed odliczeniem do zera to nic się nie dzieje. Gdy doliczy do 0 to wykona się kolejna akcja.
 

#include <LiquidCrystal_I2C.h>

#define cofnij 2
#define zatwierdz 3

LiquidCrystal_I2C lcd(0x27, 16, 2);

int i = 0;

void setup()
{
  lcd.init();
  lcd.clear();
  lcd.backlight();

  Serial.begin(9600);

  pinMode(cofnij, INPUT_PULLUP);
  pinMode(zatwierdz, INPUT_PULLUP);

  lcd.setCursor(0, 0);
  lcd.print(i);
}

void loop()
{
  while (digitalRead(zatwierdz) == LOW) {
    Serial.print(i);

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(i);

    i += 1;
    delay(500);    
  }
}

 

Edytowano przez Termoo
  • Lubię! 1
Link do komentarza
Share on other sites

W Leonardo piny D2 i D3 są połączone z SCL i SDA. Dlatego przez jednoczesne używanie ich (wciśnięcie przycisku i sterowanie I2C LCD), program się zaciął.
Guziki przepięte zostały na D6 i D7. Działa.

  • Lubię! 1
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.