Pull to refresh

Comments 40

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

Когда я в конторе разработкой электроники занимался, паралельные интерфейсы ЖК-дисплеев ужасно бесили при дизайне и разводке плат.

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

Поэтому чаще ограничивались паралельным интерфейсом с 4 разрядами вместо 8 (почти все ЖК-дисплеи это умеют) — в сумме вместе с управляющими получалось штук 8-9 проводников вместо 12-13.

Код Ваш, честно говоря несколько прискорбный. Вы же умеете использовать массивы? Вот и юзайте их вместо этих длинных цепочек одинаковых вызовов и вместо этого switch-а для печати цифр…

И по поводу использования библиотек — я бы осмелился порекомендовать на данном этапе пробовать без них. Сколько помню у данного чипа достаточно простой и внятный к I2C был подход, так что методически было бы весьма полезно читать мануал по нему нежели искать по форумам нужную библиотечку :)

Впрочем повторюсь, сама тема актуальная весьма, фотографии достаточно неплохо получились — так что пост вызывает одобрительные чувства!
Ну я только начал, и использую конструкции, которые понимаю. Это мне позволяет как-то двигаться дальше=))

По библиотекам — согласен — получается то одно не работает, то другое. Я пока буду осваивать — как костыли их оставлю. Потом буду прописывать все в коде функциями.

Спс. Буду массивы пробовать внедрять.
Так вы попробуйте помимо Arduino ещё и язык Си поизучать… Нарочно! И вообще программирование — задачки небольшие порешайте и т.п. — чтобы это из головы в пальцы перетекло и не мешало вам заниматься серьёзными вещами ;-)

Это страшно поможет!

Многие разработчики firmware которых я знал как раз испытывали сложности в разработке из-за того что уровень скиллов программистских у них был… Ну как у ленивого студента — им трудно писать код такой чтоб его потом было легко поддерживать, трудно искать ошибки в этом коде… А как результат устройства работают то криво, то ненадёжно — причём с электроникой особенно стрёмно когда не знаешь, то ли баг в программе, то ли где-то контакт пропадает (или появляется) когда не нужно :D
К сожалению дисплеев работающих по I2C вообще очень мало, и не всегда удавалось подыскать а тем более заказать подходящий.

На ебее есть универсальные дисплеи работающие в том числе через uart. т.е. всё что нужно — VCC, GND, RX. Соответсвенно, элементарно подключается к чему угодно, например к openwrt-роутеру.
роутер с дисплеем
Переходник I2C для LCD хорош для прототипа устройства, а при сборке часов на основе м/к atmega он не имеет смысла, если хватает выводов микроконтроллера…

На счет оптимизации кода — прочитайте про PROGMEM…
Я даже куски кода выдел, сложновато прям сразу вникнуть. Но, думаю, все впереди.
Вы не затронули вопрос с pullup-резисторами для i2c, они нужны при подключении многих устройств.

Важно при начале сборки любой схемы с i2c проверить каждый по отдельности этим — playground.arduino.cc/Main/I2cScanner — конфликты адресов сложно вылавливать.

И последнее — видимо, вы тестировали это только на Uno. Дальше вам точно захочется сделать из прототипа компактную схему и вы полезете на Ebay покупать крохотную Ардуино Pro Micro, основанную на железе от Ардуино Leonardo. И тут с большой вероятностью вас ждёт облом, так как 9 из 10 библиотек для i2c устройств несовместимы с Leonardo или ведут себя непредсказуемо.

(написано по результатам танцев с бубном вокруг Leonardo, часов на 1302, барометра 185, пары LCD-дисплеев и одного i2c level shifter в течение недели).
Я не понимаю смысла покупать микро, у меня лежит пара про мини по 100 рублей (которая без usb ), я сегодня проверю на ней — отпишусь. По железу там один к одному. Про микро не ипользовал, может какая специфика.
Мой спич был про то, что на каждой Leonardo и Pro Micro должна быть надпись «не глотать» и «не давать маленьким детям» «не надеяться, что пример i2c кода из интернета сразу заработает или вообще заработает».

ProMini можете не испытывать — там всё идентично Uno.
Понятно. Ну если есть старое железо, то предполагается уже есть и опыт по настройке этого железа под современные требования)) Я не рассматриваю другие МК кроме меги328 и меги8. Первой хватает для новичка за глаза, вторая под мелкие проекты.
А почему бы сразу не попробовать под атмегу писать? Ну или аттини например.
Всмысле писать в AVR stuidio?

Я начал изучать основы на сайте дихальта, но столкнулся с проблемами.

