воскресенье, 30 декабря 2018 г.

Тактирование Ардуино от внутреннего RC-генератора

Arduino ATmega328P тактирование от внутреннего RC-генератора

При написании публикации про ATtiny85 я обратил внимание на то, как реализовано изменение частоты микроконтроллера: достаточно выбрать нужное значение тактовой частоты в меню IDE Ардуино и затем выполнить команду "Записать загрузчик". А почему бы не сделать так же для Ардуино? Чтобы можно было простыми действиями настроить ее на тактирование либо от внешнего резонатора на 16МГц, либо от внутреннего RC-генератора на 8МГц. Кстати при тактировании от внутреннего генератора микроконтроллер можно извлечь из Ардуино, тем самым значительно снизить энергопотребление. В общем, тема весьма интересная, подробности под катом.

воскресенье, 16 декабря 2018 г.

Прошиваем загрузчик micronucleus в ATtiny85

Отладочная плата ATtiny85. Micronucleus
Обычно для программирования микроконтроллеров используют программаторы - устройства, которые работают напрямую с памятью микроконтроллера и размещают в ней программу. Так при знакомстве с ATtiny85 мы прошивали ее при помощи программатора, в роли которого выступала плата Ардуино Уно. Но при этом программирование самих плат Ардуино или Digispark, которая построена на том же ATtiny85, осуществляется без программатора. Это возможно благодаря записанному в них загрузчику, он принимает код новой программы по последовательному интерфейсу и размещает его в ПЗУ микроконтроллера. И сегодня я хочу рассказать о том, как записать загрузчик Micronucleus в ATtiny85.

суббота, 8 декабря 2018 г.

Что такое Digispark

Плата Digispark

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

четверг, 1 ноября 2018 г.

Знакомство с ATtiny85

ATtiny85
ATtiny85 - это 8-битный AVR микроконтроллер фирмы Atmel, представитель семейства tiny. Микроконтроллеры данного семейства, как следует из его названия, являются младшими в линейке AVR: у них меньшее число линий ввода-вывода, меньший объем памяти и ограниченный набор периферийных устройств по сравнению с микроконтроллерами mega/XMEGA. Но это окупается их меньшей стоимостью и малыми размерами. Кроме того tiny микроконтроллеры имеют ту же производительность, что и старшие микроконтроллеры семейства mega. Это делает их отличным выбором для создания устройств, не требующих широкого набора периферии, где размер и цена микроконтроллера имеют значение: tinyAVR находят применение в портативных навигаторах, плеерах, сотовых телефонах, спортивных гаджетах, бытовой технике, электронных игрушках, пультах дистанционного управления, интеллектуальных датчиках и во многих других устройствах. Но вернемся к ATtiny85 и ознакомимся с характеристиками данного микроконтроллера.

пятница, 12 октября 2018 г.

LiquidCrystal_I2C_Ext - библиотека для создания меню на Ардуино

Я обратил внимание, что тема создания меню на Ардуино и ЖК дисплее весьма популярна. И ей уже посвящена одна из моих публикаций. Но я понимаю, что для новичков адаптация моего скетча может показаться нетривиальной задачей. Поэтому я решил написать библиотеку для создания меню на Ардуино и ЖК дисплее с I2C управлением, которую было бы легко использовать даже начинающему ардуинщику.

среда, 10 октября 2018 г.

Прошивка USBasp

avrdude: warning: cannot set sck period, please check for usbasp firmware update

Если при использовании USBasp в логе avrdude у вас появляется сообщение
avrdude: warning: cannot set sck period, please check for usbasp firmware update, но при этом программатор исправно выполняет команды, то, скорее всего, проблема в устаревшей прошивке USBasp. В этой статье я по шагам расскажу, как обновить прошивку USBasp, используя Ардуино в качестве программатора.

четверг, 13 сентября 2018 г.

Программатор USBasp

Программатор USBasp
Сегодня речь пойдет о программаторе USBasp - популярном программаторе для микроконтроллеров фирмы Atmel серии AVR. Как заявляет его создатель на домашней странице проекта, USBasp работает на различных платформах (Windows, Linux, Mac OS X), не требует дополнительных компонентов и обеспечивает скорость программирования до 5 кбит/с. Кроме того его схема довольно проста и желающие могут собрать этот программатор самостоятельно. Либо можно заказать готовый на Aliexpress, как я и поступил. Обошелся он мне в $1.70 вместе с переходником на ICSP разъем.

