Arduino UNO + LCD дисплей
- Войдите на сайт для отправки комментариев
Втр, 02/10/2012 - 17:20
Здравстуйте. Подключил дисплей к ардуино. Он сразу же загорелся в тестовом режиме (когда квадратики горят). Попытался открыть в File->Examples->LiquidCristal->Hello world. Закачал на ардуино, а у меня ничего на дисплее не происходит, но в компиляторе надпись:
Binary sketch size: 2.570 bytes (of a 32.256 byte maximum)
Как запустить этот пример. Просто я новичек. Вот третий день только сижу разбираю примеры. Помогите запустить дисплей
Проверяйте, соответствует ли подключение индикатора варианту в тестовом примере. Там прямо в тексте указано, какой вывод к какому порту должен быть подключен
У меня Ardoino UNO и SainSmart 1602 LCD Keypad Shield и она просто сверху должна прикрепляться к ардуинке. Дисплей горит в режиме теста
Тогда все просто - берите библу от шилда (там должны быть примеры). У Вас наверняка дисплей подключен к SPI, так что стандартный пример не покатит.
А какой пример может прокатить? Можно ссылку на полезный материал?
Ну Вы даете! К шилду идет библиотека, в ней должны быть примеры.
Скачал эту библиотеку. Запустил пример "Helli World". И ничего. Все по-старому. Горит только в тестовом режиме и все
Ну тогда могу только посоветовать найти схему шилда и выложить сюда (или ссылку на схему) - можно будет сравнить с библиотекой и сделать вывод с совместимостью железа с оной. Возможно, у Вас какая-то модификация, и ноги разведены по другому... или еще какая хрень... От китайцев можно всего ожидать (не сомневаюсь, что девайсина собрана безымянным ляо).
Вам правильно советовал AlexFisher:
Проверяйте, соответствует ли подключение индикатора варианту в тестовом примере.
Там прямо в тексте указано, какой вывод к какому порту должен быть подключен
Подойдет стандартная библиотека LiquidCrystal
Открываете
examples>Hello world
и в тексте меняете
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
На
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
Добрый вечер! У меня та же самая проблема с LCD Shield 1602 http://www.ebay.com/itm/370880538854 - нет схемы и неизвестен интерфейс подключения. Возможно параллельный, тк на главную плату (shield) распаяны все 16 выводов LCD модуля и из них по нижней стороне shield разведены 7 шт.
Какая библиотека предназначена будет работать с этим индикатором и кнопками?
Посмотрел на принципиальную схему в библиотеке
Нету у него режима теста. Там есть подстроечный резистор который отвечает за контрастность - вот если он неправильно настроен то всегда черные квадратики будут на дисплее.
Добрый вечер! У меня та же самая проблема с LCD Shield 1602 http://www.ebay.com/itm/370880538854 - нет схемы и неизвестен интерфейс подключения. Возможно параллельный, тк на главную плату (shield) распаяны все 16 выводов LCD модуля и из них по нижней стороне shield разведены 7 шт.
Какая библиотека предназначена будет работать с этим индикатором и кнопками?
Посмотрел на способ подключения кнопок через делители, но на своей плате не нашел ни одного резистора, заглядывал даже в щель между shield и платой LCD модуля.
Лучше смотреть какие выводы шилда разведены. Вот тут нарисовано:
http://www.hobbyist.co.nz/?q=16x2-arduino-lcd-shield
На шилд напаян обычный параллельный LCD + на шилде есть микросхема декодера I2C.
У LCD нет тестового режима, а есть режим инициализации, когда горит одна строка квадратиков.
Резисторы лучше искать тестером ;-)
установил библиотеку, откомпилировал пример программы
в UNO (а после обнаружения проблемы загрузил этот скетч в Mega2560)
Надпись "KeyGrab v0.2" после перезагрузки выдается четко, а когда появляется надпись
Current key
0
то надпись дрожит по строкам и отдельным пискелям. впечатление, как будто кнопки 1 2 3 4 нажаты и программа так быстро пытается обновитьдисплей, что ( медленный FSTN ?) не успевает обновляться и на нажатие кнопок 1,2,3 и 4 нет реакции, а при нажатии и удержании кнопки 5, ноль во второй строке LCD заменяется на цифру 5:
Current key
5
на это время дрожание пикселей прекращается, а при отпускании возобновляется. Нажатие кнопки 6 (RESET) приводит к перезагрузке и выдачи заставки "KeyGrab v 0.2" и повторению дрожания. В чем может быть причина?
На шилд напаян обычный параллельный LCD + на шилде есть микросхема декодера I2C. Резисторы лучше искать тестером ;-)
Разведены так, как по вашей ссылке те 8 шт. А0 я сначала не заметил. Резисторы нашел визуально, тестером не проверял. Пересмотрел поверхности шилда, на нем , как и на принципиальной схеме микросхем не нашел (плохо искал?). Не понимаю почему "рябит" изображение на индикаторе без нажатой кнопки 5?
Обратите внимание за 39-ю строчку кода. Сделайте подобное в 71-ой строчке. Экран обновляется каждый раз с начала цикла и без задержек, а это очень часто.
Но это на первых парах. Лучше не обновлять его пока не нужно будет выводить другую информацию.
добавил задержку и появилась стабильность, но кнопки 1 2 3 4 uno не видит
и дополнительно : в одном каталоге с примером находится файл c кривым именем ¦T-и+---+-¦¦.C , читаю его notepad'ом - в нем определена SIMPLE_WAIT Открыть с помощью arduino.exe Windows игнорирует, да и arduino установился странно - без прописки в Program files. Чем открыть этот кривоименный файл ¦T-и+---+-¦¦.C ?
Файлы с расширением .С .СРР .Н и подобные я открываю Atmel Studio 6.0 Удобно и читабельно. Легко редактировать.
Вы клаву правельно инициализироваль? И какую задержку поставили? достаточно 100-300
Arduini можно установить, а можно распоковать. Я разници не нашёл
Arduini можно установить, а можно распоковать. Я разници не нашёл
Да, эта строка включена в код программы:
Поменял инициализацию клавиатуры в setup() на
НО КНОПКИ 1 2 3 4 ПРОГРАММЕ ПО-ПРЕЖНЕМУ НЕ ВИДНЫ
Какую функцию выполняет кривоименный файл *.C в каталоге с примером и как можно выводить отдельные символы с инвертированием фона ?
Честно говоря я не работал ещё с клавой и этой библиотекой, но мне кажется что
это время опроса клавишь. Ну а какую функцию выполняет я уж точно не знаю. Я его не видел.
Честно говоря я не работал ещё с клавой и этой библиотекой, но мне кажется что
это время опроса клавишь. Ну а какую функцию выполняет я уж точно не знаю. Я его не видел.
Ну что-то нестабильно работает считывание с клавиатуры, кнопку 1 программа не читала не разу, №5 легче всего, а 2 3 и 4 с большими проблемами, как будто зависает при считывании ихз клавиатуры в каком-то прерывании. Сам я при моем начальном уровне разобраться с текстами библиотек не смогу, есть ли более надежные проверенные библиотеки ?
файл с кривым именем:
как можно свернуть код программы в посте?
Вкладка "Дополнительно"
Вкладка "Дополнительно"
спасибо
Так файл с "кривым" названием это то, что вы компелируете и загружаете. Рассмотрите библиотеку, она должна быть раскометнирована. Там и посмотрите как инвертировать, и какие функции есть. Большенство функций, особенно которые возвращают какие-либо значения, имеют прототипы которые расположены подрят и имена говорят сами за себя.
Рассмотрите библиотеку, она должна быть раскометнирована. Там и посмотрите как инвертировать, и какие функции есть. Большенство функций, особенно которые возвращают какие-либо значения, имеют прототипы которые расположены подрят и имена говорят сами за себя.
Ссылок на файл с таким кривым именем
¦T-и+---+-¦¦.C
не нашел, компилирую не его, а другой похожий по содержанию файл.
Эта библиотека куцая - ничего нет, кроме передирания копирайтов в примере - см "отличия" заколовков скетчей №1 и 2. Ищу другую библиотеку, вы какую используете?
Что значит куцая? Каково содержимое DFR_Key.h ?
то есть мне трудно т.к. весьма скудно документирована (комментирована)
Как можно инвертировать (текст/фон) для отдельных символов на LCD не создавая нового символа?
Не удалось скомпилировать вышеприведенную программу из примеров "LiquidCrystal Library - Custom Characters" и не знаю как устранить ошибки
кастомизированные символы теперь печатаются в экран не lcd.write(n);, а lcd.print((char)n);
Чтобы выделить несколько символов инвертированием фона нужно обязательно создавать символы или есть способ проще?
Вы пишите "теперь" - то есть начиная с какого момента, какой версии ? Этот пример устарел?
Какой версии уже не важно.
Пример устарел.
Все ненормальные вещи, реализуются ненормальными способами.
полный список методов и функций ищите в файле keywords.txt в папке с файлами библиотеки
Все ненормальные вещи, реализуются ненормальными способами. полный список методов и функций ищите в файле keywords.txt в папке с файлами библиотеки
что такое LITERAL1 в keywords.txt ?
Где взять актуальную версию примера и какая программа формирует keywords.txt ?
замените lcd.write(n); на lcd.print((char)n); - будет актуальный пример.
как формируется не знаю - если сами будете писать библиотеки, то само прояснится по ходу дела
что такое LITERAL1 в keywords.txt ?
список констант, в данном случае, так думаю, что это название кнопок - с.м. # Constants (LITERAL1)
а как инвертировать фон и текст отдельных позиций на LCD ?
Или переклеиваете поляризационные плёнки в дисплее или используйте другой дисплей (напрмер графический)
А разве в виде курсора это реализовать невозможно. Как я понял, собственно это и надо сделать.
а как инвертировать фон и текст отдельных позиций на LCD ?
16х2 дисплей этого не делает. Вам нужно использовать ГРАФИЧЕСКИЙ дисплей.
Заменил, но видимого на LCD результата нет.
У этого шилда LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
И подсветка на 10 (десятом).
а как инвертировать фон и текст отдельных позиций на LCD ?
16х2 дисплей этого не делает. Вам нужно использовать ГРАФИЧЕСКИЙ дисплей.
Речь идёт об использовании 16х2, причём тут графический? 16х2 выкинуть что ли!?
Ну не будет он инвертировать фон и текст отдельных позиций
спасиибо, так работает, а на 10pin высокий уровень подает библиотека при инициализации ?
Кстати, lcd.createChar(0, array_of_bytes); не записывает ли в EEPROM или flash LCD?
если так, то каждый запуск контроллера с такой программой изнашивает память
Сложностей с программированием? Вы так.... на минутку зашли в программирование а вобще проходили мимо? Анука взяли яйца в руки и заказали графический и выложили фото с выведеным "Hello world". Иначе Вам просто тут нечего делать. За вас писатиь проги тут никто не будет, я на себе уже давно убедился в этом. А направить на истенный курс, подтолкнуть к правельному решению..... для этого и существуют форумы.
Хьюгобосс, с этим не спорю, но для графического дисплея нужна другая удобная графическая среда разработки в стиле скады или операторских панелей. Иначе все рассчеты координат рамок меню вручную, а кому оно так надо ?
Хозяин барен
-------------
изменил программу и получил печальное подтверждение - lcd.createChar(code, array); записывает символы пользователя в энергонезависимую память LCD и
... возможно изнашивает ее.
... возможно изнашивает ее.
*и от девственниц большой износ(Пратчетт)
Monsel, а почему Вы мне тычете? Мы ведь с Вами детей не крестили, и то что я Вам не смог помочь, не повод на меня сливать злость, ИМХО показывать свой хоррактер не лучший способ просьбы о помощи.
Почитал вашу ветку про программирование графического индикатора 128х64 - очень интересно, но к сожалению для мой текущей задачи он не нужен, а в будущем обязательно применю. Спасибо вам.
PS: вы изменяете слова русского языка не сознательно ?
Если АсознатИльно, обычно пишу ошибАчную букву бАльшой.
подсветка на 10 (десятом)
спасиибо, так работает, а на 10pin высокий уровень подает библиотека при инициализации ?
Нет. это ваш пин и делайте с ним что хотите, например:
#define LCD_PWM_pin 10 //LCD backlight pin
byte LCD_PWM_value = 64 ; // LCD brihtness variable
analogWrite ( LCD_PWM_pin, LCD_PWM_value ) ; // set LCD brihtness