Как стать автором
Обновить

Комментарии 53

Для теста возьмём пример из библиотеки LiquidCrystal.h — «Hello World».

Вся суть «статьи»: берем готовое железо, берем готовый софт, пара бессознательных кликов мышкой — и можно писать статью!
Остается один вопрос: вы ее зачем писали?
Лучшие схемы создаются во fritzing.

Если ваша цель — привлечь внимание, то есть чтобы на вас показывали пальцем как на идиота, не способного читать и чертить нормальные схемы.
Спасибо за ваш отзыв. Он важен для нас.

Диагноз «идиотия» очень трудно ставится. Для этого нужен психиатр соответствующий квалификации.

Может при диагностике оказаться, что психически неполноценным человеком может оказаться комментатор.
Хейтер — это тоже психологическая болезнь.
Диагноз «идиотия» очень трудно ставится. Для этого нужен психиатр соответствующий квалификации.
И вы решили таким способом автоматизировать сию сложную задачу? Если взрослый человек (старше 16 лет) малюет «схемы» в fritzing и считает себя гуру разработчиком, можно сразу вызывать санитаров.
Хейтер — это тоже психологическая болезнь.
Угу. Это не статья ущербная, это вокруг одни хейтеры.
как можете заметить из статьи. Нигде нет слова «Гуру», «профессионал» и подобные высокопарные слова.
Почему статьи должны публиковать только гуру по вашему мнению? Это какие то стериотипы закомплексованности?
Я думаю, статьи может писать любой человек, если испытывает к этому потребность. А другие люди могут читать, а могут и игнорировать. Демократия и свобода слова.

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


Тоже мне бином Ньютона ;)
Блогер, продвигающий свой канал. Это видно по остальным статьям ;)
как можете заметить из статьи. Нигде нет слова «Гуру», «профессионал» и подобные высокопарные слова.
я вижу тэг «туториал». Знаете что он означает или при его простановке руководствовались тем же соображением, что и при написании «пишу что хочу»?
Я думаю, статьи может писать любой человек, если испытывает к этому потребность.
Если испытываете непреодолимое желание выкладывать подобные «достижения», для этого существуют сервисы личных блогов. Не надо загаживать уважаемую общественную площадку подобным мусором.
А выливать свой гнев и какие-то мнения
Не надо проецировать свои комплексы на окружающих. Вы вывалили на всеобщее обозрение статью мусор. Вам на это корректно указали. Вместо того, чтобы принять конструктивную критику к сведению и скорректировать свое поведение, вы начали брызгать непонятными жидкостями и обвинять в хейтерстве (какое самомнение однако).
Понятно
спасибо за ваше мнение. Пишите ещё буду рад почитать.

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

"Рассмотрим процесс подключения дисплея 1602. У него шестнадцать выводов."


Больше ничем этот дисплей не примечателен, похоже.


Зачем эта статья? Информации о дисплеях и Ардуино вагон, можно ведь сделать подборку из чего то полезного. А так это не тянет ни на учебный материал, ни на справочник. Я сделаль.

Ага, или хотя бы расписать что это за пины, и как оно всё работает

Почему не используется все 8 линий данных экрана и целиком порт АТмеги?

Потому что ардуина. У них везде в примерах работы с контроллером HD44780 4bit режим.

Да ладно еще использовать для обмена полубайт, все таки это один из штатных режимов работы данного контроллера дисплея. А вот раскидать этот полубайт по выводам порта MCU так:
/*
Display pin      MCU pin
DB4               PD5
DB5               PD4
DB6               PD3
DB7               PD2
*/
— это надо быть истинным ардуинщиком в самом плохом смысле этого слова. Создается ощущение, что никто из них ни разу не удосужился заглянуть в datasheet, чтобы узнать, что выводы однокристаллки не самостоятельные «пины», а организованы в порты.

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

