Не работает дисплей 1602 i2c

Arduino.ru

не работает дисплей 1602 I2C

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

Здравствуйте! Приобрёл arduino Uno от robotdyn, разбираюсь, пытаюсь вот подключить дисплей по i2c, но перечитав кучу манов и посмотрев видео, так и не смог к сожалению преодолеть проблему:

На дисплее не отображается какой-либо текст, только горят квадраты и всё, контрастность влияет только собственно на яркость квадратов.

Адрес дисплея 0x38 (узнал i2c сканером)

модуль i2c для дисплея PCA8574AD

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

почему выдает два адреса а не один?

I2C Scanner
Scanning.
I2C device found at address 0x38 !
I2C device found at address 0x7C !
done

для интереса подцепил часы, опять 2 адреса выдает

I2C device found at address 0x50 !
I2C device found at address 0x68 !

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

У часов есть микросхема памяти наплате? Это она 0х50. У меня дисплеи откликаются на 0х27 и 0х3F в зависимости от запаяных перемычек на платах i2c.

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

Да микруха есть.
А почему у дисплея два адреса? Пробовал оба не выводит, а когда перемычку делаю, питание светодиод гаснет на преобразователе .
По сканеру 0x38: дисплей или 0x7C

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

Ни разу не встечал два адреса. У меня их был десяток. И платы i2c есть без дисплеев. http://arduino.ru/forum/programmirovanie/lcd-i2c-partizanit#comment-40761
Почитайте здесь. Долго обсуждали.

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

Nik182, спасибо вам за помощь! уже было начал дело разбирать, собирался покупать другой i2c to LCD, но решил 2-й раз пропаять, и заработало))

Как говорится, Электроника — наука о контактах

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

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

По умолчанию должно быть 3F на вашем контроллере, если перемычки не запаяны.

И покажите скетч I2C сканера. Может там что не так. Не должно два адреса определяться.

пока писал, проблемма исчезла. ну и слава Б..гу!

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

К сожалению плату не сфоткаю, уже припаял.. но адресация видна, если не замкнуты то 0x38 (это от роботдина версия)

пробовал замыкать — ардуина ребутится. то ли я не так делаю, то ли косяк где..Но впринципе все равно работает. Единственное расстроился — дисплей русские символы не поддерживает, выход есть если только подставлять , но нативной поддержки нет. Есть ли выход? или заказывать дисплей от амперки?

Код сканера i2c, кстати даже когда все заработало все равно 2 адреса находит 0_о

Источник

Arduino.ru

Дисплей LCD 1602 не показывает «Hello World»

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

Подскажите пожалуйста:
Почему LCD 1602 не показывает буквы.
Только линия прямоугольников.

Подключаю к Arduini UNO
Версия Arduinoid 1.8.7

Версия библиотекиLiquidCristall 1.0.7 пробовал на 1.0.4

Соединение как в примере:
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Соединения проверил 100 раз.

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

Контраст пробовал регулировать?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Читайте также:  Как настроить зеркала чтобы избежать слепых зон

Это же не I2C подключение, на самом дисплее крутилок нет.

Да и у него квадраты остаются, что говорит о том, что ни единой посылки данных на дисплей не пришло.

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

Соединения проверил 100 раз.

Это вы небось проверяли те ли контакты соединяете. А вот как соединяете.

Ставлю на хреновый контакт этих тоненьких тыкалок в макетке! В правом нижнем углу рыжий с чёрным аж вылезают.

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

Это же не I2C подключение, на самом дисплее крутилок нет.

На дисплее нет, а на макетке у него есть

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

5 нога на земле сидит?
Данные слева-направо справа-налево не перепутаны?
https://voltiq.ru/lcd-1602-and-arduino/

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

Такое ощущение, что где то плохой контакт.
Контакты прозвонил тестером. Норма.
Один раз, ковыряясь в проводах, на экране высветилось две строки:
в первой пару непонятных символов,
во второй число типа 68,234683143846843 и число жило,

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

Источник

Arduino.ru

Проблемы с lcd экраном 16×2 i2c

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

Здравствуйте! проблемы с модулем lcd1602 i2c.

