LCD1602/LCD2004. Подключаем к Stm32 по i2c.

Поділитися
Вставка

КОМЕНТАРІ • 68

  • @Михаил-щ8ц8м
    @Михаил-щ8ц8м 3 роки тому +4

    Спасибо, после Ваших видео не остаётся белых пятен, приятно слушать, интересно, а главное - понятно!

  • @sergey2940
    @sergey2940 2 роки тому +2

    Спасибо! Внятно, доступно, быстро, результативно! Отдельное спасибо автору библиотек! Гениально!

  • @pavelmokrov710
    @pavelmokrov710 2 роки тому

    Отличная работа.Все заводится с первого раза.Уважение автору !!!

  • @cookiehunter8828
    @cookiehunter8828 2 роки тому +1

    Для тех, кто как я, в бронепоезде)))) Этому дисплейчику действительно 5В нужно, несмотря на то, что много где пишут, что хватает и 3.3... Весь вечер сидел думал.
    Смотрел разные библиотеки, лазал по форумам, смотрел подобные видео, менял адрес - все бестолку... Поэтому, если у вас подсветка есть, а текста нет - попробуйте подключить его на 5В.
    Еще пара советов, которые я открыл для себя и делюсь с вами:
    1) Чтобы проверить, действительно ли вы ломитесь "по адресу" - попробуйте поотключать программно подсветку, как из либы в этом видео. Когда отключится - адрес найден.
    2) Чтобы все-таки хоть что-то увидеть при 3.3в - выкрутите потенциометром яркость на максимум (на моей платке HW-061 нужно крутить ПО часовой стрелке), и смотрите на дисплей под углом снизу.
    Всем добра и успехов :3

    • @efly6630
      @efly6630 Рік тому

      Благодарю! Помогло, когда покрутил потенциометр

  • @edmelectronics4110
    @edmelectronics4110 4 роки тому +1

    Очень, очень полезное видео. Благадарю вам!

  • @ilyamif
    @ilyamif Рік тому

    Спасибо большое, очень помог, долго пытался решить проблему с выводом чисел и перезаписи памяти. Я даже использовал динамические массивы символов, но работало ужасно... А надо было то всего пробелы поставить!😂

  • @Владимир_Великий_Русь

    Шикарно ! Спасибо ! Все работает ! Талант !

  • @od3417
    @od3417 3 роки тому +1

    Спасибо, все получилось

  • @everythingabout6066
    @everythingabout6066 3 роки тому +1

    спасибо, все работает. я так же пробовал в FreeRTOS . Почему то картинка на экране мерцала постоянно.

    • @Solderingironspb
      @Solderingironspb  3 роки тому

      А Вы случайно постоянную очистку экрана не делали?

    • @everythingabout6066
      @everythingabout6066 3 роки тому

      @@Solderingironspb пробовал и без FreeRTOS , все нормально. Может где-то эта функция стоит по умолчанию. Хз

  • @MrEksol
    @MrEksol 6 місяців тому

    Стоило бы рассказать что делает та или иная функция.

  • @ВладРогов-щ6с
    @ВладРогов-щ6с 2 роки тому +1

    Не выходит выводить текст, подсветка дисплея работает, курсор (0,0). Дисплей 16х2 qapass с i2c модулем.

    • @egorbunakov
      @egorbunakov 2 роки тому

      Здравствуйте, вы как то решили эту проблему?

    • @ВалентинЦыб
      @ВалентинЦыб 2 роки тому

      pcf8574AT (pcf8574T) имеют адрес 0x3F, а pcf8574 и pcf8574A - 0x27 надо менять в библиотеке lcd1602_i2c_lib.c

  • @edmelectronics4110
    @edmelectronics4110 3 роки тому

    Сделал проба на етот Ваш пример LCD16х02, установил счетчик counter работаеть вперед и назад + и - 200. Для очистки дисплея при переход на каждой следующий разряд сделал условие if (counter == 0 || counter == -10 || counter == -100 || counter == 10 || counter == 100) {
    lcd1602_Clean();
    lcd1602_Clean_Text();
    }
    Установил, что очистка некоректная. Несмотря на то что каждая очиска, всегда остоется одна нуля сзади. То ест, есть ли имеем переход при вычитании от 100 к 99, после очистки екран показаваеть неверно 990, вместо 99.
    В Ардуино библиотека LCD есть одна харошая функция print (), каторая универсалная и спасобна показывает как стринг, так и переменыя любова типа, включая float с вибран после запетая знак после мантиса. Я попробовал сделать такая функция к твое библиотека, но меня не получилас, я не так добрый в програмирование. Подумайте об этом, если хотите расширить возможности своей библиотеки универсальной функцией.

  • @lonny_breaux
    @lonny_breaux Рік тому

    спасибо большое!!!!!!!!!!!!!!!!!!!

  • @alinalevina3814
    @alinalevina3814 2 роки тому

    Здравствуйте! Пользуюсь вашей библиотекой для китайских lcd1602, не могу разобраться в некотрых вещах (все работает, просто не могу понять). Функция lcd1602_Send_init_Data , как физически передается 1 в стробирующий сигнал или 0. В даташите не могу найти информации про это, получается же что передается 00001000 или 11110111?

  • @mobilandservice
    @mobilandservice 2 роки тому

    Подскажите пожалуйста, как можно добавить функцию включение и выключение курсора (+ если есть возможность мигающий курсор). Спасибо

  • @ashotkarapetyan4719
    @ashotkarapetyan4719 4 роки тому +1

    где найти библятеку для SPL?

  • @svbHiTek
    @svbHiTek Рік тому

    Привет, в начале видео подключаешь библиотеки, а можешь сделать краткий обзор по ним, какие есть в стандартной комплектации и для чего используются, искал информацию, но не нашел(((
    Заранее спасибо.

    • @Solderingironspb
      @Solderingironspb  Рік тому +1

      привет. stdbool - Для работы с булиевой логикой. stdio - Реализует основные возможности ввода и вывода в языке Си. string - Для работы с различными видами строк. math - Для вычисления основных математических функций.
      Список стандартных библиотек можете посмотреть здесь: ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%A1%D0%B8

  • @felixfox527
    @felixfox527 4 роки тому +1

    Приветсвую. А есть ли библиотека u8g2 для стм? Приехала black pill с али. После ардуины конечно кажется сложновато.

    • @Solderingironspb
      @Solderingironspb  4 роки тому +3

      Вы про большой LCD 128х64? Если да, то тоже в планах его рассмотреть. На счет сложности стм после ардуино - все фигня. Главное переключиться)

  • @viktorvolkov7935
    @viktorvolkov7935 4 роки тому +1

    Спасибо!!!

  • @amonkotaro8730
    @amonkotaro8730 3 роки тому

    Дайте ссылочку на предыдущий урок, в котором создавалась библиотека

  • @Danchkin_Sab
    @Danchkin_Sab 3 роки тому +1

    Спасибо большое за урок, только вопрос, всё работает как надо, но единственное - программа не хочет выводить текст на экран, с чем это может быть связано ?

    • @Solderingironspb
      @Solderingironspb  3 роки тому

      А курсор правильно выставляете?

    • @Danchkin_Sab
      @Danchkin_Sab 3 роки тому

      @@Solderingironspb Вроде да, у меня стандартный дисплей 16 на 2, ставлю курсор на 0 и
      0

    • @ДенисАлександров-м9ъ
      @ДенисАлександров-м9ъ 3 роки тому

      Та же проблема, ума не приложу с чем может быть проблема. Дисплей загорается, но текста нет. Какую вы плату используете?

    • @cookiehunter8828
      @cookiehunter8828 2 роки тому

      @@ДенисАлександров-м9ъ Здравствуйте. Если Вы нашли решение данной проблемы - напишите его сюда, пожалуйста :) Столкнулся с тем же самым.

  • @maxdm2737
    @maxdm2737 2 роки тому

    Спасибо, хороший урок. С STM32f103С8T6 работает без проблем, а вот с STM32f103С6T6 не хочет. В чем может быть проблема, подскажите пожалуйста.

    • @maxdm2737
      @maxdm2737 2 роки тому +1

      Разобрался. Cubide для этой микросхемы не генерирует GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

  • @MrEksol
    @MrEksol 6 місяців тому

    Почему в конце 15.4578 вы приписали f ?

    • @Solderingironspb
      @Solderingironspb  6 місяців тому +1

      @@MrEksol явное указание float

  • @Selfrock_Vladimir
    @Selfrock_Vladimir 2 роки тому

    Пардон, а как управлять контрастностью? Текст на дисплее проявляется еле еле, при крайнем положении крутилки контрастности на модуле I2C, при работе того же дисплея от ордуинки контрастность нормальная, при среднем положении крутилки контрастности. Библиотека вообще позволяет это регулировать?
    Пардон, все решилось запитыванием дисплея от 5 вольт.

    • @Solderingironspb
      @Solderingironspb  2 роки тому +1

      Да. Питание дисплея от 5 вольт)

  • @MrEksol
    @MrEksol 6 місяців тому

    Как включить подсказки при введении названий функции?

  • @АлексПовзун-г6у
    @АлексПовзун-г6у 4 роки тому

    Благодарю

  • @znakomiy_42
    @znakomiy_42 2 роки тому

    ААААА.... Я уже голову сломал... кучу всего перерыл.... дисплей китай 1602, подключаю по I2C по адресу 0х27(проверил по порту), плата nucleof411re настраиваю через cubeMX (бросил I2C1 на PB8-9 c PB6-7 - удобней подключать, но пробовал и без переключения), подключаю ваши библиотеки, да и все делаю строго по видео. при подключении на lcd постоянно горит верхняя строчка. Жму RUN и тишина... 0 реакции. Подкинул analayzer24MHz8CH - на выводах штиль. Что не так?
    P.S. Совсем недавно переставлял систему и снова качал с stcom софт. Может что-то до установить нужно???
    А и еще, сама nucleo работает - простенькая программа с кнопкой и светодиодом работает

    • @Solderingironspb
      @Solderingironspb  2 роки тому

      Напишите мне на почту или вконтакте. Попробую удаленно подключиться и помочь.

    • @maxdm2737
      @maxdm2737 2 роки тому

      @@Solderingironspb Такая же проблема. В чем может быть причина?

    • @Solderingironspb
      @Solderingironspb  2 роки тому

      @@maxdm2737 в данном случае, у человека была проблема в кривой nucleo.

  • @edmelectronics4110
    @edmelectronics4110 3 роки тому

    Контролер питается от 3,3V, ето ясно, но с какое напрежение вы питаете LCD-дисплей, от 3,3V или от 5V?

    • @Solderingironspb
      @Solderingironspb  3 роки тому

      Данный дисплей питается от 5в

    • @edmelectronics4110
      @edmelectronics4110 3 роки тому

      @@Solderingironspb Спасибо. Однако у меня есть еще один вопрос: когда я инициализирую контроллер с помощью графического программатора Cube MX после написания кода в главной while(1) и генерирую код с помощью кнопки, он удаляет все, что я написал. Как это побороть? Если, например, я хочу добавить еще один ввод или вывод из Cuba MX и сгенерировать код, я удаляю все, что написал, и остается только код, созданный графическим программистом.

    • @Solderingironspb
      @Solderingironspb  3 роки тому +1

      while (1)
      {
      /* USER CODE END WHILE */
      /* USER CODE BEGIN 3 */
      //Пишем код здесь.
      }

    • @edmelectronics4110
      @edmelectronics4110 3 роки тому

      @@Solderingironspb Огромное спасибо, все заработало как надо. Потерял очень много время за ето....Спасибо....

  • @edmelectronics4110
    @edmelectronics4110 3 роки тому

    Извини меня, я открил проблема с очистки. Забъл сказат вперед, что сделал допалнительная функция, в каторая поставена функция spritf и там забыл поставит несколька пауза после знака %d. Сейчас все заработало и нет необходимости даже чистить экран. Вот и самая функция:
    void lcd1602_Print_data(int value) {
    sprintf(lcd1602_tx_buffer, "%d", value);
    for (int i = 0; i < strlen(lcd1602_tx_buffer); i++) {
    lcd1602_Print_symbol(lcd1602_tx_buffer[i]);
    }
    Поменял: sprintf(lcd1602_tx_buffer, "%d ", value);

    • @Solderingironspb
      @Solderingironspb  3 роки тому

      Да, именно так. После числа ставите пробел и все. Он и будет подчищать данные)

  • @ЗыкосийКлёвов
    @ЗыкосийКлёвов 2 роки тому

    *«Чем эти дисплеи ОТличаются (от чего-то)»*
    *«Чем эти дисплеи РАЗличаются (между собой)»*

    • @ЗыкосийКлёвов
      @ЗыкосийКлёвов 2 роки тому +1

      Отрадно, что ведущий адекватно воспринимает дружескую критику благодарного слушателя (и слышателя).

  • @do6pbiy0kot
    @do6pbiy0kot 3 роки тому

    а что за клава ?

  • @lunokhodtoy
    @lunokhodtoy 3 роки тому

    void lcd1602_Backlight(bool state) {
    if (state) {
    backlight = true;
    } else {
    backlight = false;
    }
    }
    Может так? :)
    void lcd1602_Backlight(bool state) {
    backlight = state;
    }

  • @Владимир_Великий_Русь

    как убрать - implicit declaration of function. Спасибо большое

  • @sasha-bj5tt
    @sasha-bj5tt 4 роки тому

    Кривая реализация преобразования русского алфавита

    • @sasha-bj5tt
      @sasha-bj5tt 4 роки тому

      попробуй использовать словари или массивы с соответствием, символ - код.

    • @Solderingironspb
      @Solderingironspb  4 роки тому +1

      Вы можете доделать библиотеку и поделиться со всеми)

    • @sasha-bj5tt
      @sasha-bj5tt 4 роки тому

      я не имею дисплея поддерживающего русский текст, из-за чего тестирование библиотеки является затруднительным.

    • @avr_stm_pro2955
      @avr_stm_pro2955 4 роки тому

      Спасибо!!

    • @avr_stm_pro2955
      @avr_stm_pro2955 4 роки тому

      Спасибо!!

  • @andreymozgovoy8705
    @andreymozgovoy8705 2 місяці тому

    Глупый код, хуже чем у первокурсника - почему бы форматирование не включить в команду принт? А движение влево - как установить в конце клнцов курсор в координаты 0,0? В каждой итерации устанавливается в 0,0, но печатается со сдвигом

  • @szapsis
    @szapsis Рік тому

    Спасибо большое за твой труд друг!