Простой цифровой фильтр на микроконтроллере
Во многих цифровых устройствах для преобразования аналоговых сигналов используется АЦП. Часто аналоговые сигналы содержат нежелательный высокочастотный шум.
Чтобы "очистить" сигнал от этих шумов применяются аналоговые RC фильтры низких частот, которые устанавливаются после источника сигнала. Такой подход не всегда идеален и практичен.
В качестве альтернативы, можно "очистить" зашумленный сигнал с помощью цифрового эквивалента аналогового RC фильтра нижних частот. По сути, программа этого цифрового фильтра состоит всего из двух строчек на Си.
Генератор синусоидального сигнала на основе сдвигового регистра
Интересная схема генерации синусоидального сигнала предложена в одном из старых выпусков журнала EDN. Идея основана на использовании цифрового сдвигового регистра и нескольких резисторов с фиксированными номиналами. Схема показана на рисунке ниже.
Простой аудио усилитель на операционном усилителе LM833
Это схема простого аудио усилителя на основе операционного усилителя LM833. Она относится к разряду тех схем, которые можно собрать за час "на коленке". Однако, несмотря на свою простоту, схема вполне работоспособна и при должном качестве сборки может найти применение в качестве усилителя для наушников и предусилителя электрогитары. Или, на худой конец, вашего первого собранного устройства.
AVR библиотека для LCD с произвольным подключением выводов
Некоторое время назад я написал макросы для реализации виртуальных портов. С помощью этих макросов можно переделать практически любую библиотеку для работы с произвольными выводами микроконтроллера. Первая библиотека, которая попала под это изменение, стала библиотека для символьного LCD. В этом посте я расскажу, как ее применить в своем проекте.
Учебный курс AVR. Работа с EEPROM. Объявление переменных. Чтение и запись данных. Ч1
При программировании микроконтроллеров AVR иногда возникает потребность сохранять данные, которые бы после выключения питания или сброса контроллера не изменяли свое значение. Для этих целей в составе AVR есть энергонезависимая память данных EEPROM (Electrically Erasable Programmable Read-Only Memory — электрически стираемое перепрограммируемое ПЗУ).
EEPROM имеет адресное пространство отличное от адресных пространств ОЗУ и flash памяти, в котором можно читать и записывать одиночные байты. В зависимости от модели микроконтроллера EEPROM может иметь объем от 512 байт (как, например, в микроконтроллере atmega16) до нескольких килобайт. Гарантированное количество циклов перезаписи этой памяти составляет не меньше 100000.
В этой статье на примере atmega16 мы разберемся, как работать с этим типом памяти, какие возможные проблемы при этом могут возникать и как с ними бороться.