Lekcja 20/31: Wyświetlanie tekstu na LCD1602 z Arduino | Robojax
Wprowadzenie
LCD1602 to jeden z najpopularniejszych wyświetlaczy alfanumerycznych do projektów z Arduino, a w połączeniu z adapterem I2C staje się niezwykle łatwy w użyciu. W tym samouczku nauczysz się wyświetlać tekst, liczby i niestandardowe znaki, a także przewijać tekst po ekranie. Pokażemy Ci również, jak połączyć wyświetlacz LCD z innymi czujnikami, aby stworzyć praktyczne narzędzia do monitorowania. Ten przewodnik jest częścią szerszego kursu Arduino i został zaprojektowany, aby pomóc Ci budować przydatne urządzenia do domu, szkoły lub warsztatu.
Oto kilka praktycznych pomysłów na to, co możesz zbudować dzięki tej wiedzy:
- Monitor temperatury i wilgotności do szklarni lub terrarium dla gadów.
- Prosty woltomierz do sprawdzania poziomu baterii w Twoich projektach.
- Czujnik odległości do asystenta parkowania lub inteligentnego kosza na śmieci, który pokazuje, jak bardzo jest pełny.
Przegląd sprzętu
LCD1602 to wyświetlacz o 16 znakach na 2 linie. Moduł z tyłu to adapter I2C (lub I²C), który zmniejsza liczbę potrzebnych przewodów ze standardowego połączenia równoległego do zaledwie czterech: GND, VCC, SDA i SCL. To znacznie upraszcza okablowanie i zwalnia wiele pinów cyfrowych na Twoim Arduino.
Wyświetlacz ma podświetlenie, które można włączać i wyłączać programowo. Posiada również mały potencjometr na module I2C do regulacji kontrastu. Jeśli po włączeniu zasilania wyświetlacza nic nie widzisz, po prostu obróć tę śrubkę, aż tekst stanie się widoczny (na filmie o 02:47).
Istnieją różne wersje tego wyświetlacza, takie jak LCD2004, który ma 20 znaków i 4 linie. Adres I2C można również zmienić, lutując zworki A0, A1 i A2 na module (na filmie o 03:51). Domyślny adres to często 0x27, ale może się różnić, więc zawsze warto uruchomić skaner I2C, aby znaleźć właściwy dla Twojego konkretnego modułu.
Komponenty sprzętowe
Aby śledzić główną demonstrację w tym filmie, będziesz potrzebować następujących komponentów:
- Arduino Uno (lub dowolna kompatybilna płyta)
- LCD1602 z modułem I2C
- Płytka stykowa i przewody połączeniowe
Do późniejszych sekcji będziesz również potrzebować czujnika DHT11, potencjometru lub czujnika ultradźwiękowego, w zależności od tego, który projekt chcesz zbudować.
Schemat połączeń
Podłączenie wyświetlacza LCD jest proste. Schemat połączeń wyraźnie pokazuje wszystkie połączenia.
Podłącz piny na module I2C do Arduino w następujący sposób:
- GND do GND na Arduino
- VCC do 5V na Arduino
- SDA do A4 na Arduino
- SCL do A5 na Arduino
Jeśli Twoja płyta Arduino ma dedykowane piny SDA i SCL, możesz podłączyć się również do nich (na filmie o 05:47).
Instalacja biblioteki
Ten moduł wymaga biblioteki "Arduino Liquid Crystal I2C". Możesz ją pobrać z linku podanego w opisie filmu lub ze strony Robojax. Po pobraniu zainstaluj ją w swoim Arduino IDE, przechodząc do Szkic > Dołącz bibliotekę > Dodaj bibliotekę .ZIP i wybierając pobrany plik (na filmie o 06:41).
Wyjaśnienie kodu
Ponieważ nie podano żadnych fragmentów kodu, wyjaśnimy ogólną strukturę kodu użytego w filmie.
Kod zaczyna się od dołączenia niezbędnych bibliotek: Wire.h do komunikacji I2C oraz LiquidCrystal_I2C.h dla wyświetlacza. Kluczową częścią jest utworzenie obiektu dla LCD. Musisz ustawić poprawny adres I2C oraz wymiary swojego wyświetlacza:
// Ustaw adres LCD na 0x27 dla wyświetlacza 16 znaków i 2 linii
LiquidCrystal_I2C lcd(0x27, 16, 2);
Jeśli Twój wyświetlacz nic nie pokazuje, może być konieczna zmiana 0x27 na 0x3F lub inny adres znaleziony przez skaner I2C. Liczby 16 i 2 reprezentują liczbę kolumn i wierszy na Twoim wyświetlaczu.
W funkcji setup() inicjalizujesz LCD i włączasz podświetlenie:
void setup() {
lcd.init();
lcd.backlight();
}
Aby wydrukować tekst, używasz funkcji lcd.setCursor(kolumna, wiersz) do ustawienia kursora, a następnie lcd.print() do wyświetlenia danych. Na przykład, aby wydrukować na drugiej linii, użyjesz lcd.setCursor(0, 1). Film wyjaśnia również, jak drukować specjalne znaki, takie jak symbol stopnia, używając lcd.write(223) (na filmie o 31:42).
Demonstracja
Film demonstruje kilka kluczowych funkcji wyświetlacza LCD. Najpierw pokazuje podstawowe drukowanie tekstu "Hello World" i jak używać funkcji lcd.scrollDisplayLeft() do przesuwania tekstu po ekranie. Później łączy LCD z czujnikiem DHT11, aby wyświetlać temperaturę i wilgotność, z potencjometrem do wyświetlania napięcia oraz z czujnikiem ultradźwiękowym do wyświetlania odległości.
Do wyświetlania temperatury kod odczytuje czujnik i drukuje wartość. Aby pokazać liczbę całkowitą bez miejsc po przecinku, możesz rzutować wartość zmiennoprzecinkową na liczbę całkowitą, jak pokazano na filmie (na filmie o 32:21).
Dla woltomierza kod odczytuje wartość analogową z potencjometru, skaluje ją do zakresu napięcia 0-5V i wyświetla na ekranie (na wideo w 34:31).
Ostateczna demonstracja łączy wyświetlacz LCD z czujnikiem ultradźwiękowym, aby pokazać zmierzoną odległość w centymetrach (na wideo w 37:55).
Powiązane projekty z tego wideo
To wideo zawiera również inne poradniki projektowe. Możesz je znaleźć tutaj:
- Lekcja 20/31: Wyświetlanie temperatury i wilgotności z DHT11 na ekranie LCD
- Lekcja 20/31: Wyświetlanie napięcia na LCD1602
Rozdziały
- [00:00] Wprowadzenie do LCD1602 i przegląd kursu
- [01:30] Przegląd sprzętu LCD1602 i modułu I2C
- [02:47] Regulacja kontrastu wyświetlacza i podświetlenia
- [03:14] Połączenia pinów i wybór adresu I2C
- [05:28] Schemat połączeń dla wyświetlacza LCD
- [06:16] Instalacja wymaganej biblioteki
- [07:24] Podstawowy kod do wyświetlania tekstu
- [11:10] Przykład migającego kursora
- [13:46] Własne znaki i drukowanie specjalnych symboli
- [18:51] Przykład wyświetlania szeregowego
- [23:16] Przewijanie tekstu na wyświetlaczu LCD
- [36:51] Łączenie wyświetlacza LCD z czujnikiem ultradźwiękowym
/*
Lesson 20/31: Displaying text on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
*/
/*
This is code for LCD1602 Display with I2C module
* watch the video for this code https://youtu.be/q9YC_GVHy5A
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purpose only.
* This library is based on work done by DFROBOT (www.dfrobot.com).
*/
/*
* This code has been modefied from the Arduino library
* Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
* in Ajax, Ontario, Canada
* for Robojax.com
*
* This is code for LCD1602 Display with I2C module
* which can display text on the screen.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
//lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
lcd.clear();
lcd.setCursor (0,0);
lcd.print("SunFounder ");
lcd.setCursor (0,1);
lcd.write(244);
delay(500);
//end of loopcode Robojax code for LCD with I2C
}
Common Course Links
Common Course Files
Rzeczy, których możesz potrzebować
-
AmazonBuy LCD1602-I2C from Amazonamzn.to
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
-
AllegroPurchase LCD1602-I2C from eBayebay.us
-
AliExpressPurchase 10pcs LCD1602-I2C from AliExpresss.click.aliexpress.com
Zasoby i odniesienia
-
DokumentacjaDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
ZewnętrznyLCD library from RoboJax (ZIP)robojax.com
-
ZewnętrznyPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Pliki📁
Biblioteki Arduino (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB