Подключение I2C дисплея к ардуино. Русификация текста.

preview_player
Показать описание
Сегодня вы узнаете про подключение I2C дисплея к Ардуино, а точнее как сделать из простого LCD1602 i2c дисплей используя модуль I2C. А ещё как изменять адрес на шине I2C, как выводить русский(кириллицу) шрифт и многое другое.

Скетчи используемые в видео можно скачать на сайте "Ардуино для начинающих".

Подпишитесь на канал
Теги:
#ардуино #arduino #lcd1602 #ардуинодляначинающих #ардуиноуроки
Рекомендации по теме
Комментарии
Автор

Ссылки на продавцов где есть модули применяемые в примерах.

arduino
Автор

Странно, что никто не написал про адрес I2C, ну что ж, напишу, может кому пригодится (хотя в даташите на микруху модуля всё есть). Перемычки для выбора адреса (A0, A1, A2) одной стороной идут на ноги микросхемы и подтянуты резисторами к Vcc, а другой стороной на землю, соответственно, когда перемычки не замкнуты на ногах микросхемы висят логические единицы, а если их замкнуть, то появятся нули. Теперь про сами адреса. Когда ни одной перемычки нет сканер показывает адрес 0х27 (0х означает, что число после этого указано в HEX формате) и если его перевести в двоичную систему, то получим B00100111 (B означает двоичную систему), как можно заметить, в конце стоят три единицы, они собственно и соответствуют нашим перемычкам. когда автор замкнул перемычку A0, получилось число 0x26(B00100110), перемычку A1 - 0x25(B00100101) ну и перемычку A2 - 0x23(B00100011). Автор вводит нас и себя в заблуждение, утверждая что адресов можно настроить только 4, так как в действительности можно ставить не одну перемычку, а 2 или 3, соответственно адресов будет 8, от - все перемычки замкнуты, до 0x27(B00100111) - все перемычки разомкнуты

ЮрийГеоргиевичЩелканов
Автор

Стараюсь всегда такие экраны по i2c подключать.Спасибо за видео

Gromo_Z
Автор

Как всегда-полезно, познавательно, поучительно...,

АндрейГерасименко-бф
Автор

Наверно эта библиотека много места занимает так как загружает все символы, как заглавные так и прописные. Думаю для оптимизации памяти все же свое писать.

Garik_Vorota
Автор

Однозначно 👍 а можете сделать вольтамперметр на сегментных индикаторах

kosmos
Автор

Здравствуйте а вы знаете как поменять язык в ардуино?

nanami
Автор

к меня русские символы выводятся на экран но не сохраняются в пзу памяти а сохраняется в озу памяти. после перезагрузки устройства все обнуляется. как прописать русские буквы в таблице знакогенератора и прошить их в пзу память дисплея?

иванбелорусский-ип
Автор

Dht11 и lcd 1602
#include <Wire.h> // Добавляем необходимые библиотеки
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN A0 // к какому пину будет подключен сигнальный выход датчика
//выбор используемого датчика
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
//инициализация датчика
DHT dht(DHTPIN, DHTTYPE);
byte degree[8] = // кодируем символ градуса
{
B00111,
B00101,
B00111,




};
LiquidCrystal_I2C lcd(0x27, 16, 2); // Задаем адрес и размерность дисплея
void setup()
{
lcd.init(); // Инициализация lcd
lcd.backlight(); // Включаем подсветку
lcd.createChar(1, degree); // Создаем символ под номером 1
Serial.begin(9600);
dht.begin();
}
void loop() {
// Добавляем паузы в несколько секунд между измерениями
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
// Read temperature as Fahrenheit
float f = dht.readTemperature(true);
// Выводим показания влажности и температуры
lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки
lcd.print("Hum = % "); // Выводим текст
lcd.setCursor(7, 0); // Устанавливаем курсор на 7 символ
lcd.print(h, 1); // Выводим на экран значение влажности
lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки
lcd.print("Temp = \1C "); // Выводим текст, \1 - значок градуса
lcd.setCursor(7, 1); // Устанавливаем курсор на 7 символ
lcd.print(t, 1); // Выводим значение температуры
}

reimanflex
Автор

Вот этот адаптер i2c он годится для использования с lcd дисплеем 162А- D?

Trikster
Автор

Пишите в print заглавными буквами, тогда косяков не будет

ИльяПолетаев-чр
Автор

эта библиотека работает даже если в lcd нет русских символов ????

vzo
Автор

Вроде бы как 0х24 это адрес датчика температуры дс18 вроде

jalokin
Автор

Не 4 варианта адресов I2C, а 7 адресов! Можно замыкать по 2 перемычки, а можно и все 3 перемкнуть! Тогда и порядок адресов будет по порядку!!

Slaviusrus
Автор

Добрый вечер! Скажите пожалуйста, почему вы подключили экран к выводам А5 и А4, а не к SDA и SCL?

КириллЧернышев-ъй
Автор

есть непрошиваемые контроллеры. надо и об этом говорить а то народ мучается с прошивкой а толку нет и не будет

иванбелорусский-ип
Автор

Какая же это русификация? Это просто костыли. Русификация этих дисплеев невозможна если этого не сделал производитель

staskyrychenko
Автор

I2c сканер скетч



#include <Wire.h>

void setup()
{
Wire.begin();

Serial.begin(9600);
while (!Serial); // Leonardo: wait for serial monitor
Serial.println("\nI2C Сканер");
}


void loop()
{
byte error, address;
int nDevices;



nDevices = 0;
for(address = 1; address < 127; address++ )
{

error = Wire.endTransmission();

if (error == 0)
{
Serial.print("I2C устройство найдено по адресу 0x");
if (address<16)
Serial.print("0");
Serial.println(address, HEX);

nDevices++;
}
else if (error==4)
{
Serial.print("Неизвестная ошибка по адресу 0x");
if (address<16)
Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("I2C устройство НЕ найдено\n");
else


delay(5000);
}

reimanflex