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

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 พ.ย. 2021
  • Сегодня вы узнаете про подключение I2C дисплея к Ардуино, а точнее как сделать из простого LCD1602 i2c дисплей используя модуль I2C. А ещё как изменять адрес на шине I2C, как выводить русский(кириллицу) шрифт и многое другое.
    Скетчи используемые в видео можно скачать на сайте "Ардуино для начинающих".
    arduino-kid.ru/blog/podklyuche...
    Помочь в развитии канала, и на покупку новых модулей и датчиков yoomoney.ru/to/410011924549016
    Официальный сайт arduino-kid.ru
    Группа в контакте club196958636
    Почта arduino-kid@yandex.ru
    Подпишитесь на канал
    ссылка на канал / Ардуинодляначинающих
    Теги:
    #ардуино #arduino #lcd1602 #ардуинодляначинающих #ардуиноуроки
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 36

  • @arduino2000
    @arduino2000  2 ปีที่แล้ว +1

    Ссылки на продавцов где есть модули применяемые в примерах.
    Arduino NANO - alii.pub/699fxy
    модуль I2C для ЖК-дисплеев 1602 и 2004 - alii.pub/699yqt
    ЖК-дисплей 1602 и 2004 - alii.pub/699yzr

  • @Strenoga
    @Strenoga 4 วันที่ผ่านมา +1

    Отлично👍😁

  • @user-jf8fo9mw6w
    @user-jf8fo9mw6w 9 หลายเดือนก่อน +10

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

  • @user-js6zw6zp4w
    @user-js6zw6zp4w 2 ปีที่แล้ว +3

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

  • @user-hl9vd4ey8e
    @user-hl9vd4ey8e 2 ปีที่แล้ว +3

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

  • @sergey-380
    @sergey-380 2 ปีที่แล้ว +1

    супер

  • @kosmos8460
    @kosmos8460 2 ปีที่แล้ว +1

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

    • @arduino2000
      @arduino2000  2 ปีที่แล้ว

      На сегментах не знаю, а вот на OLED Дисплее в планах есть. Я как раз недавно его получил

  • @reimanflex5403
    @reimanflex5403 10 หลายเดือนก่อน

    Dht11 и lcd 1602
    #include // Добавляем необходимые библиотеки
    #include
    #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,
    B00000,
    B00000,
    B00000,
    B00000,
    };
    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); // Выводим значение температуры
    }

  • @Garik_Vorota
    @Garik_Vorota 10 หลายเดือนก่อน

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

  • @nanami3510
    @nanami3510 2 ปีที่แล้ว

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

  • @user-bd6ox3mw8n
    @user-bd6ox3mw8n 2 ปีที่แล้ว

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

    • @arduino2000
      @arduino2000  2 ปีที่แล้ว

      Не знаю, надо смотреть даташит. Если у него 16 выходов и они расположена как на моём дисплее и в том же порядке, то можно.

    • @user-bd6ox3mw8n
      @user-bd6ox3mw8n 2 ปีที่แล้ว

      @@arduino2000
      1-GND 2-VDD 3-VO 4-RS 5-R/W 6-E 7-DB0 8-DB1-.........14-DB7
      Расположены в два ряда : нечетные один ряд с 1, 3, 5 , 7, 9, 11, 13
      четные второй ряд 2, 4, 6, 8, 10 , 12 , 14
      Всего 14 выходов . Нет двух выходов которые называются подсветка

    • @security000
      @security000 2 ปีที่แล้ว

      Обычно подходит для 1802

  • @LaSKaLasuridze
    @LaSKaLasuridze 2 ปีที่แล้ว

    RFID rc552 можно добавить?

    • @arduino2000
      @arduino2000  2 ปีที่แล้ว

      На канале полно видео про Rfid с выводом на дисплей

  • @jalokin84
    @jalokin84 2 ปีที่แล้ว +1

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

    • @jalokin84
      @jalokin84 2 ปีที่แล้ว

      @Ural Men точно! Забыл уже всё, надо подтянуть

  • @vzo6951
    @vzo6951 2 ปีที่แล้ว

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

    • @arduino2000
      @arduino2000  2 ปีที่แล้ว

      да. Но ОДНОВРЕМЕННО на экран может выводить не больше 8 не латинских символов.

  • @user-kb2lv9ox3j
    @user-kb2lv9ox3j 4 หลายเดือนก่อน

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

  • @ban5877
    @ban5877 ปีที่แล้ว +1

    Почему ардуинка не может найти I2C]

  • @Slaviusrus
    @Slaviusrus 2 ปีที่แล้ว +1

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

    • @arduino2000
      @arduino2000  2 ปีที่แล้ว

      Спасибо. Не знал

    • @Slaviusrus
      @Slaviusrus 2 ปีที่แล้ว +1

      @Ural Men 000, 100, 010, 001, 110, 011, 101, 111... точно, 8 вариантов)

    • @Slaviusrus
      @Slaviusrus 2 ปีที่แล้ว

      @Ural Men а я забыл посчитать вариант "101"... потому и подумал, что 7 вариантов)

  • @user-uu5iy2ld3k
    @user-uu5iy2ld3k 2 ปีที่แล้ว

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

    • @arduino2000
      @arduino2000  2 ปีที่แล้ว +1

      А разве это не одно и тоже? Это шина l2c. Только A4 - SDA, A5-SCL

    • @user-uu5iy2ld3k
      @user-uu5iy2ld3k 2 ปีที่แล้ว

      @@arduino2000 понял вас, спасибо! Не знал о таком приколе

    • @arduino2000
      @arduino2000  2 ปีที่แล้ว +2

      А в чем прикол то? Это азы Ардуино.

  • @user-kb2lv9ox3j
    @user-kb2lv9ox3j 4 หลายเดือนก่อน

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

  • @staskyrychenko8319
    @staskyrychenko8319 19 วันที่ผ่านมา

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

    • @arduino2000
      @arduino2000  19 วันที่ผ่านมา

      но это работает.

    • @staskyrychenko8319
      @staskyrychenko8319 18 วันที่ผ่านมา +1

      @@arduino2000 да, работает :)

  • @reimanflex5403
    @reimanflex5403 10 หลายเดือนก่อน

    I2c сканер скетч
    #include
    void setup()
    {
    Wire.begin();
    Serial.begin(9600);
    while (!Serial); // Leonardo: wait for serial monitor
    Serial.println("
    I2C Сканер");
    }
    void loop()
    {
    byte error, address;
    int nDevices;
    Serial.println("Сканирование...");
    nDevices = 0;
    for(address = 1; address < 127; address++ )
    {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0)
    {
    Serial.print("I2C устройство найдено по адресу 0x");
    if (address