#include <LiquidCrystal_I2C.h>
#define LCD_ADDR 0x27 // Адрес LCD-дисплея
#define LCD_COLUMNS 16 // Количество столбцов LCD-дисплея
#define LCD_ROWS 2 // Количество строк LCD-дисплея
LiquidCrystal_I2C lcd(LCD_ADDR, LCD_COLUMNS, LCD_ROWS); // Создание объекта для управления LCD-дисплеем
int red = 8; // Пин для красного светодиода
int yellow = 7; // Пин для желтого светодиода
int cyan = 6; // Пин для голубого светодиода
int purple = 5; // Пин для фиолетового светодиода
int green = 4; // Пин для зеленого светодиода
void setup() {
Serial.begin(9600); // Инициализация последовательного порта для вывода отладочной информации
pinMode(red, OUTPUT); // Настройка пинов светодиодов как выходы
pinMode(yellow, OUTPUT);
pinMode(cyan, OUTPUT);
pinMode(purple, OUTPUT);
pinMode(green, OUTPUT);
lcd.begin(16,2); // Инициализация LCD-дисплея
lcd.init();
lcd.backlight(); // Включение подсветки LCD-дисплея
lcd.setCursor(5,0); // Установка курсора на LCD-дисплее
lcd.print("HELLO"); // Вывод текста на LCD-дисплей
lcd.setCursor(1,1); // Установка курсора на LCD-дисплее
lcd.print("SUBS FOR MORE"); // Вывод текста на LCD-дисплей
delay(2000); // Задержка 2 секунды
lcd.clear(); // Очистка LCD-дисплея
}
void loop() {
lcd.setCursor(0,0); // Установка курсора на LCD-дисплее
lcd.print("TUTORIAL BY TBR"); // Вывод текста на LCD-дисплей
lcd.setCursor(3,1); // Установка курсора на LCD-дисплее
lcd.print("PATTERN 1"); // Вывод текста на LCD-дисплей
//pattern 1 - Последовательное включение и выключение светодиодов
digitalWrite(red, HIGH);
delay(500);
digitalWrite(yellow, HIGH);
delay(500);
digitalWrite(cyan, HIGH);
delay(500);
digitalWrite(purple, HIGH);
delay(500);
digitalWrite(green, HIGH);
delay(500);
digitalWrite(green, LOW);
delay(500);
digitalWrite(purple, LOW);
delay(500);
digitalWrite(cyan, LOW);
delay(500);
digitalWrite(yellow, LOW);
delay(500);
digitalWrite(red, LOW);
delay(500);
lcd.setCursor(3,1); // Установка курсора на LCD-дисплее
lcd.print("PATTERN 2"); // Вывод текста на LCD-дисплей
//pattern 2 - Одновременное включение и выключение групп светодиодов
digitalWrite(red, HIGH);
digitalWrite(yellow, HIGH);
delay(500);
digitalWrite(red, LOW);
digitalWrite(yellow, LOW);
delay(500);
digitalWrite(cyan, HIGH);
digitalWrite(purple, HIGH);
digitalWrite(green, HIGH);
delay(500);
digitalWrite(cyan, LOW);
digitalWrite(purple, LOW);
digitalWrite(green, LOW);
delay(500);
digitalWrite(red, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(cyan, HIGH);
digitalWrite(purple, HIGH);
digitalWrite(green, HIGH);
delay(500);
digitalWrite(red, LOW);
digitalWrite(yellow, LOW);
digitalWrite(cyan, LOW);
digitalWrite(purple, LOW);
digitalWrite(green, LOW);
delay(500);
lcd.setCursor(3,1); // Установка курсора на LCD-дисплее
lcd.print("PATTERN 3"); // Вывод текста на LCD-дисплей
//pattern 3 - Сложный паттерн с различными задержками
digitalWrite(red, HIGH);
digitalWrite(cyan, HIGH);
digitalWrite(green, HIGH);
delay(500);
digitalWrite(red, LOW);
digitalWrite(cyan, LOW);
digitalWrite(green, LOW);
delay(500);
digitalWrite(yellow, HIGH);
digitalWrite(purple, HIGH);
delay(200);
digitalWrite(yellow, LOW);
digitalWrite(purple, LOW);
delay(200);
digitalWrite(yellow, HIGH);
digitalWrite(purple, HIGH);
delay(200);
digitalWrite(yellow, LOW);
digitalWrite(purple, LOW);
delay(200);
digitalWrite(yellow, HIGH);
digitalWrite(purple, HIGH);
delay(200);
digitalWrite(yellow, LOW);
digitalWrite(purple, LOW);
delay(200);
digitalWrite(red, HIGH);
digitalWrite(cyan, HIGH);
digitalWrite(green, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(purple, LOW);
delay(200);
digitalWrite(red, LOW);
digitalWrite(yellow, LOW);
digitalWrite(cyan, LOW);
digitalWrite(green, LOW);
digitalWrite(purple, LOW);
delay(200);
digitalWrite(yellow, LOW);
digitalWrite(purple, LOW);
lcd.setCursor(3,1); // Установка курсора на LCD-дисплее
lcd.print("PATTERN 4"); // Вывод текста на LCD-дисплей
//pattern 4 - Быстрое мигание всеми светодиодами
digitalWrite(red, HIGH);
delay(200);
digitalWrite(red, LOW);
delay(200);
digitalWrite(red, HIGH);
delay(200);
digitalWrite(red, LOW);
delay(200);
digitalWrite(yellow, HIGH);
delay(200);
digitalWrite(yellow, LOW);
delay(200);
digitalWrite(yellow, HIGH);
delay(200);
digitalWrite(yellow, LOW);
delay(200);
digitalWrite(cyan, HIGH);
delay(200);
digitalWrite(cyan, LOW);
delay(200);
digitalWrite(cyan, HIGH);
delay(200);
digitalWrite(cyan, LOW);
delay(200);
digitalWrite(purple, HIGH);
delay(200);
digitalWrite(purple, LOW);
delay(200);
digitalWrite(purple, HIGH);
delay(200);
digitalWrite(purple, LOW);
delay(200);
digitalWrite(green, HIGH);
delay(200);
digitalWrite(green, LOW);
delay(200);
digitalWrite(green, HIGH);
delay(200);
digitalWrite(green, LOW);
delay(200);
digitalWrite(red, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(cyan, HIGH);
digitalWrite(purple, HIGH);
digitalWrite(green, HIGH);
delay(100);
digitalWrite(red, LOW);
digitalWrite(yellow, LOW);
digitalWrite(cyan, LOW);
digitalWrite(green, LOW);
digitalWrite(purple, LOW);
delay(100);
digitalWrite(red, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(cyan, HIGH);
digitalWrite(purple, HIGH);
digitalWrite(green, HIGH);
delay(100);
digitalWrite(red, LOW);
digitalWrite(yellow, LOW);
digitalWrite(cyan, LOW);
digitalWrite(purple, LOW);
digitalWrite(green, LOW);
delay(100);
digitalWrite(red, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(cyan, HIGH);
digitalWrite(purple, HIGH);
digitalWrite(green, HIGH);
delay(100);
digitalWrite(red, LOW);
digitalWrite(yellow, LOW);
digitalWrite(cyan, LOW);
digitalWrite(purple, LOW);
digitalWrite(green, LOW);
delay(100);
}