Чем прошить код в мк? Ранее я уже повторял схемы и у меня есть com программатор (Громова, не помню) для меги и тиньки, но, чтобы прошить — нужно выставлять фьюзы во внешей программе. Минимальное понимание есть, но это далеко не так удобно как с ардуиной. Я куплю нормальный USB программатор-отладчик, но не скоро, ибо не горит. Есть более важные вещи, осциллограф например.

Готовые библиотеки ардуины позволяют сразу получить результат. А мне это важнее, чем месяц ковыряния и непонятная перспектива, что будет дальше.

На самом деле, пока не требуется каких-то оптимизация и чистого кода, мне подходит Ардуина.

Cпасибо за ссылку на сканер I2C адреса устройства. Я в этом слабо пока разобрался.
О. Интересная тема, спасибо. Я ещё жду посылку с моим стартовым комплектом, но эти вещи меня уже тревожат. Концепция сдвига регистров и каскадных можем меня не порадовала, показавшись сложной. Хотя возможно это из-за отсутствия опыта.
Я вот тоже сидел ждал пока придут железки. Есть тот же Протеус, которому можно скормить компиленый код из Ардуиновой IDE и посмотреть как работает схемка без железа, но меня не впечатлило.
Не, это скучно. Хочется демонически хохотать при вспышках молнии, чтобы потом выбегать в дымящемся халате с криками «HE IS ALIVE!»
Это уже роботы… а роботы это дорого, долго, но занимательно. Даже фенольного робота чтобы собрать — нужно умудриться найти игрушки подходящей комплектности. Сегодня ездил искал фенольные танки — и не нашел! Похоже они канули в лету как и 2007 год… roboforum.ru/forum88/topic2214.html
Фенольные роботы и фенольные танки?
Это что-то из военной области? =)
То есть фактически это расширитель портов?
Ну да, плата собрана на PCF8574
Классно)) Однако, если под рукой нет экрана от 6610, то дорого выходит его покупать. Я себе заказал TFT от китайфона с тачем за 200 рублей… Как предет буду мучать. Оказался самый оптимальный вариант.
А можно ссылку на этот экран?
Существуют ли реле, подключающиеся через I2C? Для управления электромоторами например
Это микросхема MCP23017 + любое реле шилд или микросхема-ключ. Вот только управлять сервами так не получится…
Ещё подойдет этот же переходник i2c для LCD экрана, в котором PCF8574 — аналог MCP23017, но на 8 выводов, а не на 16 как MCP23017
Спасибо за информацию. Хоть и не я вопрос задавал.
Спс! Сколько в плейграунде и форуме копаюсь, всегда что-то новое нахожу)
Как будто у MCP23017 с «закрытым» коллектором. Судя по даташиту, они отличаются многим, но не типом выходов.
Добрый день!
Чисто теоретический вопрос: А вместо i2c можно ли для LCD использовать сдвиговый регистр? Нам же вроде для LCD не нужно никакие данные читать, а только писать и для этого вполне подойдёт сдвиговый регистр для выхода? Я так понимаю, что в этом случае нужно будет писать какую то свою библиотеку для работы с LCD через сдвиговый регистр.
Спасибо за ссылку на мою давнишнюю статью — как раз в тему всяких I2C-переходников. Людям советую не заморачиваться с переходниками, если более-менее развиты программерские скиллы: в статье как раз расписано, как заставить работать LCD и сервомашинки через сдвиговые регистры, которые легко заменить на I2C-микросхемы, дописав интерфейс к ножкам микросхемы. Дело в том, что микросхемы в DIP-корпусах стоят копейки и изучаются за 1 день, после чего можно делать переходники с чего угодно на SPI или I2C. А кто и в с производством плат ЛУТом знаком, тот сможет сэкономить место, заказав микросхемы в мелких корпусах и приделав плату с ними прямо на заднюю стенку LCD или другого устройства.
-> нашел переходник на I2C для моего LCD
А можно ссылочку на этот переходничок?
Автор выше писал: habrahabr.ru/post/219137/#comment_7491639 Хотя такую информацию неплохо было бы добавит в статью, а то сразу вопрос возникает: Что за переходник? :-)
дело в том что их три вида, и в них есть мелочи, которые отличаются, в том числе адресация, чипы, на которых они собраны…

Конкретно я брал тут www.ebay.com/itm/310565362720
Кстате, это очень хороший продавец, рекомендую. У него взял уже массу всяких шабашек и микрух.

Дополнил текст
UFO just landed and posted this here
Sign up to leave a comment.

Articles