Нет жки-драйвера – есть калькулятор!

Содержание

Об использовании драйверa ЖКИ CP2401

Один из вопросов, возникающих при проектировании устройств с батарейным питанием — это какой использовать индикатор. Знакосинтезирующие и графические ЖКИ наиболее универсальны в плане отображения различных символов. Однако, их контроллеры потребляют слишком много энергии, что в ряде случаев может быть неприемлимо в условиях длительной непрерывной работы прибора. Голые сегментные индикаторы (стекляшки) наиболее привлекательны в плане энергопотребления и могут управляться непосредственно от МК, особенно если в нем имеется контроллер ЖКИ, или от специализированных микросхем драйверов. К сожалению, распространенные 7-сегментные индикаторы не позволяют нормально отобразить большинство букв. Вот тут-то на помощь и приходят 14-сегментные ЖКИ. На них помимо цифр хорошо отображаются все буквы латинского алфавита и множество других символов.

При использовании маловыводного МК в системе для управления ЖКИ нужен контроллер. Раньше я для этого использовал микросхемы серии PCF85хх, но теперь захотелось поробовать более новую разработку фирмы Silicon Laboratories – драйверы ЖКИ CP240x. По заявлению фирмы у них рекордное потребление среди подобных драйверов – типично 2.3 мкА при неработающем интерфейсе. Микросхемы выпускаются в корпусах TQFP или QFN с числом выводов 32 или 48 и интерфейсом SPI или I2C в зависимости от модели. Я приобрел 48-выводную CP2401 в корпусе TQFP и интерфейсом I2C. Фирма снабдила микросхемы богатым функционалом. Помимо основной цели – управление ЖКИ, она еще одновременно может работать как расширитель портов ввода/вывода с обработкой прерываний при изменении состояния входов и имеется возможноть управлять нагрузочной способностью выходов, незадействованных под ЖКИ. Помимо памяти для данных ЖКИ в ней еще имеется RAM на 256 байт, RTC с гибкой системой управления и 2 таймера для нужд пользователя с системой прерываний. Если Вы когда-либо работали с МК фирмы серии C8051, то многие их блоки практически идентичны соответствующим блокам CP240x.

Блок управления ЖКИ микросхемы может тактироваться либо от часового кварца, либо от внешнего сигнала, либо от внутреннего RC генератора. При приеме данных тактирование производится от другого встроенного RC генератора на частоте до 20 мгц. В промежутках между приемом данных микросхема может работать в одном из 3 режимов сна с уменьшенным токопотреблением. Словом, все как у МК. ЖКИ, с которым я предполагал ее использовать (Varitronix VIM878) имеет 32 вывода сегментов и 4 общих для режима мультиплексирования 1:4. Мне понравилось расположение выводов микросхемы, хорошо сочетающееся с используемым ЖКИ. При монтаже микросхемы под ЖКИ на односторонней плате потребовались всего 2 проволочные перемычки, показанные синим цветом.

При этом выводы 1-16 от сегментов пришлись на верхние выводы ЖКИ, а выводы от сегментов 17-32 — на нижние. Более того, порядок этих выводов оказался такой, что для подготовки данных для ЖКИ в программе МК удалось обойтись всего одной таблицей. Для каждого отображаемого символа в этой таблице используются 2 байта, что является минимумом для такого дисплея. На плате я присоединил выводы /RST и /CLK на VDD, т.к. для ЖКИ задействован встроенный RC генератор. Таким образом, помимо линий интерфейса SCL и SDA в МК также идут выводы /INT для сигнализации готовности микросхемы и /PWR для отключения интерфейса и перевода ее в режим низкого токопотребления с работающим драйвером ЖКИ.

Типичное потребление в 2.3 мкА в таблице характеристик указано при работающим драйвере ЖКИ и повышающем преобразователе напряжения для его питания и с отключенным ЖКИ. Однако, не указано какому выходному напряжению преобразователя соответствует такое токопотребление. Кроме того, оказалось, что потребление очень сильно зависит от индицируемых символов. Интуиция подсказывала мне, что наибольшее потребление должно быть при засветке всех сегментов ЖКИ а наименьшее — при всех выключенных сегментах. Однако, тут она меня подвела и в обоих этих случаях потребление оказалось гораздо меньше, чем при индикации, скажем, единиц во всех разрядах. При питании микросхемы от 3В и напряжении преобразователя 3.2В минимальное токопотребление оказалось около 4 мкА с без ЖКИ на плате. Установка ЖКИ вносит примерно 1 мкА в токопотребление. Однако, максимальное потребление оказалось на уровне 12 мкА в зависимости от информации на ЖКИ. Режим наибольшего контраста для используемого ЖКИ оказался при bias ½.

Для индикации сколь-нибудь осмысленной информации на ЖКИ схема была дополнена сенсором температуры и влажности HIH-6131. Сенсор сидит на тех-же линиях интерфейса I2C, что и CP2401.