Так вот это «не задумываясь» и есть основная проблема, потому что отсутствует четкое понимание того, что делаешь. Решение разработчиков Arduino заменить общепринятое обозначение цепей «порт — номер бита» на сквозную нумерацию отчасти этому очень поспособствовало.
конечно это дешево и всё такое, но уже давно такие дисплеи продаются с «драйвером» и подключаются по I2C. и проводов меньше и библиотеки есть готовые. лучше использовать выводы ардуины по делу, а не занимать их всех на подключение экранчика…

Если выводов хватает, почему бы и не сэкономить на чипе с i2c.

FTGJ — выводы, занятые под ШД дисплея вполне можно мультиплексировать с другими получателями/приёмниками информации. Пока "E" неактивен, ШД в Z-состоянии.

Думал, что тут будет какое то необычное подключение или использование. Но статья как копирка из учебника. Да еще и картинки по полтора мегабайта, которые автор поленился уменьшить.
Я считаю, что ардуино это хороший тестер для проверки плат различного назначения: всякие датчики, модули связи и т.д.
Когда мне дают задание на разработку какого-то контроллера (до схемы дело еще не дошло, просто известно, что будут задействованы модули/интерфейсы различного назначения), то я закупаю эти модули в виде отдельных плат, и, если с каким-то модулем я не работал, то проверяю его на ардуинке, используя встроенную или кем то созданную библиотеку. Если модуль работает как нужно, значит он исправен (если не работает, то возможно библиотека с ошибками или действительно сам модуль неисправен).
Далее, разбираюсь с ним в плане программирования и пишу прошивку.
Я к чему.
Если бы вы в одной статье описали максимально возможное кол-во модулей и библиотек для работы с ними (встроенные/сторонние) в ардуинке, то лично я положил бы статью в закладки.
Поддерживаю! Уже какое-то время хочу купить Ардуину (даже при моей любви к программированию на регистрах) именно чтобы смотреть как работает очередной модуль и как можно перевести его код с ардуинского языка на нормальный.

"с ардуинского языка на нормальный."


С С++ на какой? ;)

Нет, с digitalWrite на PORTB

PORTB |= 1<< BIT_6 — такие конструкции будут сильно лучше?

Чем digitalWrite? Как минимум на порядок. А если пугает читаемость и переносимость, на макросах это решается элементарно и без накладных расходов.
Заменить ардуиновский bitbang самодельным, конечно же, можно. Только на быстродействии это отразится примерно никак.
fgrep -r digitalWrite arduino-1.8.8/libraries/LiquidCrystal/src/LiquidCrystal.cpp | wc -l
10
fgrep -r delayMicroseconds arduino-1.8.8/libraries/LiquidCrystal/src/LiquidCrystal.cpp | wc -l
11


Смекаете?
Вы по ссылке ходили? Там у человека получилось разница в 28 раз, даже осциллограммы приведены.
Ему и логике я верю больше, чем вашим фантазиям.
Вера это хорошо ;) Только в коде LiquidCrystal, например, все тайминги сделаны на delayMicroseconds. И даже если вы сделаете bitbang в 28 раз быстрее — время выполнения кода больше будет зависеть от таких вещей
    delayMicroseconds(4500);  // wait more than 4.1ms

, чем от оптимизации в 5 микросекунд.
Тоже неплохой пример как можно перевести с Ардуинского языка на нормальный. В зависимости от задачи использовать РТОС, таймеры, DMA. На «тупых» задержках свет клином не сошелся.
А учитывая, что мы обсуждаем не HD44780, а ардуинские модули, простор для творчества просто невероятный.
Откуда в AtMega или ESP8266 возьмется DMA? ;)
И ещё ардуиновкие библиотеки делаются совместимыми с разными платформами — отсюда и ардуиновское API, избыточное, но работоспособное везде.
Так то я против оптимизации ничего не имею ;)
А что, ардуинские модули разрешено только к атмегам подключать?!
Просто тема-то началась именно с того чтобы на Ардуине тестить, а потом переводить на нормальный язык. Ну и подгонять под задачу, очевидно.

"на Ардуине тестить, а потом переводить на нормальный язык."


Двойная работа.

Не вижу проблемы, если первая часть этой двойной работы занимает 10 минут на загрузку готового кода от производителя и подключение по его схеме.
Уж точно это быстрее и проще, чем методом тыка определять какие команды из даташита нужны для инициализации, а какие для экзотического случая. А потом обнаружить что модуль бракованный.
Немного улыбает, когда мэтры пренебрежительно так «фуу… ардуино головного мозга… устаревшее 10 лет назад… только для школьников..»… И тут внезапно оказывается, что ардуиновские ногодрыги это не только актуально, но и аналогов им в настоящих микроконтроллерах еще не придумано :)
Вы имеете в виду ситуацию, когда на всех контроллерах (включая Атмеги) существуют более эффективные способы решения конкретной задачи? Так обычно универсальное решение и проигрывает специализированным по эффективности.
Разработчики Ардуины ориентировались на простоту и универсальность. Поэтому их система (плата и язык) хороша для начального тестирования, но плоха для серьезного использования.
Тут бы ещё увидеть разницу между начальным тестированием и серьезным использованием ;) На примере этого же дисплея хотя бы ;) КМК оно либо работает правильно, либо нет.
Не понял что вы хотите сказать.
Разница между демо-кодом от производителя с рисованием его логотипа и реальным использованием с выводом осмысленного текста?
Или замена попиксельного вывода на DMA? Ну, тот же ili9341 у меня разгонялся до >10 кадров в секунду параллельно с расчетом трехмерки. Ардуинская версия такое не потянет точно.
А что общего между ардуиновским кодом с попиксельным выводом и вашим, с DMA? Вы действительно сначала написали демо-код для Arduino, а потом переписали для более быстрого контроллера?
Нет, конечно. Я взял готовый ардуинский код и переписал под свою задачу. Именно тот алгоритм использования Ардуины, с которого эта ветка началась.
А чем Вас не устраивает раздел Libraries на официальном сайте?
Всем устраивает.
Тогда зачем нужны статьи такого типа, коих множество в сети?
По мне, лучше прочитать про использование какой-то библиотеки от того, кто реально с ней поработал.
Может у него грабли какие-то вылезли, может он опишет нюансы.
Т.е. лучше «один раз увидеть».

Уровень хабра всетаки казался мне несколько выше.

Andrykor

Приглашён

15 января 2019 в 18:11 по приглашению пользователя Andrykor


Пригласил самого себя. Вот это уровень! :D

И правда мощ! Ну да это мелочи, другое плохо почему бы не сделать хоть компиляцию по экранам ну хоть чтото полезное написать… Куда катимся в эпоху "контентопроизводства".

Раз уж статья для новичков, то почему бы не сделать с переходником I2C? Питание, земля, пины А4 и А5, всё, зачем этот бред с заниманием половины портов ардуины?

НЛО прилетело и опубликовало эту надпись здесь
это всё потому что русофобы разрабы. :-)
Причем тут русофобия? В дисплее стандартная ASCII-таблица символов, в которой изначально нет кириллицы.
НЛО прилетело и опубликовало эту надпись здесь
жаль только что иногда даташиты пишут инопланетяне для инопланетян. Вроде бы все команды разжеваны, а как их стыковать непонятно. Взять хоть инициализацию lil9341 или e-ink'ов.
НЛО прилетело и опубликовало эту надпись здесь

Я даже специально пришёл посмотреть дату статьи. Но нет, в 2021 году писать по теме, которая развжевана во всем интернете гораздо лучше, чем у автора… это что-то сверх понимания. Кстати, эти дисплеи тянут за собой забавный легаси со времен процессоров x51 — по сути они должны всей шиной цепляться на шину общения МК с периферией и лишь вопрос выбора устройства решается иначе. Автору советую раскуривать схемы кассовых аппаратов всяких середины 2000х, весьма познавательно.

А можно ещё пояснить, зачем одновременно макетка беспаечная и мгтф? Если это просто пример на потестить, не проще было запаять в индикатор гребёнку из штырей, воткнуть ее в макетку, ну а дальше проводами со штырьками соединять с ардуиной? А ещё проще запаять не гребёнку, а ответную часть (гнезда в ряд, типа PBS) и прямо их с ардуиной проводками?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории