При написании публикации про ATtiny85 я обратил внимание на то, как реализовано изменение частоты микроконтроллера: достаточно выбрать нужное значение тактовой частоты в меню IDE Ардуино и затем выполнить команду "Записать загрузчик". А почему бы не сделать так же для Ардуино? Чтобы можно было простыми действиями настроить ее на тактирование либо от внешнего резонатора на 16МГц, либо от внутреннего RC-генератора на 8МГц. Кстати при тактировании от внутреннего генератора микроконтроллер можно извлечь из Ардуино, тем самым значительно снизить энергопотребление. В общем, тема весьма интересная, подробности под катом.
воскресенье, 30 декабря 2018 г.
Тактирование Ардуино от внутреннего RC-генератора
При написании публикации про ATtiny85 я обратил внимание на то, как реализовано изменение частоты микроконтроллера: достаточно выбрать нужное значение тактовой частоты в меню IDE Ардуино и затем выполнить команду "Записать загрузчик". А почему бы не сделать так же для Ардуино? Чтобы можно было простыми действиями настроить ее на тактирование либо от внешнего резонатора на 16МГц, либо от внутреннего RC-генератора на 8МГц. Кстати при тактировании от внутреннего генератора микроконтроллер можно извлечь из Ардуино, тем самым значительно снизить энергопотребление. В общем, тема весьма интересная, подробности под катом.
воскресенье, 16 декабря 2018 г.
Прошиваем загрузчик micronucleus в ATtiny85
Обычно для программирования микроконтроллеров используют программаторы - устройства, которые работают напрямую с памятью микроконтроллера и размещают в ней программу. Так при знакомстве с ATtiny85 мы прошивали ее при помощи программатора, в роли которого выступала плата Ардуино Уно. Но при этом программирование самих плат Ардуино или Digispark, которая построена на том же ATtiny85, осуществляется без программатора. Это возможно благодаря записанному в них загрузчику, он принимает код новой программы по последовательному интерфейсу и размещает его в ПЗУ микроконтроллера. И сегодня я хочу рассказать о том, как записать загрузчик Micronucleus в ATtiny85.
суббота, 8 декабря 2018 г.
Что такое Digispark
четверг, 1 ноября 2018 г.
Знакомство с ATtiny85
ATtiny85 - это 8-битный AVR микроконтроллер фирмы Atmel, представитель семейства tiny. Микроконтроллеры данного семейства, как следует из его названия, являются младшими в линейке AVR: у них меньшее число линий ввода-вывода, меньший объем памяти и ограниченный набор периферийных устройств по сравнению с микроконтроллерами mega/XMEGA. Но это окупается их меньшей стоимостью и малыми размерами. Кроме того tiny микроконтроллеры имеют ту же производительность, что и старшие микроконтроллеры семейства mega. Это делает их отличным выбором для создания устройств, не требующих широкого набора периферии, где размер и цена микроконтроллера имеют значение: tinyAVR находят применение в портативных навигаторах, плеерах, сотовых телефонах, спортивных гаджетах, бытовой технике, электронных игрушках, пультах дистанционного управления, интеллектуальных датчиках и во многих других устройствах. Но вернемся к ATtiny85 и ознакомимся с характеристиками данного микроконтроллера.
пятница, 12 октября 2018 г.
LiquidCrystal_I2C_Ext - библиотека для создания меню на Ардуино
Я обратил внимание, что тема создания меню на Ардуино и ЖК дисплее весьма популярна. И ей уже посвящена одна из моих публикаций. Но я понимаю, что для новичков адаптация моего скетча может показаться нетривиальной задачей. Поэтому я решил написать библиотеку для создания меню на Ардуино и ЖК дисплее с I2C управлением, которую было бы легко использовать даже начинающему ардуинщику.
среда, 10 октября 2018 г.
Прошивка USBasp
Если при использовании USBasp в логе avrdude у вас появляется сообщение
avrdude: warning: cannot set sck period, please check for usbasp firmware update, но при этом программатор исправно выполняет команды, то, скорее всего, проблема в устаревшей прошивке USBasp. В этой статье я по шагам расскажу, как обновить прошивку USBasp, используя Ардуино в качестве программатора.
четверг, 13 сентября 2018 г.
Программатор USBasp
Сегодня речь пойдет о программаторе USBasp - популярном программаторе для микроконтроллеров фирмы Atmel серии AVR. Как заявляет его создатель на домашней странице проекта, USBasp работает на различных платформах (Windows, Linux, Mac OS X), не требует дополнительных компонентов и обеспечивает скорость программирования до 5 кбит/с. Кроме того его схема довольно проста и желающие могут собрать этот программатор самостоятельно. Либо можно заказать готовый на Aliexpress, как я и поступил. Обошелся он мне в $1.70 вместе с переходником на ICSP разъем.
воскресенье, 19 августа 2018 г.
Что такое Фьюзы. Чтение и запись фьюзов Ардуино
Сегодня я хочу рассказать о том, что такое фьюзы, за что они отвечают и как их можно прочитать и записать в Ардуино. Рекомендую также заглянуть в предыдущую публикацию, т.к. работа с фьюзами возможна только через программатор.
четверг, 19 июля 2018 г.
воскресенье, 24 июня 2018 г.
Генератор сигналов на AD9833
AD9833 - это программируемый генератор сигналов с низким энергопотреблением. Позволяет генерировать сигналы с частотой до 12.5МГц синусоидальной, треугольной и прямоугольной формы. Программирование осуществляется с использованием трехпроводного интерфейса SPI и не составляет труда. Ниже приведены основные характеристики микросхемы:
суббота, 7 апреля 2018 г.
Пара слов о текстовых LCD дисплеях
Последнее время я довольно часто использую текстовый LCD дисплей в своих проектах. При этом всю информацию приходится выводить на английском, в принципе меня это не особо беспокоит. Одно время искал библиотеки типа LiquidCrystal_I2C_RUS (думаю, как и многие), но так ничего и не нашел. И недавно возникло у меня желание разобраться в работе дисплея, как в нем выводятся символы и, может быть, написать свою библиотеку для дисплеев с I2C интерфейсом, поддерживающую кириллицу.
понедельник, 2 апреля 2018 г.
Библиотека Low-Power
После предыдущих публикаций я не могу не упомянуть о библиотеке Low-Power. Данная библиотека предназначена для управления режимами энергосбережения Ардуино. Чтобы перевести Ардуино в интересующий режим достаточно вызвать соответствующую функцию:
воскресенье, 25 февраля 2018 г.
Уменьшаем энергопотребление Ардуино
Данная тема весьма актуальна при разработке устройств, которые должны работать от автономного источника питания. Это могут быть беспроводные датчики, системы контроля и автоматизации, устройства для умного дома и многое другое. Как можно заставить их работать дольше без подзарядки аккумуляторов и замены батарей? Давайте разбираться.
суббота, 3 февраля 2018 г.
Что такое подтягивающий (стягивающий) резистор
Чтобы ответить на этот вопрос давайте посмотрим на следующую схему:
Мы бы хотели отслеживать нажатие кнопки для выполнения каких-то действий. Для этого мы подключили линию +5В через резистор и кнопку к цифровому выводу Ардуино, полагая, что при нажатии на кнопку ток потечет через нее и Ардуино считает на цифровом входе 2 сигнал высокого уровня. Соответственно, при размыкании контакта мы рассчитываем получить на входе сигнал низкого уровня. Так ли это? Проверим.
Мы бы хотели отслеживать нажатие кнопки для выполнения каких-то действий. Для этого мы подключили линию +5В через резистор и кнопку к цифровому выводу Ардуино, полагая, что при нажатии на кнопку ток потечет через нее и Ардуино считает на цифровом входе 2 сигнал высокого уровня. Соответственно, при размыкании контакта мы рассчитываем получить на входе сигнал низкого уровня. Так ли это? Проверим.