Компоненты C7, C8, R4, IC3, HG1 смонтированы на плате ЖКИ, показанной выше, R1, R2, C2, C3 – на плате сенсора, остальные детали на плате МК. На ней к МК еще подключен часовой кварц с конденсаторами 10 pF, но программа предусматривает работу и при его отсутствии. Для записи и чтения данных в программе МК задействован аппаратный I2C драйвер и каналы 1 и 2 DMA, соответственно. При программировании оказалось, что адреса регистров LCD0DIVH и LCD0DIVL в секции 12.4 ДШ CP240x перепутаны, однако, в Таблице 6.3 они указаны правильно – жаль, что я слишком поздно это обнаружил. Показания температуры и влажности на дисплее чередуются с периодом около 2 сек. В режиме сна МК потребляет около 8 мкА, так что среднее токопотребление всей схемы при индикации показанной информации составило порядка 20 мкА.

В архиве содержится исходник. ДШ можно найти здесь.

Делаем калькулятор Ардуино c клавиатурой и ЖК-дисплеем

В этом уроке мы создадим наш собственный калькулятор на основе Arduino. Значения будем отправлять через клавиатуру (4×4), а результат будем смотреть на ЖК-дисплее (матрица 16×2).

О проекте

Этот калькулятор сможет выполнять простые операции, такие как сложение, вычитание, умножение и деление с целыми числами. Но как только вы поймете концепцию, вы сможете реализовать даже научные функции с помощью встроенных функций Arduino.

В конце этого проекта вы узнаете, как использовать ЖК-дисплей 16×2 и клавиатуру с Arduino, а также как легко программировать их с помощью доступных библиотек. Вы также поймете, как запрограммировать Arduino для выполнения определенной задачи.

Шаг 1. Комплектующие

Начинаем как всегда с самых основных комплектующих для нашего Ардуино калькулятора:

  • Arduino Uno (любая версия будет работать)
  • ЖК-дисплей 16 × 2
  • Клавиатура 4 × 4
  • Батарея 9V
  • Макет и соединительные провода

Шаг 2. Принципиальная схема

Вы можете соединить все комплектующие калькулятора согласно схеме ниже:

Шаг 3. Код проекта

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

Полная программа Arduino для этого урока приведена выше. Код разбит на небольшие куски, которые мы объясним ниже. Как было сказано ранее, мы собираемся связать ЖК-дисплей и клавиатуру с Arduino, используя библиотеки. Итак, сначала добавляем их в нашу Arduino IDE.

Библиотека для LCD уже включена в ваш Arduino по умолчанию, поэтому нам не ней об этом беспокоиться, но её можно скачать по этой ссылке.

Чтобы скачать библиотеку клавиатуры – перейдите на Github. Вы получите ZIP-файл, затем добавите эту библиотеку в Arduino так:

Sketch -> Включить библиотеку -> Добавить .ZIP-файл

Укажете местоположение для этого загруженного файла. После того, как все готово, вы готовы к программированию.

Несмотря на то, что мы использовали библиотеку для использования клавиатуры, мы должны упомянуть несколько деталей о самой клавиатуре для Arduino. Переменные ROWS и COLS сообщают, сколько строк и столбцов имеет наша клавиатура, а раскладка клавиатуры показывает порядок, в котором присутствуют клавиши на клавиатуре. Клавиатура, которую мы используем в этом уроке, выглядит так, как показано выше. Мы также в коде упоминаем к каким контактам подключена клавиатура с помощью массива rowPins и colPins.

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

Точно так же мы должны обозначить к каким выводам Arduino подключен ЖК-дисплей. Согласно нашей принципиальной схеме всё определяется таким образом:

Внутри функции setup() мы просто отображаем имя проекта, а затем переходим к циклу loop, где лежит основной проект.

По сути, мы должны проверить, печатается ли что-нибудь на клавиатуре, если мы что-то набрали. Мы должны распознать то, что набирается и затем преобразовать это в переменную, а когда нажата «=», мы должны вычислить результат и, наконец, отобразить его на ЖК-дисплее. Это именно то, что делается внутри функции цикла, как показано ниже:

Читайте также:  Сдвиговый регистр 74hc595

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

Шаг 4. Работа калькулятора

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

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

Можно использовать маркер, чтобы подписать какие на самом деле действия выполняет каждая кнопка. После этого вы можете начать пользоваться калькулятором. Введите число и оно появится во второй строке, нажмите операнд и введите своё второе число, наконец нажмите клавишу «#», чтобы получить результат. Вы также можете попробовать создать этот калькулятор на основе сенсорного экрана Arduino, но это уже задача на будущее.

Как устроен и работает калькулятор

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

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

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

Это калькулятор CASIO HS-8LU. Они примерно все работают одинаково. По большому счету, в простых моделях ничего не меняется уже лет тридцать.

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

