#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // Inicjalizacja obiektu LCD z adresem I2C 0x27, 20 kolumnami i 4 wierszami
const int przyciskZielony = 2; // Definicja pinu do którego podłączony jest przycisk zielony
// Definicja niestandardowych znaków w formie bitmap 5x8
// Każdy bajt definiuje jeden wiersz znaku, a bit 1 oznacza zapaloną pikselę
byte customChar0[8] ={
B00010,
B00100,
B01110,
B10000,
B01110,
B00001,
B11110,
B00000
};
byte customChar1[8] ={
B00000,
B01110,
B10001,
B11111,
B10000,
B01110,
B00010,
B00001
};
byte customChar2[8] ={
B00000,
B01110,
B00001,
B01111,
B10001,
B01111,
B00010,
B00001
};
byte customChar3[8] ={
B00000,
B01010,
B11111,
B11111,
B11111,
B01110,
B00100,
B00000
};
byte customChar4[8] ={
B00000,
B00000,
B01010,
B11111,
B01110,
B00100,
B00000,
B00000
};
void setup()
{
lcd.init(); // Inicjalizacja wyświetlacza LCD
lcd.backlight(); // Włączenie podświetlenia wyświetlacza
pinMode(przyciskZielony, INPUT_PULLUP); // Ustawienie pinu przycisku jako wejście z wewnętrznym podciąganiem do VCC
// Rejestracja niestandardowych znaków w pamięci wyświetlacza LCD
lcd.createChar(0, customChar0);
lcd.createChar(1, customChar1);
lcd.createChar(2, customChar2);
lcd.createChar(3, customChar3);
lcd.createChar(4, customChar4);
// Wyświetlenie zachęty do naciśnięcia przycisku
lcd.setCursor(2, 1);
lcd.print("Wci");
lcd.write(byte(0));
lcd.print("nij zielony");
lcd.setCursor(4, 2);
lcd.print("przycisk;)");
// Oczekiwanie na naciśnięcie zielonego przycisku
while(digitalRead(przyciskZielony));
lcd.clear(); // Czyszczenie wyświetlacza po naciśnięciu przycisku
// Wyświetlenie podziękowania za zainteresowanie ofertą
lcd.setCursor(3, 0);
lcd.print("Dzi");
lcd.write(byte(1));
lcd.print("kujemy za");
lcd.setCursor(2, 1);
lcd.print("zainteresowanie");
lcd.setCursor(3, 2);
lcd.print("nasz");
lcd.write(byte(2));
lcd.print(" ofert");
lcd.write(byte(2));
lcd.print("!");
lcd.setCursor(3, 3);
lcd.print("arduinowo.pl"); // Dodatkowa informacja na wyświetlaczu
}
void loop()
{
// Efekt animacji na rogach wyświetlacza
lcd.setCursor(0, 0); lcd.write(byte(3)); // Róg górny lewy
lcd.setCursor(19, 0); lcd.write(byte(3)); // Róg górny prawy
lcd.setCursor(0, 3); lcd.write(byte(3)); // Róg dolny lewy
lcd.setCursor(19, 3); lcd.write(byte(3)); // Róg dolny prawy
delay(500); // Krótka pauza
// Zmiana znaków na rogach dla efektu animacji
lcd.setCursor(0, 0); lcd.write(byte(4)); // Róg górny lewy
lcd.setCursor(19, 0); lcd.write(byte(4)); // Róg górny prawy
lcd.setCursor(0, 3); lcd.write(byte(4)); // Róg dolny lewy
lcd.setCursor(19, 3); lcd.write(byte(4)); // Róg dolny prawy
delay(500); // Krótka pauza
}
// Chcesz dowiedzieć się, jak takie programy działają?
// --->>> Zapisz się na nasz kurs <<< -----