Изучение связи I2C и управления ЖК-дисплеем с помощью Arduino

Вот краткое объяснение каждой строки кода, а также некоторые методы и примеры кода с использованием библиотек Wire и LiquidCrystal_I2C:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
  1. Первая строка включает библиотеку Wire, которая предоставляет функции для связи I2C в проектах Arduino. I2C (межинтегральная схема) — это протокол связи, обычно используемый для соединения нескольких устройств во встроенных системах.

  2. Вторая строка включает библиотеку LiquidCrystal_I2C, построенную на основе библиотеки Wire. Эта библиотека позволяет управлять символьными ЖК-дисплеями на базе I2C (например, популярными ЖК-дисплеями 16×2 или 20×4), используя меньше контактов, чем при традиционном методе параллельного подключения.

Вот несколько методов, которые можно использовать с библиотекой Wire:

  1. Wire.begin(): инициализирует библиотеку Wire и подключается к шине I2C в качестве ведущего устройства. Этот метод необходимо вызвать перед использованием любых других функций библиотеки Wire.
void setup() {
  Wire.begin();
  // Other setup code...
}
  1. Wire.beginTransmission(адрес): запускает новую передачу на устройство I2C с указанным адресом. Параметр адреса — это 7-битный адрес ведомого устройства.
void loop() {
  Wire.beginTransmission(0x27); // Address of the LCD display
  // Other code to send data or commands to the LCD...
}
  1. Wire.write(data): записывает байт данных на шину I2C как часть передачи. Этот метод можно вызывать несколько раз для отправки нескольких байтов.
void loop() {
  Wire.beginTransmission(0x27); // Address of the LCD display
  Wire.write(0x00); // Example data byte
  Wire.write(0x01); // Another example data byte
  // Other code to send data or commands to the LCD...
}

А вот пример использования библиотеки LiquidCrystal_I2C для управления ЖК-дисплеем:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Initialize the LCD object with the desired I2C address (0x27)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
  lcd.begin(16, 2);  // Initialize the LCD with 16 columns and 2 rows
}
void loop() {
  lcd.setCursor(0, 0);  // Set the cursor to the first column, first row
  lcd.print("Hello, World!");  // Print a message on the LCD
}