В данной модели плата сделана в виде пленки с нанесенными на нее проводниками. Питание – от солнечной батареи. Над солнечной батареей расположен жидкокристаллический индикатор.
На задней крышке корпуса расположены токопроводящие контакты. При нажатии на кнопку она прижимает пленку к задней крышке и происходит электрический контакт. Часто токопроводящий контакт наносят на обратную сторону кнопки. В том случае сама кнопка прижимается к плате для создания контакта.

С обратной стороны под солнечной батареей расположен чип микропроцессора. Он управляет работой калькулятора.

Как работает индикатор на жидких кристаллах.

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

Это картиночка для одного пиксела цветного ЖКИ, но в монохромных там то же самое, только нет светофильтра.

Спереди и сзади жидких кристаллов ставят так называемый поляризационный фильтр. Он обычный свет преобразует в поляризованный (например, образно говоря, в “вертикальный”). Если напряжение не приложено, то “вертикально” поляризованный свет проходит через жидкие кристаллы, поворачивает плоскость поляризации, отражается от задней поверхности и идет обратно. Мы видим прозрачный экран. На стекле индикатора спереди нарисованы прозрачные токопроводящие линии в форме сегментов цифр, точек или других символов. Сзади также есть токопроводящая область. Когда возникает напряжение между токопроводящими проводниками (спереди и сзади), то между ними жидкие кристаллы поворачиваются и меняют свою плоскость поляризации так, что через задний поляризационный фильтр уже не проходят. Оттого на том сегменте, где есть напряжение между передней и задней поверхностью стекла, возникает невидимая область – сегмент “светится”.

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

На самом деле ориентация поляризации не “вертикальная” и “горизонтальная”, а “наклоненная” под углом в 45 градусов “вправо” или “влево”. Если взять светофильтр и перевернуть вверх ногами, то поляризация будет не “вправо”, а “влево”. И изначально он будет не пропускать свет, а задерживать.

Для экономии количества один проводник отображает и подведен не к одному сегменту, а к нескольким сразу. Чтобы они не зажигались сразу все, с задней стороны стекла рисуют не один общий проводник, а тоже несколько. Получается, что спереди контакты подведены к нескольким сегментами по вертикали, а с задней стороны по горизонтали. На схеме ниже показана схема индикатора.
Там есть еще такая хитрость, что напряжение нужно прикладывать не постоянное, а переменное (прямоугольные импульсы частотой 20-40 Гц). Иначе деградирует индикатор.

Для простых индикаторов с одним общим проводником импульсы совпадают по фазе, когда не надо отображать сегмент (спереди и сзади разность потенциалов будет одинаковой) и не совпадают по фазе, когда надо отобразить (тогда спереди будет “0”, и сзади “1”, а через некоторое время полярность поменяется, и будет спереди “1”, а сзади – “0”, и так далее). В тех индикаторах на общий проводник подается меандр (просто частота), а на отображаемые сегменты – совпадение логического уровня с общим (не горит) и не совпадение (горит).

В индикаторе нашего калькулятора используется три общих проводника. Там все сложнее. Простыми логическими уровнями не обойдешься. Чтобы обеспечить переменное напряжение и отсутствие постоянной составляющей используются уровни напряжений в 1/3 и 2/3 от максимума. В итоге форма импульсов будет ступенчатой. На схеме ниже показаны эпюры таких импульсов.

А теперь самое главное и самое интересное – микросхема процессора.

Это фотографии кристаллов отечественных калькуляторов, сделанных на микросхемах К145ИП7 (слева) и К145ИП11 (справа). Фотографии взяты с интересного сайта “Радиокартинки”.

Микропроцессор калькулятора принципом работы очень мало отличается от обычного персонального компьютера с процессором, памятью, клавиатурой и видеокартой.
Если быстро посмотреть на фото кристаллов, то можно примерно поделить на три области: область постоянного запоминающего устройства (ПЗУ) с программной (“прошивкой”), область оперативного запоминающего устройства (ОЗУ), где хранятся регистры памяти калькулятора, и остальные цепи процессора, которые включают арифметическо-логическое устройство (АЛУ), драйвер индикатора, драйвер клавиатуры, преобразователи напряжения и другие вспомогательные цепи.

Это структурная схема процессора калькулятора МК-62.
В верхней части мы видим, что есть блоки:
– генератор опорной частоты (ГОЧ), который задает частоту, с которой регенерируется изображение на индикаторе;
– схема удвоения напряжения, умножающая напряжение солнечное батареи на два, чтобы хватило для индикатора;
– генератор, формирователь импульсов общих электродов и регистр-формирователь сегментного кода постоянно выводят заданные для вывода сегменты на индикатор. Там есть специальный регистр памяти, куда микропроцессор записывает информацию, какие надо отображать сегменты, а какие не надо. После этого процессор не отвлекается на отображение, и эти блоки выводят все сами;
– ОЗУ с регистрами данных и ПЗУ с прошивкой;
– и узел с процессором, состоящим из АЛУ с обвязкой. Счетчик адреса АЛУ выбирает очередное слово программы из ПЗУ. Разрядность этого слова может быть разной в разных калькуляторах. Отдельные биты в слове определяют работу АЛУ: например, сложить два 4-х битных числа из регистров, или считать из ОЗУ цифру, или сравнить два числа, или сдвинуть на один разряд и т. д.