воскресенье, 19 августа 2018 г.

Что такое Фьюзы. Чтение и запись фьюзов Ардуино

Что такое фьюзы
Сегодня я хочу рассказать о том, что такое фьюзы, за что они отвечают и как их можно прочитать и записать в Ардуино. Рекомендую также заглянуть в предыдущую публикацию, т.к. работа с фьюзами возможна только через программатор.

четверг, 19 июля 2018 г.

Arduino as ISP - программатор из Ардуино

Arduino as ISP - программатор из Ардуино

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

воскресенье, 24 июня 2018 г.

Генератор сигналов на AD9833

Генератор AD9833
AD9833 - это программируемый генератор сигналов с низким энергопотреблением. Позволяет генерировать сигналы с частотой до 12.5МГц синусоидальной, треугольной и прямоугольной формы. Программирование осуществляется с использованием трехпроводного интерфейса SPI и не составляет труда. Ниже приведены основные характеристики микросхемы:

суббота, 7 апреля 2018 г.

Пара слов о текстовых LCD дисплеях

LCD HD44780
Последнее время я довольно часто использую текстовый LCD дисплей в своих проектах. При этом всю информацию приходится выводить на английском, в принципе меня это не особо беспокоит. Одно время искал библиотеки типа LiquidCrystal_I2C_RUS (думаю, как и многие), но так ничего и не нашел. И недавно возникло у меня желание разобраться в работе дисплея, как в нем выводятся символы и, может быть, написать свою библиотеку для дисплеев с I2C интерфейсом, поддерживающую кириллицу.

понедельник, 2 апреля 2018 г.

Библиотека Low-Power

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

воскресенье, 25 февраля 2018 г.

Режимы энергосбережения Ардуино

Продолжаем тему минимизации энергопотребления Ардуино и теперь пора разобраться в режимах работы МК. Все AVR микроконтроллеры поддерживают различные режимы энергосбережения. Их описание можно найти в документации к МК в разделе Power Management and Sleep Modes. ATmega328P имеет 6 режимов:

Уменьшаем энергопотребление Ардуино

Данная тема весьма актуальна при разработке устройств, которые должны работать от автономного источника питания. Это могут быть беспроводные датчики, системы контроля и автоматизации, устройства для умного дома и многое другое. Как можно заставить их работать дольше без подзарядки аккумуляторов и замены батарей? Давайте разбираться.

суббота, 3 февраля 2018 г.

Что такое подтягивающий (стягивающий) резистор

Чтобы ответить на этот вопрос давайте посмотрим на следующую схему:
Мы бы хотели отслеживать нажатие кнопки для выполнения каких-то действий. Для этого мы подключили линию +5В через резистор и кнопку к цифровому выводу Ардуино, полагая, что при нажатии на кнопку ток потечет через нее и Ардуино считает на цифровом входе 2 сигнал высокого уровня. Соответственно, при размыкании контакта мы рассчитываем получить на входе сигнал низкого уровня. Так ли это? Проверим.

четверг, 4 января 2018 г.

Текстовое меню на Ардуино

Текстовое меню для Ардуино на ЖК дисплее и энкодере вращения

В данной публикации я хочу поделиться опытом создания текстового меню на Ардуино. Я буду использовать жидкокристаллический I2C дисплей 20x4 и энкодер вращения KY-040 в качестве элемента управления. О подключении энкодера к Ардуино и подавлении дребезга контактов было написано уже достаточно, с подключением дисплея вопросов тоже быть не должно. Поэтому сегодня я уделю внимание именно программной реализации.

среда, 3 января 2018 г.

Аналоговый мультиплексор/демультиплексор CD4051 - увеличиваем количество аналоговых выводов Ардуино

CD4051 pinout распиновка подключение к Ардуино
CD4051 - это 8 канальный аналоговый CMOS мультиплексор/демультиплексор. Если вам в вашем проекте не хватает аналоговых входов, то данная микросхема поможет решить эту проблему: используя 1 аналоговый и 3 цифровых входа можно получить 8 аналоговых входов.