Оглавление:
Видео: LCD COG для Arduino Nano: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
В этом руководстве описывается, как использовать ЖК-дисплей COG с Arduino Nano.
ЖК-дисплеи COG дешевы, но с ними немного сложнее взаимодействовать. (COG означает «чип на стекле».) Тот, который я использую, содержит микросхему драйвера UC1701. Для этого требуется всего 4 контакта Arduino: SPI-часы, SPI-данные, выбор микросхемы и команда / данные.
UC1701 управляется шиной SPI и работает от 3,3 В.
Здесь я расскажу, как использовать его с Arduino Nano. Он также должен работать с Arduino Mini или Uno - скоро попробую.
Это мой первый проект Arduino, и я не писал C уже несколько десятилетий, поэтому, если я делаю очевидные ошибки, пожалуйста, дайте мне знать.
Шаг 1: Сборка оборудования
Купите ЖК-дисплей COG, содержащий микросхему UC1701. Он должен использовать шину SPI, а не параллельный интерфейс. Он будет иметь около 14 контактов, которые будут обозначены именами, подобными перечисленным ниже. (Вам не нужен параллельный интерфейс с большим количеством контактов, обозначенных D0, D1, D2…)
Я купил: https://www.ebay.co.uk/itm/132138390168 Или вы можете поискать на eBay «12864 LCD COG».
Выберите тот, у которого довольно широкий хвостик с контактами, расположенными на расстоянии 1,27 мм - более тонкие контакты будет трудно припаять. Убедитесь, что в нем есть микросхема UC1701. Обратите внимание, как на шестой картинке на странице ebay написано «CONNECTOR: COG / UC1701».
Дисплей прозрачный, и сложно понять, какой спереди, а какой сзади. Внимательно изучите мои фотографии. Обратите внимание, где находятся контакты 1 и 14 - они отмечены на хвосте.
Гибкий хвостовик довольно легко припаять, но для этого требуется переходник, чтобы вы могли подключить его к макетной плате. Я купил: https://www.ebay.co.uk/itm/132166865767 Или вы можете поискать на eBay «Адаптер Smd SSOP28 DIP28».
Адаптер принимает 28-контактный чип SOP с одной стороны или 28-контактный чип SSOP с другой стороны. Микросхема SOP имеет расстояние между выводами 0,05 дюйма (1,27 мм), что совпадает с задней частью ЖК-дисплея.
Вам также понадобятся штыри для заголовка. Всякий раз, когда я покупаю Arduino или другой модуль, он поставляется с большим количеством выводов, чем необходимо, так что у вас, вероятно, уже есть некоторые из них. В противном случае поищите на eBay «штырьки заголовка 2,54 мм».
Припаяйте 14 контактов разъема к адаптеру. Не проталкивайте их полностью - лучше, если задняя часть адаптера будет плоской. Положите его на скамью, чтобы штифты не вошли слишком глубоко в отверстия. Убедитесь, что контакты находятся на стороне SOP платы (т.е. на большей микросхеме).
Подушечки хвоста в своего рода окошке. Оболуживайте их с обеих сторон припоем. Залуживаем колодки адаптера. Удерживая хвостовик адаптера на месте, коснитесь каждой контактной площадки паяльником (вам понадобится довольно тонкий наконечник).
Проденьте нить через отверстия в адаптере, чтобы снять напряжение. (Я использовал "трансформаторный провод").
Если вы припаяли его не так, не пытайтесь распаять хвост. Вытаскивайте штифты по одному и перемещайте их на другую сторону доски. (Да, я допустил ту же ошибку и перепаял хвост, поэтому на фото немного беспорядок.)
Шаг 2: подключение к Arduino
В этом разделе объясняется, как подключиться к Arduino Nano. Это будет очень похоже на Mini или Uno, но я еще не пробовал.
Изучите принципиальную схему.
Arduino Nano, подключенный к USB-порту, работает от 5 В. ЖК-дисплей работает от 3,3 В. Таким образом, вам нужно запитать ЖК-дисплей от контакта 3V3 Nano и снизить напряжение на каждом управляющем контакте с 5V до 3,3V.
Распиновка ЖК-дисплея:
- 1 CS
- 2 RST
- 3 компакт-диска
- 4
- 5 CLK
- 6 ПДД
- 7 3V3
- 8 0В Земля
- 9 VB0 +
- 10 VB0-
- 11
- 12
- 13
- 14
CS - это Chip-Select. Он опускается на низкий уровень для выбора (включения) микросхемы UC1701. (CS может называться CS0, En или аналогичный.)
RST - это сброс. Он опускается на низкий уровень для сброса микросхемы. (RST можно назвать сбросом.)
Компакт-диск - это команда / данные. Он сбрасывается при отправке команд микросхеме через SPI. При отправке данных высокий. (CD можно было бы назвать A0.)
CLK и SDA - это выводы шины SPI. (SDA может называться SPI-Data. CLK может быть SCL или SPI-Clock.)
VB0 + и VB0- используются внутренней накачкой заряда UC1701. Зарядный насос генерирует нечетные напряжения, необходимые для ЖК-дисплея. Подключите конденсатор 100н между VB0 + и VB0-. Документация UC1701 рекомендует 2 мкФ, но я не заметил разницы с этим конкретным ЖК-дисплеем.
Если на вашем ЖК-дисплее есть выводы VB1 + и VB1-, также подключите между ними конденсатор емкостью 100нм. (Если на вашем ЖК-дисплее есть вывод VLCD, вы можете попробовать подключить конденсатор 100н между VLCD и Gnd. Это не имело никакого значения для моего ЖК-дисплея.)
Подключите ЖК-дисплей к Nano следующим образом:
- 1 CS = D10 *
- 2 RST = D6 *
- 3 CD = D7 *
- 5 CLK = D13 *
- 6 SDA = D11 *
- 7 3V3 = 3V3
- 8 0 В = Земля
(«*» означает использование делителя потенциала для уменьшения напряжения. Если Arduino работает от 3 В 3 от независимого источника питания, резисторы вам не понадобятся.)
3,3 В выдает Nano и может обеспечить достаточный ток для ЖК-дисплея. (Дисплей потребляет около 250 мкА.)
5 В также выводится Nano и может использоваться для питания подсветки. Ограничьте ток подсветки резистором 100 Ом.
Если у вас не хватает контактов на Nano, вы можете подключить RST к 3V3 - тогда вы можете использовать D6 для чего-то другого. Сброс U1701 можно выполнить программно с помощью команды SPI. У меня никогда не было проблем с этим, но если вы используете свою собственную схему в шумной среде, может быть лучше использовать аппаратный сброс.
Шаг 3: Программное обеспечение
Теоретически вы можете управлять UC1701 из библиотеки U8g2 (или Ucglib или других доступных библиотек). Я несколько дней боролся, чтобы заставить его работать, и потерпел неудачу. Библиотека U8g2 - это чудовище, потому что она может управлять огромным количеством микросхем, и очень сложно следовать коду. Так что я сдался и написал свою небольшую библиотеку. В Arduino он занимает намного меньше места (около 3400 байт плюс шрифты).
Вы можете скачать мою библиотеку отсюда (кнопка «Скачать» на этой странице). Образец эскиза и руководство пользователя прилагаются. На веб-странице https://www.arduino.cc/en/Guide/Libraries описано, как импортировать библиотеку; перейдите в раздел «Импорт библиотеки.zip».
Инициализируйте ЖК-дисплей с помощью
UC1701Begin ();
UC1701Begin может принимать параметры для изменения выводов или игнорирования вывода RST. Библиотека использует только аппаратный SPI (программный SPI не предусмотрен). Дисплей можно переворачивать по осям x и y. Это полезно, если вы хотите установить ЖК-дисплей в другой ориентации.
Несколько процедур были продублированы из библиотеки U8g2:
- DrawLine
- DrawPixel
- DrawHLine
- DrawVLine
- DrawBox
- DrawFrame
- DrawCircle
- DrawDisc
- DrawFilledEllipse
- DrawEllipse
- DrawTriangle
- UC1701SetCursor
- UC1701 Очистить дисплей
Некоторые процедуры немного отличаются:
- void DrawChar (uint8_t c, word Font);
- void DrawString (char * s, word Font);
- void DrawInt (int i, слово Font);
Процедурам рисования строк передается индекс шрифта. Шрифты объявлены во флеш-памяти Arduino, поэтому они не занимают драгоценную SRAM. Предусмотрено три шрифта (маленький, средний и большой). Они связаны и занимают флэш-память только в том случае, если вы их используете (примерно от 500 до 2000 байт каждый).
"Цвет" обрабатывается иначе, чем в библиотеке U8g2. Когда ЖК-дисплей очищен, он имеет темный фон. Если MakeMark (глобальная переменная) имеет значение true, отрисовка выполняется белым цветом. Если MakeMark имеет значение false, рисование выполняется в темноте.
Некоторые процедуры уникальны для UC1701:
SetInverted рисует «черное на белом», а не «белое на черном».
void SetInverted (bool inv);
Яркость и контраст UC1701 устанавливаются:
- void SetContrast (значение uint8_t); // предлагается 14
- void SetResistor (значение uint8_t); // предлагается 7
Они работают вместе довольно неудовлетворительно.
SetEnabled отключает ЖК-дисплей:
void SetEnabled (bool en);
В спящем режиме дисплей потребляет 4 мкА. Также следует выключить подсветку - прогнать ее с штыря Нано. После повторного включения UC1701 будет сброшен; дисплей очищается, а контрастность и резистор будут сброшены на значения по умолчанию.
Итак, в заключение, дисплеи COG дешевы и имеют приличный размер. Их легко подключить к Arduino.
Рекомендуемые:
Плата для игры в понг для 2 игроков: 3 шага
Плата для игры в понг для 2 игроков: в этом руководстве вы можете создать портативную игру в понг для 2 игроков. Этот дизайн был создан на основе кода, размещенного на GitHub Онуром Авуном. Мне понравилось создавать этот проект, надеюсь, вам понравится его создание
Акриловая подставка для планшета для Flight Sim с настоящими ручками: 4 шага
Акриловая подставка для планшета для Flight Sim с настоящими ручками: это подставка для планшета (например, iPad) для использования с программным обеспечением для симулятора полета. Используя модули поворотного энкодера и Arduino Mega, я создал решение, в котором физические ручки могут быть сопоставлены для управления определенными функциями инструмента в симуляторе. Как лет
Симулятор игры для смартфона - играйте в игры для Windows, используя IMU для управления жестами, акселерометр, гироскоп, магнитометр: 5 шагов
SmartPhone Game Simulator - играйте в игры для Windows, используя IMU управления жестами, акселерометр, гироскоп, магнитометр: поддержите этот проект: https://www.paypal.me/vslcreations, сделав пожертвование на программы с открытым исходным кодом & поддержка дальнейшего развития
Подставка для ноутбука на 3 и 3 ступени (с очками для чтения и лотком для ручек): 5 ступеней
Подставка для ноутбука с 3-мя и 3-мя ступенями (с очками для чтения и лотком для ручек). 3 ступеньки подставки для ноутбука можно сделать за 5 минут. Он очень прочный, легкий и его можно сложить, чтобы взять с собой куда угодно
Кронштейн для 3,5-дюймового жесткого диска для отсека для дисковода 5,25 дюйма: 3 шага
Кронштейн для 3,5-дюймового жесткого диска для отсека для дисковода 5,25 дюйма: у большинства из нас все еще есть старые CD / DVD-диски, которые вам уже не нужны, но вам жаль выбрасывать. Это инструкция, как дать вашим старым CD / DVD-ROMам вторую жизнь