Как работает микропроцессор.

Сначала срабатывает сброс по питанию. При подаче электричества специальный узел заставляет программу работать с начального адреса. Команда за командой извлекается из ПЗУ и исполняется. Вначале происходит обнуление регистров, формирование числа “0.”, сброс всяких признаков переполнения, операций и прочее. После сброса программа ожидает события от клавиатуры (нажатие кнопки).
Когда нажата кнопка, то процессор через некоторое время еще раз опрашивает клавиатуру, чтобы подавить дребезг кнопок (когда из-за плохого контакта может произойти одновременно несколько нажатий).
А дальше, в зависимости от предыдущих состояний, он по программе определяет, что с этим нажатием делать. Например, если идет ввод числа и введена цифра, то продолжить ввод. Если нажата кнопка операции, то выполнить операцию.
Сам алгоритм и логика выполнения операций целиком лежит на ПЗУ и программистах, которые писали прошивки.
Что интересно, все простые операции выполняются так, как их учат в школе.
– сложение и вычитание. В столбик. Выравниваются порядки двух введенных чисел и происходит сложение или вычитание.
– умножение и деление. Так же в столбик. Разряд за разрядом. Сначала последовательным сложением умножают на младшую цифру множителя, затем вторую и так далее до старшей. Деление – последовательным вычитанием.
После выполнения операции отдельная подпрограмма нормализует результат: отбрасывает незначащие нули и сдвигает его вправо.
Если в калькуляторе есть тригонометрические функции, то они также выполняются, как их запрограммировал программист. Есть разные способы вычисления элементарных функций: разложение в ряд Тейлора или по методу “Cordic”.

Вот примерно так работает калькулятор.

Я вам дам ссылку на несколько сайтов. В одном вы можете еще прочитать про то, как они работают: http://datamath.org/Story/Intel.htm#The.

А еще две ссылки – очень познавательный интерактивный сайт, где обратным реверсом считали прошивку и сделали симулятор. Там можно “прогнать” работу процессора реального калькулятора.
http://files.righto.com/calculator/TI_calculator_simulator.html и
http://files.righto.com/calculator/sinclair_scientific_simulator.html.

А также заходите в мой музей, где я собираю советскую цифровую электронику: http://www.leningrad.su/museum/

Вот, наверно, и все. Надеюсь, я вас не сильно утомил. 🙂

Калькулятор блока питания

При сборке персонального компьютера или майнинг фермы (рига) необходимо правильно подобрать блок питания. При этом возникает вопрос ” Сколько мощности нужно моей системе? “. Для этого нужно точно рассчитать мощность БП. Чтобы сделать это быстро, можно использовать удобный калькулятор мощности блока питания .

Читайте также:  Использование usb-otg в режиме msc_host

Мы рекомендуем делать запас по мощности на 20-30% больше, не менее 100-150W. А в случае, если вы планируете дальнейший апгрейд компьютера, то сразу покупать блок питания большей мощности. Также стоит учитывать подключение периферийных устройств во время эксплуатации ПК, различной оргтехники (если планируется), телефонов, плееров и пр. внешних устройств.

Онлайн калькулятор мощности блока питания

Калькулятор блока питания (Power Supply Calculator) в онлайн режиме предлагают несколько ресурсов , мы приведем основные из них. Также для расчета мощности компьютерного блока питания есть специальная программа KSA Power Supply Calculator WorkStation, которая работает по тому же принципу, как и онлайн-калькуляторы.

Как пользоваться Online-калькуляторами

Как подобрать блок питания для компьютера с помощью online калькулятора? Для этого нужно ввести данные о конфигурации ПК (или майнинг фермы). Укажите в соответствующих полях тип материнской платы (Desktop, Server или Mini-ITX), сокет и модель процессора, видеокарты, количество и тип модулей оперативной памяти, жестких дисков и др. комплектующих.

Вы можете рассчитать мощность любого блока питания , независимо от производителя и модели: AeroCool, Chieftec, Cooler Master, Corsair, COUGAR, Deepcool, ExeGate, FSP, Sea Sonic, Thermaltake или Zalman .

Список калькуляторов:

Калькулятор мощности блока питания MSI

Чтобы произвести расчет мощности блока питания на сайте MSI , перейдите по ссылке:

Калькулятор блока питания Cooler Master

Чтобы рассчитать мощность блока питания на сайте Cooler Master , перейдите по ссылке:

Калькулятор блока питания на Outervision.com

Обратите внимание, что данный калькулятор имеет два режима использования: Basic и более расширенный режим Expert .

Чтобы сделать рассчет мощности блока питания компьютера на сайте OuterVision.com , пройдите по ссылке:

Калькулятор блока питания от Enermax

Воспользоваться онлайн калькулятором от Enermax можно по ссылке:

Расчет блока питания от Be Quiet!

Чтобы произвести расчет мощности блока питания на сайте Be Quiet! , перейдите по ссылке:

Программа KSA Power Supply Calculator WorkStation

KSA Power Supply Calculator WorkStation – утилита для расчета мощности блока питания настольного компьютера. Аналогично онлайн-калькуляторам, в этой программе требуется ввести данные о комплектующих системы и произвести расчет необходимой мощности БП, нажав кнопку “Подсчитать”. Программа не требует установки.

Скачать KSA Power Supply Calculator WorkStation можно по ссылке:

► Если Вам нужна помощь в выборе блока питания для компьютера или требуется срочный ремонт БП, обращайтесь к нам!

Задать вопрос или сделать заявку на ремонт можно по телефону:

☎ 8 (495) 902-72-01 ; ☎ 8 (915) 320-33-97

Заказать обратный звонок:

Система комментариев DISQUS была отключена, старые комментарии скопированы простым текстом. В дальнейшем, будет установлена др. система комментирования.

• comprayexpress.ru Модератор • 2 месяца назад:

Добавили онлайн-калькулятор от Be Quiet!

• Stepan Novoselov • год назад:

Добавил в закладки) все выдают примерно одинаковые результаты, где-то с запасом , где-то нет.

• Ane4kasunny • год назад:

Отличные онлайн калькуляторы. Я предпочтение отдала cooler master.

• Sergey Vlodimirovich Petrov • год назад:

Вовремя попался калькулятор. Больше понравился, который на сайте Outervision.com

ПРЕИМУЩЕСТВА РЕМОНТА В СЦ КОМПРАЙЭКСПРЕСС

Выезд мастера или курьера в течение 1 часа

Доставка до сервисного центра

Диагностика на новейшем оборудовании

Официальная гарантия на ремонт

Добавьте страницу в Закладки “ctrl + D”

★ Москва, ул. Краснобогатырская, 13

Компьютерная Помощь ВАО, ЦАО, СВАО, ЮВАО, ЮАО, ЮЗАО, ЗАО, СЗАО, ЗелАО.

Ремонт Компьютеров, ноутбуков в Балашихе, Мытищи, Перово, Новогиреево, Химки, Одинцово, Марьино, Солнцево, Домодедово, Новопеределкино, Узловая, Каширская, Студенченская, Кожухово, Щелковская, Измайлово, Люблино, Сергиев Посад, Багратионовская, Сходненская, Тушино, Аннино, Строгино, Гольяново, Отрадное, Проспект Вернадского, Павловский Посад, Павшинская Пойма, Зуево, Кунцевская, Реутове, Фрязино, Фили, Пролетарская, Алтуфьево, Войковская, ВДНХ, Переделкино, Ленинский Проспект, Фрунзенская, Преображенская Площадь, Сокольники, Соколиная Гора, Чертаново, Академическая, Авиамоторная, Жулебино, Коломенская, Щербинка, Юго Западная, Свиблово, Водный Стадион, Черкизовская, Кузьминки, Динамо, Крылатское, Красногвардейская, Сокол, Университет, Рязанский Проспект, Филевский Парк, Аэропорт, Бауманская, Бабушкинская, Красносельская, Котельники, Раменки, Теплый Стан, Ховрино, Царицыно, Щелково, Щекино, 1905 года, Беговая, Бирюлево, Вешняки, Дегунино, Звездная, Матвеевкая, Кантемировская, Пражская, Преображенское, Черемушки, Шоссе Энтузиастов и др. станции метро, районы Москвы. Выезд компьютерщика в любой район Москвы! Вы можете получить услуги, даже не выходя из дома!

Сервисный центр КомпрайЭкспресс.ру © 2010-2020 Все права защищены

Копирование материалов сайта разрешено только при указании активной, прямой ссылки на сайт ComprayExpress.ru.

Вся информация на этом сайте, включая цены, носит характер исключительно информационный и ни при каких обстоятельствах не является публичной офертой, определяемой положениями Статьи 437 (2) Гражданского кодекса РФ.

Подключение дисплея LCD 1602 к arduino по i2c / IIC

LCD дисплей – частый гость в проектах ардуино. Но в сложных схемах у нас может возникнуть проблема недостатка портов Arduino из-за необходимости подключить экран, у которого очень очень много контактов. Выходом в этой ситуации может стать I2C /IIC переходник, который подключает практически стандартный для Arduino экран 1602 к платам Uno, Nano или Mega всего лишь при помощи 4 пинов. В этой статье мы посмотрим, как можно подключить LCD экран с интерфейсом I2C, какие можно использовать библиотеки, напишем короткий скетч-пример и разберем типовые ошибки.