Дисплей общяется с arduino по i2c соеденению, всё в принципи работает, но при выводе текста на дисплей с помощью функции lcd.print(«Hello, world»); Отображается только первый символ, а всё остальное куда то пропадает(

Подскажите пожалуйста что делать я уже и библиотеки менял хоть убей всё равно выводит токо 1 букву и больше ничего(((

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

Давите его Киса, давите.

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

Я не понял вашего сорказма. Дисплей рабочий и надавливать негде не надо а вот с отображением что то не то если например начать запись с 3 позиции на строке то всёравно он выводит только первую букву а остальные кудато пропадают(

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

Если он рабочий, то должен выводить как затевалось. Вот и пробегитесь по контактам, в том числе которые внутри (надавливание по периметру наиболее простой способ). И первый символ выводит ярко или еле видно?
Есть ли возможность включить без I2C?
Если есть возможность, сбросьте фотки как подключено и что получается.

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

Схема подключения секретна!
Скетч тоже секретный!

Думайте мужики, как я соединил, что я там напрограммировал и в чём у меня может быть проблема, думайте!

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

Дисплей работает и выводит символ на каждой строке на каждом вертекальном расположение курсора, но он выводит только один символ вне зависимоти от того где установлен курсор lcd.print(«Hello world»);

выводит только один символ, только H и больше ничего(

Повторяюсь дисплей исправен и выводит все сстрочки все столбики работают, но выводит только один символ(

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

Так и я ж про то говорю.

Вот, знаете, я вчера скетч написал, и он неправильно работает. Скетч я Вам не покажу (вдруг украдёте), но Вы напрягитесь и посоветуйте в какую сторону мне копать!

Вы видите идиотичность постановки вопроса? У Вас ровно также!

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Читайте также:  Смарт нуб не работает

// Print a message to the LCD.
lcd.backlight();
lcd.print(«Hello, world!»);
>

​Это стандартный скетч он работает но не доконца lcd.print(«Hello, world!»); выводит только одну букву и больше ничего!

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

Посмотрите на описание функций из библиотеки lcd, возможно вместо lcd.init(); нужно использовать вызов: lcd.begin();

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

Такая же беда с 1602 HD44780.

Подключение по I2C скетч «Hello world» выводит только первую букву.

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

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

Буквы в кракозябрах это другая история, ищите помеху по питанию девайса.

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

Перепробовал несколько библиотек, не помогло. С какимито выводит тоько первую, с другими вообще ни чего не выводит.

Написал свою подпрогамму для посимвольного вывода из символьного массива. Выводит всю надпись.

Не ужели ни кто более с таким дефектом не встречался?

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

Пользуюсь такой либой. Работает исправно и с китайскими и с отечественными дисплеями.

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

Radjah, попробовал эту библиотеку — эфект точно такой же, выводит первый символ, остальные пропадают.

Такое впечатление, что пересылка строки происходит быстрее, чем I2C способен принять.

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

Или дисплей иницилазируется неправильно, или китайцы в пайке напортачили.

У меня вот такая заготовка для работы с дисплеем.

Меняется только адрес и размер дисплея.

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

Дисплей и пайка здесь ни при чем. Все делл в версии IDE(то есть проги Arduino, на которой пишется скетч). Дагнный баг наблюдается на версии 1.6.6 (http://arduino.ru/forum/apparatnye-voprosy/lcd-1602-i-konverter-i2c) На версиях ниже все норм. Поэтому желательно работать на версии IDE 1.6.5

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

А я говорю, что ты вруша. Вот только что скачал 1.6.6 и LiquidCrystal 1.2.1. Собрал скетч для дисплея на i2c и залил. Всё нормально отображается.

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

Ты ссылку смотрел, которую я кинул? Если у тебя работает, значит отлично, тебе повезло. Я же писал пользователю JasKo , у которого с этим проблемы. Я тоже столкнулся с этой проблемой. Перепробовал все библиотеки, разные скетчи и ничего не помогало. Помог откат на предыдущую версию. Это мой практический опыт, не понимаю при чем здесь твоё детское «вруша» Возможно есть еще какие то более глубокие причины. Если ты их знаешь и понял причину текущей проблемы, дак поделись. А то что у тебя заработало никого не интересует

Источник

Arduino.ru

Глючит LCD 1602 дисплей

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

Проблема следующая, подключал LCD 1602 дисплей с помощью модуля I2C, согласно данной инструкции — http://soltau.ru/index.php/arduino/item/372-kak-podklyuchit-lcd-displej-s-i2c-modulem-k-arduino

Модуль I2C припаивал, все сигналы прозванивал, все припаяно хорошо. Однако на дисплее толком ничего не отображается (скрин прикреплен).

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

В чем может быть проблема?

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

В чем может быть проблема?

в ошибках подключения

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

В чем может быть проблема?

Читайте также:  C this close не работает

в ошибках подключения

Думаю вряд ли, т.к. при подключении «напрямую» все проверял и заново пересобирал 2 раза, да и при подключении модуля I2C нужно всего 4 пина подключить, 2 из которых — питание, поэтому тоже думаю врядли ошибка в подключении.

Источник

Arduino и дисплей LCD1602

Описание

Классический LCD дисплей, раньше такие стояли в кассовых аппаратах и офисной технике.

  • Бывают разного размера, самый популярный – 1602 (16 столбцов 2 строки), есть ещё 2004, 0802 и другие. В наборе идёт 1602.
  • Снабжён отключаемой светодиодной подсветкой. Существует несколько вариантов, например синий фон белые буквы, зелёный фон чёрные буквы, чёрный фон белые буквы и проч. В наборе идёт с зелёным фоном и чёрными буквами.
  • Сам по себе требует для подключения 6 цифровых пинов, но китайцы выпускают переходник на шину I2C на базе PCF8574, что сильно упрощает подключение и экономит пины. В наборе идёт дисплей с припаянным переходником.
  • На переходнике также распаян потенциометр настройки контрастности (синий параллелепипед с крутилкой под крестовую отвёртку). В зависимости от напряжения питания нужно вручную подстроить контрастность. Например при питании платы от USB на пин 5V приходит

4.7V, а при внешнем питании от адаптера – 5.0V. Контрастность символов на дисплее будет разной!

  • Переходник может иметь разный адрес для указания в программе: 0x27 или 0x3F , об этом ниже.
  • Подключение

    Дисплей подключается по шине I2C, выведенной на пины:

    • Arduino: SDA – A4, SCL – A5
    • Wemos: SDA – D2, SCL – D1
    • Питание: 5V в обоих случаях

    Библиотеки

    Для этого дисплея существует несколько библиотек, я рекомендую LiquidCrystal_I2C от Frank de Brabander. Библиотека идёт в архиве к набору, а также её можно скачать через менеджер библиотек по названию LiquidCrystal_I2C и имени автора. Репозиторий на GitHub.

    Пример вывода

    При первой работе с дисплеем нужно настроить контраст и определиться с адресом:

    • Прошить пример “Демо”
    • Если дисплей показывает чёрные прямоугольники или пустой экран – крутим контраст
    • Если кроме чёрных прямоугольников и пустого экрана ничего не видно – меняем адрес в программе. Их всего два: 0x27 и 0x3F
    • Снова крутим контраст, должно заработать
    • Если не работает – проверяем подключение и повторяем сначала
    • Примечание: в наборе должны идти дисплеи с адресом 0x27 , но может зависеть от партии!

    Символы дисплея

    В памяти дисплея содержится 255 символов, это английские буквы, стандартные символы и китайские буквы. Стандартные символы, такие как !@#$%&()* и так далее выводятся через print() , остальные можно вывести по их коду при помощи write() :

    • Стрелка вправо – 126
    • Стрелка влево – 127
    • Символ градуса – 223
    • Прямоугольник – 255

    Свои символы

    Библиотека поддерживает создание “своих” дополнительных символов размером 5х7 точек, можно воспользоваться онлайн-генератором кодов символов – ссылка. Для компактности рекомендую переключить его в HEX. Вот так будет выглядеть “символ” крестик: byte myX[] = <0x00, 0x00, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x00>;

    Дисплей имеет 8 ячеек под сторонние символы, добавляются они при помощи createChar(номер, массив) , где номер – от 0 до 7, а массив – имя массива с данными, которое мы создали для символа. Выводятся символы при помощи write(номер) .

    Важный момент: после вызова createChar сбрасывается позиция вывода текста, нужно обязательно вызвать setCursor!

    Важная информация по дисплеям

    Данная информация относится ко всем дисплеям.

    • Вывод данных на дисплей занимает время, поэтому выводить нужно либо по таймеру, либо по факту изменения данных.
    • Очищать дисплей полностью не всегда целесообразно, иногда достаточно вывести новые значения поверх старых, либо частично очистить “пробелами”.

    Источник

    Оцените статью