Skocz do zawartości

Kurs Arduino - #7 - Wyświetlacz tekstowy, LCD 2x16


Pomocna odpowiedź

@pilar LCD do zestawu powinien mieć wlutowane, bo kurs Arduino nie wymaga lutownicy. Jeżeli nie masz jest to błąd po stronie botlandu - możesz zareklamować, ale najłatwiej wlutować jeżeli masz taką możliwość 🙂 

  • 1 miesiąc później...

Próbowałem to uruchomić na Cytron Maker UNO z zestawu Botland, ale długo nic się nie udawało.

Nie wiem, czy ktoś to już przede mną zauważył, ale żeby zadziałało należy na początku dołączyć bibliotekę Wire.h oprócz LiquidCrystal.h. W treści kursu tego nie ma :)

@NIssens witam na forum 🙂 

Nikt nie zgłaszał takiego błędu, ale niekoniecznie wiem jaki to ma związek z programową transmisją równoległą wyświetlacza. Nie masz przypadkiem modelu z ekspanderem I2C?

  • 4 miesiące później...
(edytowany)

lcd z konwerterem i2c , samą biblioteką "LiquidCrystal_I2C.h" śmiga :]  na obudowę lcd można ponarzekać konwerter nie jest w świetle otworu dla pinów jak się ją skręci 

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);  // "0x27" wartość podana przez "skanner i2c" dla poznania adresu konwertera

void setup(){

  lcd.init();                      // initialize the lcd
  lcd.backlight();
  lcd.home();
}
void loop(){

  lcd.setCursor(0, 0);
  lcd.print("Krzysztof");
  lcd.setCursor(0, 1);
  lcd.print("Forbot.pl");
  }

Odnośnie zadania szybszego odświeżania tekstu to wyświetlacz nie nadąża wygasić pikselów po poprzednim tekście.  jeszcze przede mną ostatnie rozdziały i druga część kursu :] Zadanie domowe 6.1

IMG_0275.jpg

Edytowano przez Pierunek
edycja
  • Lubię! 1
  • 2 tygodnie później...
  • 3 tygodnie później...

Witam,
Czy ma ktoś pomysł ( lub gotowy program ) w jaki sposób na wyświetlaczu LCD wyświetlić krótki komunikat? Zamysł jest taki, by na LCD widoczne były dwie zmienne. W momencie, w którym przekroczą one wartości zapisane w if-ie, na wyświetlaczu przez np. 5s widoczny był komunikat np. POMPA WLACZONA. Po 5s nastąpiłby powrót do ekranu 1 czyli wyświetlania zmiennych. Niestety komenda lcd.clear() powoduje, że po wyświetleniu komunikatu nie pokazują się zmienne. 
Z góry dzięki za pomoc

18 minut temu, Czaplik napisał:

Niestety komenda lcd.clear() powoduje, że po wyświetleniu komunikatu nie pokazują się zmienne. 

Musisz jeszcze raz je wyświetlić.

Mój ulubiony sposób to x zmiennych tekstowych (po 1 dla każdej linii wyświetlacza) i ich zmiana za pomocą funkcji.

Potem w loop wyświetlasz wartości zmiennych raz na sekundę (preferowana wartość dla Arduino) na ekranie (użyj millis)

 

  • 3 tygodnie później...

Posiadam dwa wyświetlacze LCD 2x16 i jakiś większy, prawdopodobnie 4x20 (kupiony używany). mam wszystko podpięte na płytce stykowej i napisany program. Na LCD 2x16 wszystko działa (zdj wyświetlacza z napisem), gdy zamieniam wyświetlacz na większy, z tym samym programem oraz połączeniami, świeci ale o wiele słabiej oraz kręcąc potencjometrem kontrast się ledwie zmienia (zdj z wyświetlaczem lekko podświetlonym). Dodatkowo większy wyświetlacz bardzo szybko się nagrzewa od tyłu. Czy oznacza to, że niestety większy wyświetlacz jest zepsuty? Czy jednak coś robię źle? Proszę o pomoc w tej kwestii. Poniżej wklejam kod:

#include <LiquidCrystal.h> 
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); 
void setup() {
  lcd.begin(16, 2);
}
void loop() {
  lcd.setCursor(0, 0); 
  lcd.print("Temp: *C");
}

 

295100897_345732774278560_5417160712207987382_n.jpg

295074238_1110969269764050_1142458256819116351_n.jpg

39 minut temu, Macej98 napisał:

Posiadam dwa wyświetlacze LCD 2x16 i jakiś większy, prawdopodobnie 4x20 (kupiony używany). mam wszystko podpięte na płytce stykowej i napisany program. Na LCD 2x16 wszystko działa (zdj wyświetlacza z napisem), gdy zamieniam wyświetlacz na większy, z tym samym programem oraz połączeniami, świeci ale o wiele słabiej oraz kręcąc potencjometrem kontrast się ledwie zmienia (zdj z wyświetlaczem lekko podświetlonym). Dodatkowo większy wyświetlacz bardzo szybko się nagrzewa od tyłu. Czy oznacza to, że niestety większy wyświetlacz jest zepsuty? Czy jednak coś robię źle? Proszę o pomoc w tej kwestii. Poniżej wklejam kod:


#include <LiquidCrystal.h> 
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); 
void setup() {
  lcd.begin(16, 2);
}
void loop() {
  lcd.setCursor(0, 0); 
  lcd.print("Temp: *C");
}

 

295100897_345732774278560_5417160712207987382_n.jpg

295074238_1110969269764050_1142458256819116351_n.jpg

W funkcji lcd.begin() deklarujesz rozmiar wyświetlacza. Rozmiar wyświetlacza z kursu to 16x2, więc jako argumenty w tej funkcji podajesz 16,2. W przypadku innego wyświetlacza musisz podać jego wymiary(w tym przypadku 20,4)

(edytowany)

@Macej98, skoro świeci słabiej, to istnieje szansa, że ma za mało prądu. Wydaje mi się, że zasilenie obwodu z baterii zamiast USB może pomóc. Można też pewnie zacząć od odłączenia podświetlenia.

Edytowano przez trainee

 

2 godziny temu, StefanekP napisał:

W funkcji lcd.begin() deklarujesz rozmiar wyświetlacza. Rozmiar wyświetlacza z kursu to 16x2, więc jako argumenty w tej funkcji podajesz 16,2. W przypadku innego wyświetlacza musisz podać jego wymiary(w tym przypadku 20,4)

To na pewno nie jest powodem ponieważ jak się wpisze mniejszy rozmiar wyświetlacza niż jest na prawdę, deklarowana wielkość działa normalnie. A więc dwa pierwsze wiersze po 16 znaków powinny zadziałać.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...