ЖК дисплей Arduino LCD 1602

Жидкокристаллический дисплей (Liquid Crystal Display) LCD 1602 является хорошим выбором для вывода строк символов в различных проектах. Он стоит недорого, есть различные модификации с разными цветами подсветки, вы можете легко скачать готовые библиотеки для скетчей Ардуино. Но самым главным недостатком этого экрана является тот факт, что дисплей имеет 16 цифровых выводов, из которых обязательными являются минимум 6. Поэтому использование этого LCD экрана без i2c добавляет серьезные ограничения для плат Arduino Uno или Nano. Если контактов не хватает, то вам придется покупать плату Arduino Mega или же сэкономить контакты, в том числе за счет подключения дисплея через i2c.

Краткое описание пинов LCD 1602

Давайте посмотрим на выводы LCD1602 повнимательней:

Каждый из выводов имеет свое назначение:

  1. Земля GND;
  2. Питание 5 В;
  3. Установка контрастности монитора;
  4. Команда, данные;
  5. Записывание и чтение данных;
  6. Enable;

7-14. Линии данных;

Технические характеристики дисплея:

  • Символьный тип отображения, есть возможность загрузки символов;
  • Светодиодная подсветка;
  • Контроллер HD44780;
  • Напряжение питания 5В;
  • Формат 16х2 символов;
  • Диапазон рабочих температур от -20С до +70С, диапазон температур хранения от -30С до +80 С;
  • Угол обзора 180 градусов.

Схема подключения LCD к плате Ардуино без i2C

Стандартная схема присоединения монитора напрямую к микроконтроллеру Ардуино без I2C выглядит следующим образом.

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

Где купить LCD экраны и шилды для ардуино

LCD экран 1602 (и вариант 2004) довольно популярен, поэтому вы без проблем сможете найти его как в отечественных интернет-магазинах, так и на зарубежных площадках. Приведем несколько ссылок на наиболее доступные варианты:

Описание протокола I2C

Прежде чем обсуждать подключение дисплея к ардуино через i2c-переходник, давайте вкратце поговорим о самом протоколе i2C.

I2C / IIC(Inter-Integrated Circuit) – это протокол, изначально создававшийся для связи интегральных микросхем внутри электронного устройства. Разработка принадлежит фирме Philips. В основе i2c протокола является использование 8-битной шины, которая нужна для связи блоков в управляющей электронике, и системе адресации, благодаря которой можно общаться по одним и тем же проводам с несколькими устройствами. Мы просто передаем данные то одному, то другому устройству, добавляя к пакетам данных идентификатор нужного элемента.

Самая простая схема I2C может содержать одно ведущее устройство (чаще всего это микроконтроллер Ардуино) и несколько ведомых (например, дисплей LCD). Каждое устройство имеет адрес в диапазоне от 7 до 127. Двух устройств с одинаковым адресом в одной схеме быть не должно.

Плата Arduino поддерживает i2c на аппаратном уровне. Вы можете использовать пины A4 и A5 для подключения устройств по данному протоколу.

В работе I2C можно выделить несколько преимуществ:

  • Для работы требуется всего 2 линии – SDA (линия данных) и SCL (линия синхронизации).
  • Подключение большого количества ведущих приборов.
  • Уменьшение времени разработки.
  • Для управления всем набором устройств требуется только один микроконтроллер.
  • Возможное число подключаемых микросхем к одной шине ограничивается только предельной емкостью.
  • Высокая степень сохранности данных из-за специального фильтра подавляющего всплески, встроенного в схемы.
  • Простая процедура диагностики возникающих сбоев, быстрая отладка неисправностей.
  • Шина уже интегрирована в саму Arduino, поэтому не нужно разрабатывать дополнительно шинный интерфейс.
  • Существует емкостное ограничение на линии – 400 пФ.
  • Трудное программирование контроллера I2C, если на шине имеется несколько различных устройств.
  • При большом количестве устройств возникает трудности локализации сбоя, если одно из них ошибочно устанавливает состояние низкого уровня.

Модуль i2c для LCD 1602 Arduino

Самый быстрый и удобный способ использования i2c дисплея в ардуино – это покупка готового экрана со встроенной поддержкой протокола. Но таких экранов не очень много истоят они не дешево. А вот разнообразных стандартных экранов выпущено уже огромное количество. Поэтому самым доступным и популярным сегодня вариантом является покупка и использование отдельного I2C модуля – переходника, который выглядит вот так:

С одной стороны модуля мы видим выводы i2c – земля, питание и 2 для передачи данных. С другой переходника видим разъемы внешнего питания. И, естественно, на плате есть множество ножек, с помощью которых модуль припаивается к стандартным выводам экрана.

