Восстановление сигнала методом Digital Lock-in Amplifier.
В школе, на уроках математики, нас учили по виду кривой описывать ее уравнением. Для человека такая задача считается простой, но если попробовать переложить эту задачу на микроконтроллер, мы увидим, что даже синусоидальный сигнал распознать не так просто....
Антиалиасный фильтр.
При просмотре телевизора, думаю, каждый хоть раз видел как у быстро едущей машины медленно вращаются колеса или вообще вращаются в другую сторону. В детстве меня этот вопрос очень интересовал, но ответ на него был найден гораздо позже, а именно когда начал разбираться как работает АЦП. Для начала предлагаю разобраться, что общего между работой АЦП и вращающимся колесом на экране телевизора....
Как передать в функцию двумерный массив.
В одной из статей, написанной несколько лет назад, описывал для чего в си используются указатели и как с ними работать. Сегодня перечитывая, ту статью понял, что есть еще один интересный вопрос, который стоило бы рассмотреть. "Как передать в функцию двумерный массив ?"...
Как связать микроконтроллер AVR c планшетом на Android, с помощью bluetooth модуля HC-05.
В конце прошлой статьи писал о том, что получилось создать интерфейс для Android и в этой статье попробую описать этот процесс. Почему попробую, потому что опыта в создании приложений под Android у меня практически нет и на самом деле, мало что смогу доступно объяснить. Ну всё довольно отмазываться пора переходить к делу. Для начала качаем и устанавливаем Android Studio, о том как это сделать в...
Подключение bluetooth модуля HC-05 к микроконтроллеру.
Где-то около года назад заказал на ali bluetooth module HC-05. На тот момент ещё не знал для чего он мне может понадобиться, но беспроводные технологии манили меня своим таинством. На момент заказа на рынке была представлена целая линейка bluetooth модулей от HC-03 до HC-09, но некоторые из них могут работать либо в режиме master(HC-04-M), либо в режиме slave (HC-06-S), а HC-05 может работать в...
Модульное программирование.
После того как начинающий embedder наморгается светодиодом, он непременно решит написать нечто более серьезное и у него как у любого начинающего будет только одно желание «чтобы всё быстрее заработало!!!». В такой попытке самоутвердиться он будет писать всё в один файл, не задумываясь о структуре программы, но через некоторое время, когда часть задуманного будет реализована, станет понятно, что...
Запись звука с помощью микроконтроллера на SD карту.
В одной из прошлых статей мы научились работать с sd карточкой и, конечно, хорошо было применить полученные знания на практике. Так родилась идея записывать звук на sd карточку, чтобы потом слушать его на компьютере. Что-то стоящее сделать не получится по той причине, что мы не можем создавать новые файлы и увеличивать их размер, эти ограничения накладывает библиотека. Но заложенные в этой статье...
Пара слов про указатели в Си.
При изучении Си у начинающих часто возникают вопросы связанные с указателями, думаю вопросы у всех возникают примерно одинаковые поэтому опишу те, которые возникли у меня. Для чего нужен указатель? Почему всегда пишут “указатель типа” и чем указатель типа uint16_t отличается от указателя типа uint8_t? И кто вообще выдумал указатель? Перед тем как ответить на эти вопросы, давайте вспомним, что...
Подключение sd карты к микроконтроллеру.
В одной из прошлых статей, мы выводили картинку на дисплей с sd карточки, но в ней были упущены некоторые моменты, первый — подключение самой карточки, второй — была рассмотрена лишь часть функций библиотеки Petit FatFs, давайте остановимся на этих моментах подробнее. Общение с карточкой возможно по одному из двух интерфейсов, SPI или SD. Надо сказать, что SD интерфейс может работать в...
Обработка нажатий тактовой кнопки.
Обычно первая программа программиста — выводит на экран строку “Hello word”, а эмбеддер мигает светодиодом, может ещё и кнопку прикрутить и с её помощью изменять состояние светодиода. Вот как раз про кнопку и хотел рассказать, обычно кнопку, которая что-либо переключает, называют тактовой кнопкой. Обычно её подключают по одной из схем, изображённых ниже. Но гораздо более интересный вопрос...
Программатор не видит микроконтроллер.
Думаю многие читали в сети, о том что если неправильно установить фьюзы, то стандартными средствами прошить МК уже не получится. Какие фьюзы можно неправильно установить? У микроконтроллера Atmega16 таких фьюзов несколько: SPIEN и JTAGEN — разрешающие программирование микроконтроллера по SPI и JTAG; RSTDISBL — разрешающий использование ножки сброса как дополнительной линии ввода-вывода; Также...
Подключение шагового двигателя FL86STH65-2808A к микроконтроллеру.
Попал ко мне в руки на днях шаговый двигатель FL86STH65-2808A с драйвером SMD-4.2, задача была научиться управлять ним, используя микроконтроллер. Первым делом надо подключить двигатель к драйверу, из двигателя выходит 8 проводов и их можно соединить двумя способами, как показано на картинке ниже. При последовательном соединении обмоток максимального момента можно добиться только на низких...
Управление шаговым двигателем с помощью микроконтроллера.
Всё началось с того, что в одном из устройств надо было поворачивать вал электродвигателя на определённое количество оборотов, большая точность не требовалась плюс-минус четверть оборота, поэтому было принято решение реализовать это с помощью электродвигателя постоянного тока. В качестве управляющего элемента был выбран микроконтроллер — Atmega16, но так как выходное напряжение выводов Atmega16...
Прошивка AVR через бутлоадер.
Так как USB программатор у меня появился не сразу, а шить через com порт было медленно и неудобно, пришлось искать выход из сложившейся ситуации и заключался он в использовании бутлоадера. В одной из прошлых статей описывалось как прошить STM32 с помощью бутлоадера, но у STM32 бутлоадер зашивают в чип ещё при его изготовлении на заводе, нам же предстоит зашить его самим. Вот как это выглядит в...
Весы на микроконтроллере, подключение HX711 к Atmega16.
Уже давно стоят без дела вот таки весы.В один из дней они просто перестали включаться, попытка ремонта успехом не увенчалась, поэтому было принято решение восстановить их и заодно разобраться с принципом работы. Для этого на али была заказана плата с HX711. Эта микросхема содержит в себе усилитель, с программируемым коэффициентом усиления и сигма-дельта АЦП, она была специально разработана для...
Как прошить и чем отлаживать микроконтроллеры AVR.
Первый вопрос, который встаёт перед начинающим эмбеддером — это как прошить микроконтроллер? Для того чтобы прошить микроконтроллер необходимы три составляющие: чип, который хотим прошить программатор специальная программа управляющая программатором, установленная на компьютере Любой микроконтроллер имеет режим программирования, в этом режиме некоторые выводы микроконтроллера изменяют свои...
Как установить, сбросить, проверить нужный бит  или битовые операции
Независимо от такого какие микроконтроллеры Вы собираетесь программировать, первое что придётся освоить — это битовые операции. Битовых операций в языке Си всего 6. & ( AND ) | ( OR ) ^ ( XOR ) ~ ( NOT ) <<(сдвиг влево) >>(сдвиг вправо) Побитовое ИЛИ — результат операции равен 1, если один из соответствующих битов равен 1, иначе 0....
Подключение инкрементального энкодера к микроконтроллеру.
Инкрементальный энкодер внешне похож на потенциометр, но в отличие от потенциометра у него нет крайних положений, он может вращаться в обоих направлениях неограниченное количество оборотов. Также надо отметить, что инкрементальный энкодер вращается не так плавно как потенциометр, а шагами. Его можно увидеть на автомобильной магнитоле, осциллографе, музыкальном центре, стиральной машине и прочей...
Основы работы протокола SPI.
SPI(Serial Peripheral Bus) — последовательный периферийный протокол обмена. Этот прокол был разработан компанией Motorola, но в настоящее время используется многими производителями. Он предназначен для связи микроконтроллеров между собой, а также со всевозможной периферией: датчиками, AЦП, микросхемами памяти, часами. Но все же наиболее частое применение SPI – это запись программы в память...