Читайте также:  Основы расчёта заземления

Для подключения к плате ардуино используются i2c выходы. Если нужно, подключаем внешнее питание для подстветки. С помощью встроенного подстроечного резистора мы можем настроить настраиваемые значения контрастности J

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

Подключение ЖК экрана к Ардуино по I2C

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

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

Жидкокристаллический монитор с поддержкой i2c подключается к плате при помощи четырех проводов – два провода для данных, два провода для питания.

  • Вывод GND подключается к GND на плате.
  • Вывод VCC – на 5V.
  • SCL подключается к пину A5.
  • SDA подключается к пину A.

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

Библиотеки для работы с i2c LCD дисплеем

Для взаимодействие Arduino c LCD 1602 по шине I2C вам потребуются как минимум две библиотеки:

  • Библиотека Wire.h для работы с I2C уже имеется в стандартной программе Arduino IDE.
  • Библиотека LiquidCrystal_I2C.h, которая включает в себя большое разнообразие команд для управления монитором по шине I2C и позволяет сделать скетч проще и короче. Нужно дополнительно установить библиотеку После подключения дисплея нужно дополнительно установить библиотеку LiquidCrystal_I2C.h

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

Описание функций и методов библиотеки LiquidCrystal_I2C:

  • home() и clear() – первая функция позволяет вернуть курсор в начало экрана, вторая тоже, но при этом удаляет все, что было на мониторе до этого.
  • write(ch) – позволяет вывести одиночный символ ch на экран.
  • cursor() и noCursor() – показывает/скрывает курсор на экране.
  • blink() и noBlink() – курсор мигает/не мигает (если до этого было включено его отображение).
  • display() и noDisplay() – позволяет подключить/отключить дисплей.
  • scrollDisplayLeft() и scrollDisplayRight() – прокручивает экран на один знак влево/вправо.
  • autoscroll() и noAutoscroll() – позволяет включить/выключить режим автопрокручивания. В этом режиме каждый новый символ записывается в одном и том же месте, вытесняя ранее написанное на экране.
  • leftToRight() и rightToLeft() – Установка направление выводимого текста – слева направо или справа налево.
  • createChar(ch, bitmap) – создает символ с кодом ch (0 – 7), используя массив битовых масок bitmap для создания черных и белых точек.

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

В некоторых случаях при использовании указанной библиотеки с устройствами, оснащенными контроллерами PCF8574 могут возникать ошибки. В этом случае в качестве альтернативы можно предложить библиотеку LiquidCrystal_PCF8574.h. Она расширяет LiquidCrystal_I2C, поэтому проблем с ее использованием быть не должно.

Скачать библиотеку можно на нашем сайте. Библиотека также встроена в последние версии Arduino IDE.

Проблемы подключения i2c lcd дисплея

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

Во-первых, можно увеличить или уменьшить контрастность монитора. Часто символы просто не видны из-за режима контрастности и подсветки.

Если это не помогло, то проверьте правильность подключения контактов, подключено ли питание подсветки. Если вы использовали отдельный i2c переходник, то проверьте еще раз качество пайки контактов.

Другой часто встречающейся причиной отсутствия текста на экране может стать неправильный i2c адрес. Попробуйте сперва поменять в скетче адрес устройства с 0x27 0x20 или на 0x3F. У разных производителей могут быть зашиты разные адреса по умолчанию. Если и это не помогло, можете запустить скетч i2c сканера, который просматривает все подключенные устройства и определяет их адрес методом перебора. Пример скетча i2c сканера.

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

Заключение

В этой статье мы рассмотрели основные вопросы использования LCD экрана в сложных проектах ардуино, когда нам нужно экономить свободные пины на плате. Простой и недорогой переходник i2c позволит подключить LCD экран 1602, занимая всего 2 аналоговых пина. Во многих ситуациях это может быть очень важным. Плата за удобство – необходимость в использовании дополнительного модуля – конвертера и библиотеки. На наш взгляд, совсем не высокая цена за удобство и мы крайне рекомендуем использовать эту возможность в проектах.

Нет жки-драйвера – есть калькулятор!

Программа “Rectifier 1.0” предназначена для расчета мостового выпрямителя по заданным пользователем параметрам. Программа не только расчитывает необходимые для конструирования выпрямителя характеристики, но также предлагает пользователю варианты выпрямительных диодов и номинал конденсатора фильтра.
Для работы программы необходимо, чтобы с ней в одном каталоге (папке) находился файл “Diode_Base.diod”, содержащий типы и характеристики выпрямительных диодов, иначе программа выдаст сообщение об ошибке и работать не будет.

Расчёты для микросхем:
* LM317 (LM150, LM350) регулятор напряжения

* LH317 (LM150, LM350) регулятор тока

* L200 регулятор тока и напряжения
* 78xx регулятор тока и напряжения

Программа для расчета магнитной проницаемости материала феритового сердечника распространенных типов.
Автор: Юрий Илитич.
Статья http://radio-hobby.org/

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

GRAND v1.2 калькулятор

Программа для проведения электротехнических расчетов

Induct – программа для расчета различных катушек колебательного контура

Rectifier 1.0 – расчет мостового выпрямителя.

RadioAmCalc 1.20 Free Домашняя страничка автора

“Калькулятор Радиолюбителя” поможет провести расчеты при проектировании любительских радиоэлектронных устройств. Программа бесплатна и свободна для некоммерческого распространения.
С помощью Калькулятора можно:

  • рассчитать трансформатор при различных исходных данных
    (в большинстве программ невозможно, например, поменять магнитную проницаемость сердечника)
  • рассчитать однослойные и многослойные катушки индуктивности
  • определить сопротивление резистора по цветным полоскам
  • определить сопротивление SMD-резистора
  • определить емкость конденсатора по цветным полоскам
  • рассчитать пассивный LC и RC фильтры нижних и верхних частот
  • провести электротехнические расчеты по формулам

Best RadioCalc v.1.2

Радиолюбительский калькулятор, позволяет быстро сделать большинство самих нужных радиолюбительских расчетов. Основные возможности программы: – все расчеты по закону Ома при минимуме двох известных значений (сила тока I, напряжение U, сопротивление R, мощность P); – подбор номиналов резисторов, конденсаторов и катушек индуктивности (до 10-ти резисторов, конденсаторов или катушек индуктивности в соединении) для параллельного и последовательного соединения. Вычисляет Rобщ (Собщ, Lобщ) на основе R1-R10 (С1-С10, L1-L10) или подбирает нужный R1 (С1, L1) для указанного Rобщ (Собщ, Lобщ) с учетом резисторов R2-R10 (или конденсаторов С2-С10, катушек индуктивности L2-L10) при необходимости для любого типа соединения как последовательного так и параллельного; – расчет времени работы аккумулятора и реверсивные расчеты любого из значений; – расчет коэффициента усиления и силы тока транзистора (реверсивные расчеты тока базы, тока коллектора, коэффициента усиления); – расчет емкостного сопротивления конденсатора в цепи переменного тока (реверсивные расчеты частоти тока, емкости конденсатора, емкостного сопротивления); – реверсивные расчеты индуктивного сопротивления, полного сопротивления и добротности катушки индуктивности в цепи переменного тока. Вычисления делаются автоматически при вводе номиналов с возможностью отключения автоматического расчета при вводе. Возможен переход в иной диапазон расчета. Имеется возможность сохранения всех значений в текстовый файл. При необходимости, возможно включить параметр “Поверх всех окон”. В версии 1.2 добавилось несколько исправлений у улучшений в работе калькулятора, добавлена автокоррекция вывода результата при значениях меньше нуля, а также появилась возможность вручную изменять точность вывода результата методом округления до нужного разряда вплоть до 16 знаков в дробной части.

Поддерживается определение:
Резисторы
Конденсаторы
Транзисторы
Диоды
Стабилитроны
Варикапы
Индуктивности
Чип компоненты

Вывод характеристик:
программа обладает собственной базой данной по характеристикам, и после определения типа элемента (транзистор, диод . ) выводится его характеристика.

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

В дополнение – справочник может работать и в режиме вывода габаритных размеров корпусов (например ТО-220 . ) и в режиме вывода функциональных схем (база микросхем).

Справочная система:
программа снабжена собственной справочной системой, которая содержит описание программы, радиоэлементов, обучающие примеры и т.д.

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

Дополнительные возможности:
– программа снабжена сменными панелями инструментов (для каждого типа элемента остаются только его метки, что не загромождает интерфейс и позволяет быстро ориентироваться в программе)
– имеется модуль “Калькулятор” содержащий серию электротехнических расчетов;
– если вы разработчик воспользуйтесь модулем “Объединить базы”;

Программа бесплатна и свободна для использования и распространения. В последней версии Coil32 v7.1 доступны:

  • Расчет числа витков катушки при заданной индуктивности
  • Расчет индуктивности катушки для заданного числа витков
  • Расчет добротности для однослойных катушек
  • Расчет индуктивности многослойной катушки по ее омическому сопротивлению
  • Расчет длины провода, необходимого для намотки многослойной катушки
  • Расчет длины провода, необходимого для намотки катушки на ферритовом кольце

Источник http://coil32.narod.ru

Скачать >>>>>

Источникhttp://aes.at.ua


Источник http://aes.at.ua

Анализатор антенн MMANA – русская версия

Одна из лучших программ для моделирования антенн. Это единственный анализатор антенн на русском языке. Оригинальная японская версия написана Makoto Mori JE3HHT в 2000 году. Русская версия и интерфейсы сделаны Игорем Гончаренко DL2KQ (он же EU1TT) в 2001-2002 годах.

Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector