Site Loader

Схемы, устройства и проекты на микроконтроллерах AVR

GPS модули широко используются в современной электронике для определения местоположения, основываясь на координатах долготы и широты. Системы мониторинга транспортных средств, часы GPS, системы предупреждения о чрезвычайных происшествиях, системы наблюдения – это лишь небольшой список приложений, в которых может потребоваться технология … Читать далее →

Как показывают многочисленные исследования в современном мире люди более склонны доверять машинам нежели другим людям. Сейчас, когда в мире активно развиваются такие технологии как искусственный интеллект, машинное обучение, чат-боты, синергия (совместная деятельность) между людьми и роботами с каждым годом все … Читать далее →

Двигатели постоянного тока относятся к числу наиболее часто используемых двигателей. Их можно встретить где угодно – начиная от простейших конструкций до продвинутой робототехники. В этой статье мы рассмотрим подключение двигателя постоянного тока к микроконтроллеру ATmega16 (семейство AVR). Но сначала немного … Читать далее →

Принцип действия датчиков Холла основан на так называемом «эффекте Холла», открытым Эдвином Холлом (Edwin Hall) в 1869 году. Этот эффект гласит: «эффект Холла основан на явлении возникновения поперечной разности потенциалов (называемой также холловским напряжением) при помещении проводника с постоянным током … Читать далее →

Широтно-импульсная модуляция (сокр. ШИМ, от англ. PWM — Pulse Width Modulation) является технологией, позволяющей изменять ширину импульсов в то время как частота следования импульсов остается постоянной. В настоящее время она применяется в разнообразных системах контроля и управления, а также в … Читать далее →

ATmega16 (семейство AVR) является дешевым 8 битным микроконтроллером и имеет достаточно большое число интерфейсов ввода-вывода общего назначения. Он поддерживает все часто используемые в настоящее время протоколы связи такие как UART, USART, SPI и I2C. Он достаточно широко применяется в робототехнике, … Читать далее →

Существует несколько способов программирования микроконтроллеров семейства AVR. В данной статье мы рассмотрим один из наиболее популярных в настоящее время способов программирования данных микроконтроллеров – с помощью программатора USBASP v2.0 и программы Atmel Studio 7.0. Хотя на нашем сайте уже есть … Читать далее →

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

Часто во многих конструкциях, использующих микроконтроллеры AVR, используется аналогово-цифровой преобразователь (АЦП) данных микроконтроллеров. Он используется везде где необходимо преобразовать какое-нибудь аналоговое значение в цифровое. Обычно это конструкции с датчиками температуры, датчиками наклона, датчиками тока, гибкими датчиками и т.п. На нашем … Читать далее →

Шаговые двигатели – это бесщеточные двигатели постоянного тока, которую могут вращаться от 00 до 3600 дискретными шагами. С каждым управляющим сигналом ось такого двигателя поворачивается на фиксированное значение (шаг). Управление вращением подобных двигателей осуществляется последовательностью специальных сигналов. В отличие от … Читать далее →

Очень маленькое, но очень полезное устройство.

РадиоКот >Схемы >Цифровые устройства >Игрушки >

Очень маленькое, но очень полезное устройство.

Здравствуй, дорогой Кот! Позволь поздравить тебя с Днём рождения и от всей души пожелать рабочего вдохновения, творческих успехов ну и чтоб, как говорится, «всё Коту было Масленица»! А также преподнести тебе очень маленький скромный подарочек. Ой, а где же он? В кармане затерялся? Мяу-миу-рауж… О! Вот же он, «МИРАЖ»!!!

 

Надеюсь, он тебе понравится и станет твоим верным спутником. 

Каждый день мы куда-то торопимся, не успеваем, опаздываем. К сегодняшнему дню человечество изобрело массу всевозможных хронометров. От примитивных песочных и солнечных часов, до сложнейших, основанных на процессах квантовых переходов элементарных частиц, сверхточных атомных. Человечество даже научилось «из времени делать деньги», но, к сожалению, так и не освоило обратный процесс. Одним словом время – это то, чего нам всегда критически не хватает. И особенно для того, чтобы просто, никуда не спеша, свернуться калачиком и от всей души «придавить хорька». Конечно же, данный прибор не «растянет» вам время, но поможет его подсчитать, а значит экономно и с умом его использовать, с пользой для себя и окружающих.

Итак, что же за хронометр сегодня у нас? Идея систем отображения с механической развёрткой, отнюдь, не нова. Данные часы были разработаны чуть больше полугода назад, когда один из приднестровских котов опубликовал здесь свою статью с подобным прибором. Целью моей разработки было создать некое совершенное во всех отношениях устройство подсчёта времени, основанное на подобных принципах, но лишённое всех недостатков модели приднестровского товарища. Во избежание «переноса недостатков» как принципиальная схема, так и программный код разрабатывались с нуля. Да и не было желания «ковыряться» в чужом коде, хотелось разработать что-то своё, новое и совершенно отличное. Так, после двух месяцев творческих поисков и двух неудачных образцов появился «МИРАЖ». Уникальность данного устройства счёта времени заключается  в его неимоверной простоте,  дешевизне и столь модных сегодня минималистических тенденциях. Как говорят: «Всё гениальное должно быть просто!». Но, не смотря на это, данный хронометр умеет считать секунды, минуты, часы, числа, месяцы, годы, вычисляет дни недели по дате и добавляет по дню в високосные годы. Кроме того этот «малыш» довольно точен и экономичен. За полгода его работы уход времени составил не более двух минут, а элемент питания до сих пор не требует замены.


Из чего же он состоит? «Сердцем» устройства является излюбленный посетителями данного сайта 8-ми битный Flash микроконтроллер фирмы Atmel – ATmega8. Секрет сверхнизкого энергопотребления устройства заключается в том, что большую часть времени МК, как и положено всем порядочным котам, «дрыхнет»! Причём столь глубоко, что его ток потребления составляет при этом немногим более 8мкА! «А кто же тогда время считает?» – спросите вы. А всё дело в том, что в его составе имеется хитрый таймер-счётчик TC2, имеющий в своём составе независимый генератор тактовых импульсов с предделителем и возможностью подключения внешнего кварцевого резонатора. Вот он-то как раз и считает генерируемые генератором импульсы с частотой  32 786Гц, которая задаётся внешним опорным «часовым кварцем». Один раз в секунду происходит переполнение таймера и по данному событию он формирует сигнал прерывания, способный «разбудить» вычислительное ядро микроконтроллера. При пробуждении запускается внутренний калиброванный RC-осциллятор с делителем на 8, от которого и происходит тактирование ядра частотой порядка 1,2 МГц. При этом ток потребления скачком возрастает до полутора миллиампер. Ядро производит математические действия и снова уходит в спящий режим. Переполнение таймера – не единственное условие для пробуждения МК. Это также происходит и по нажатию кнопки «Wake». При этом МК в течение 5 секунд не уходит в спящий режим, ожидая действий пользователя, и выполняя алгоритмы пользовательского интерфейса. Если по истечению 5 секунд никаких действий не последует, МК снова уйдёт в режим сна.

Как пользоваться данным устройством? Элементарно! Держите устройство в руке горизонтально батареей к себе. Кратковременно нажмите кнопку «Wake» и начните совершать взмахи влево-вправо с частотой от 3 до 5 взмахов в секунду. Перед вами появится «виртуальное табло» с отображением текущего времени.

 

Ещё одно кратковременное нажатие, и на «табло» появится текущая дата.

 

Затем год.

 

И, наконец, эмблемка «МИРАЖ».

Для установки времени необходимо в режиме отображения времени нажать и удерживать не менее 2 секунд кнопку «Wake» до засвечивания нижнего светодиода.  При взмахах появится:

 

Каждое кратковременное нажатие будет увеличивать отображаемый параметр на единицу. Ещё одно нажатие с удерживанием переключит в режим установки минут:

 

Отображаемый параметр изменяется аналогично. Следующее нажатие с удержанием сохранит установленное время и переключит в режим отображения времени. Если вы не желаете сохранять установленное время – просто не производите с устройством никаких действий в течение промежутка времени длительностью не менее пяти секунд. Устройство без сохранения перейдёт в спящий режим.

Аналогично устанавливается и дата. Необходимо перейти в режим отображения даты, далее нажатием с удержанием войти в режим установки даты. Далее производятся действия, аналогичные описанным выше как и при установке времени:

 

Ну чтож, без внимания остался лишь самый загадочный элемент устройства – это «датчик взмахов». Для удобства назовём его «акселерометр», хотя это и не совсем корректно.

 

Данный компонент изготавливается вручную. Для этого вам понадобятся напильник, паяльник, шило, кусачки-бокорезы ну и, конечно же, пара не очень кривых рук. За основу корпуса берётся планка штыревая типа PLD-80. От неё очень аккуратно откусываются 2 отрезка по 8 штырей. Все штыри вынимаются. В результате получается 16 штырей и 2 пластиковые детали. Далее 4 штыря изгибаются под прямым углом с отступом около 2мм от края и вставляются в одну из пластиковых деталей со стороны без углубления (см. фото).

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

Сам чувствительный элемент «акселерометра» представляет собой грузик-контакт удерживаемый пружинкой. Под действием сил, вызванных ускоренем, он должен свободно двигаться между двух штырей-контактов и быть подпружиненным к контакту, расположенному по направлению взмаха, то есть влево, если представить плату в руке (на фотографии нижний справа).

В качестве грузика используется кусочек медной или латунной проволоки сечением около 1,5мм с золотым или серебряным покрытием – идеально подходят кусочки контактов некоторых старых «совковых» разъёмов. В качестве пружинки применена струнка, выпаянная из оптической головки лазерного CD/DVD привода. На таких струнках подвешиваются подвижные пластиковые рамки с обмотками и микролинзами. Пружинка должна иметь 1-1,5 витка (подбирается экспериментально), навивается на оправке диаметром около 1мм (вывод какого-нибудь выводного элемента с соответствующим сечением). Одним кончиком пружинка припаивается к грузику, на другом формируется «петелька», которая припаивается к медному прямоугольнику. Далее на штыри надевается вторая пластиковая деталь углублением вниз, образуя таким образом «крышечку коробочки» со всей «механикой» внутри. Далее «крышечку» необходимо снять, аккуратно подгибая пружинку тонким пинцетом, необходимо добиться, чтобы груз не касался верхней или нижней стенки коробочки, а был слегка прижат к левому контакту («крышечка» для проверки периодически устанавливается на место). Таким образом в собранной конструкции при взмахах грузик будет ударяться только о боковые штыри-контакты.

После регулировки и сборки верхние выступы штырей обкусываются кусачками и стачиваются напильником. Далее акселерометр ставится всеми четырьмя контактами на напильник и производится стачивание контактов до толщины не более 0,3-0,5мм, после чего он готов к пайке на плату. После пайки акселерометр необходимо самым тщательным образом промыть средством для удаления флюса и грязи. При определённой сноровке пластиковые детали корпуса также можно очень сильно утонить, получив акселерометр почти крохотных размеров.

Жёсткость пружинки и сила прижима грузика окончательно доводятся после сборки и прошивки устройства по корректности развёртки изображения. При очень мягкой пружинке левая или правая сторона растра «сминается», при слишком жёсткой акселерометр перестаёт реагировать на взмахи, растр появляется не при каждом взмахе или не появляется вообще.

Номинал резисторов R1-R8 выбирается в соответствии цвета устанавливаемых светодиодов (точнее от заявленного напряжения их переходов). Для синих, белых, и ultra bright зелёных – 8-16 Ом, для красных, жёлтых и зелёных обычных – порядка 47-56Ом. Также хочу обратить ваше особое внимание на то, что микроконтроллер ATmega8A-AU по ряду его архитектурных особенностей в данной конструкции не применим. Устройство будет корректно работать только с МК ATmega8-16AU и ATmega8L-8AU.

Также напомню об обязательном соблюдении правил антистатической безопасности при работе с микроэлектроникой. После сборки и монтажа не забывайте тщательно мыть платы специализированными средствами для удаления флюса и грязи. Перед включением проверьте плату на наличие непропаев, обрывов и закороток. Готовую плату можно покрыть лаком, например «Цапонлак» или «Plastik». Следите, чтобы остатки паяльного материала и лак не попали в акселерометр.

 

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

 

«Кино» можно посмотреть по адресу: https://youtu.be/4j5wauVHah0

 

Фузы, прошивка и плата(SL5.0) находятся в архиве.

Файлы:
PCB, прошивка, фузы

Все вопросы в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?


Эти статьи вам тоже могут пригодиться:

Автоматическое ЗУ на МК ATmega16A — Меандр — занимательная электроника

В этой статье я расскажу, как из компьютерного блока питания формата АТ/АТХ и самодельного блока управления изготовить довольно-таки «умное» зарядное устройство для свинцово-кислотных аккумуляторных батарей. К ним относятся т.н. «УПС-овые», автомобильные и другие АКБ широкого применения.

Описание
Устройство предназначено для зарядки и тренировки (десульфатации) свинцово-кислотных АКБ ёмкостью от 7 до 100 Ач, а также для приблизительной оценки уровня их заряда и емкости. ЗУ имеет защиту от неправильного включения батареи (переполюсовки) и от короткого замыкания случайно брошенных клемм. В нём применено микроконтроллерное управление, благодаря чему осуществляются безопасные и оптимальные алгоритмы зарядки: IUoU или IUIoU, с последующей «добивкой» до 100%-го уровня зарядки. Параметры зарядки можно подстроить под конкретный аккумулятор (настраиваемые профили) или выбрать уже заложенные в управляющей программе. Конструктивно зарядное устройство состоит из блока питания АТ/АТХ, который нужно немного доработать и блока управления на МК ATmega16A. Всё устройство свободно монтируется в корпусе того же блока питания. Система охлаждения (штатный кулер БП) включается/отключается автоматически.
Достоинства данного ЗУ — его относительная простота и отсутствие трудоёмких регулировок, что особенно актуально для начинающих радиолюбителей.
1. Режим зарядки — меню «Заряд». Для аккумуляторов емкостью от 7Ач до 12Ач по умолчанию задан алгоритм IUoU. Это значит:
— первый этап- зарядка стабильным током 0.1С до достижения напряжения14.6В
— второй этап-зарядка стабильным напряжением 14.6В, пока ток не упадет до 0,02С
— третий этап-поддержание стабильного напряжения 13.8В, пока ток не упадет до 0.01С. Здесь С — ёмкость батареи в Ач.
— четвёртый этап — «добивка». На этом этапе отслеживается напряжение на АКБ. Если оно падает ниже 12.7В, включается заряд с самого начала.
Для стартерных АКБ (от 45 Ач и выше) применяем алгоритм IUIoU. Вместо третьего этапа включается стабилизация тока на уровне 0.02C до достижения напряжения на АКБ 16В или по прошествии времени около 2-х часов. По окончанию этого этапа зарядка прекращается и начинается «добивка». Это- четвёртый этап. Процесс заряда проиллюстрирован графиками рис.1 и рис.2.
2. Режим тренировки (десульфатации) — меню «Тренировка». Здесь осуществляется тренировочный цикл:
10 секунд — разряд током 0,01С, 5 секунд — заряд током 0.1С. Зарядно-разрядный цикл продолжается, пока напряжение на АКБ не поднимется до 14.6В. Далее — обычный заряд.
3. Режим теста батареи. Позволяет приблизительно оценить степень разряда АКБ. Батарея нагружается током 0,01С на 15 секунд, затем включается режим измерения напряжения на АКБ.
4. Контрольно-тренировочный цикл (КТЦ). Если предварительно подключить дополнительную нагрузку и включить режим «Заряд» или «Тренировка», то в этом случае, сначала будет выполнена разрядка АКБ до напряжения 10.8В, а затем включится соответствующий выбранный режим. При этом измеряются ток и время разряда, таким образом, подсчитывается примерная емкость АКБ. Эти параметры отображаются на дисплее после окончания зарядки (когда появится надпись «Батарея заряжена») при нажатии на кнопку «выбор». В качестве дополнительной нагрузки можно применить автомобильную лампу накаливания. Ее мощность выбирается, исходя из требуемого тока разряда. Обычно его задают равным 0.1С — 0.05С (ток 10-ти или 20-ти часового разряда).
Перемещение по меню осуществляется кнопками «влево», «вправо», «выбор». Кнопкой «ресет» осуществляется выход из любого режима работы ЗУ в главное меню.
Основные параметры зарядных алгоритмов можно настроить под конкретный аккумулятор, для этого в меню есть два настраиваемых профиля — П1 и П2. Настроенные параметры сохраняются в энергонезависимой памяти (EEPROM-е).
Чтобы попасть в меню настроек нужно выбрать любой из профилей, нажать кнопку «выбор», выбрать «установки», «параметры профиля», профиль П1 или П2. Выбрав нужный параметр, нажимаем «выбор». Стрелки «влево» или «вправо» сменятся на стрелки «вверх» или «вниз», что означает готовность параметра к изменению. Выбираем нужное значение кнопками «влево» или «вправо», подтверждаем кнопкой «выбор». На дисплее появится надпись «Сохранено», что обозначает запись значения в EEPROM.
Значения настроек:
1. «Алгоритм заряда». Выбирается IUoU или IUIoU. См. графики на рис.1 и рис.2.
2. «Емкость АКБ». Задавая значение этого параметра, мы задаем ток зарядки на первом этапе I=0.1C, где С- емкость АКБ В Ач. (Таким образом, если нужно задать ток заряда, например 4.5А, следует выбрать емкость АКБ 45Ач).
3. «Напряжение U1». Это напряжение, при котором заканчивается первый этап зарядки и начинается второй. По умолчанию задано значение 14.6В.
4. «Напряжение U2». Используется только, если задан алгоритм IUIoU. Это напряжение, при котором заканчивается третий этап зарядки. По умолчанию — 16В.
5. «Ток 2-го этапа I2». Это значение тока, при котором заканчивается второй этап зарядки. Ток стабилизации на третьем этапе для алгоритма IUIoU. По умолчанию задано значение 0.2С.
6. «Окончание заряда I3». Это значение тока, по достижению которого зарядка считается оконченной. По умолчанию задано значение 0.01С.
7. «Ток разряда». Это значение тока, которым осуществляется разряд АКБ при тренировке зарядно-разрядными циклами.


Выбор и переделка блока питания.

В нашей конструкции мы используем блок питания от компьютера. Почему? Причин несколько. Во–первых, это — практически готовая силовая часть. Во-вторых, это же и корпус нашего будущего устройства. В-третьих, он имеет малые габариты и вес. И, в-четвёртых, его можно приобрести практически на любом радиорынке, барахолке и в компьютерных сервисных центрах. Как говорится, дёшево и сердито.
Из всего многообразия моделей блоков питания нам лучше всего подходит блок формата АТX, мощностью не менее 250 Вт. Нужно только учесть следующее. Подходят лишь те блоки питания, в которых применён ШИМ-контроллер TL494 или его аналоги (MB3759, КА7500, КР1114ЕУ4). Можно также применить и БП формата AT, только придется изготовить еще маломощный блок дежурного питания (дежурку) на напряжение 12В и ток 150-200мА. Разница между AT и ATX – в схеме начального запуска. АТ запускается самостоятельно, питание микросхемы ШИМ–контроллера берётся с 12-вольтовой обмотки трансформатора. В ATX для начального питания микросхемы служит отдельный источник 5В, называемый «источник дежурного питания» или «дежурка».
Итак, блок питания имеется. Сначала необходимо его проверить на исправность. Для этого его разбираем, вынимаем предохранитель и вместо него подпаиваем лампу накаливания 220 вольт мощностью 100-200Вт. Если на задней панели БП имеется переключатель сетевого напряжения, то он должен быть установлен на 220В.

Включаем БП в сеть. Блок питания АТ запускается сразу, для ATX нужно замкнуть зелёный и чёрный провода на большом разъёме. Если лампочка не светится, кулер вращается, а все выходные напряжения в норме — значит, нам повезло и наш блок питания рабочий. В противном случае, придётся заняться его ремонтом. Оставляем лампочку пока на месте.
Для переделки БП в наше будущее зарядное устройство, нам потребуется немного изменить «обвязку» ШИМ-контроллера. Несмотря на огромное разнообразие схем блоков питания, схема включения TL494 стандартная и может иметь пару вариаций, в зависимости от того, как реализованы защиты по току и ограничения по напряжению. Схема переделки показана на рис.3.

На ней показан только один канал выходного напряжения: +12В. Остальные каналы: +5В,-5В, +3,3В не используются. Их обязательно нужно отключить, перерезав соответствующие дорожки или выпаяв из их цепей элементы. Которые, кстати, нам могут и пригодиться для блока управления. Об этом — чуть позже. Красным цветом обозначены элементы, которые устанавливаются дополнительно. Конденсатор С2 должен иметь рабочее напряжение не ниже 35В и устанавливается взамен существующего в БП. После того, как «обвязка» TL494 приведена к схеме на рис.3, включаем БП в сеть. Напряжение на выходе БП определяется по формуле: Uвых=2,5*(1+R3/R4) и при указанных на схеме номиналах должно составлять около 10В. Если это не так, придется проверить правильность монтажа. На этом переделка закончена, можно убирать лампочку и ставить на место предохранитель.

Схема и принцип работы.

Схема блока управления показана на рис.4.

Она довольно проста, так как все основные процессы выполняет микроконтроллер. В его память записывается управляющая программа, в которой и заложены все алгоритмы. Управление блоком питания осуществляется с помощью ШИМ с вывода PD7 МК и простейшего ЦАП на элементах R4,C9,R7,C11. Измерение напряжения АКБ и зарядного тока осуществляется средствами самого микроконтроллера — встроенным АЦП и управляемым дифференциальным усилителем. Напряжение АКБ на вход АЦП подается с делителя R10R11, Зарядный и разрядный ток измеряются следующим образом. Падение напряжения с измерительного резистора R8 через делители R5R6R10R11 подается на усилительный каскад, который находится внутри МК и подключен к выводам PA2, PA3. Коэффициент его усиления устанавливается программно, в зависимости от измеряемого тока. Для токов меньше 1А коэффициент усиления (КУ) задается равным 200, для токов выше 1А КУ=10. Вся информация выводится на ЖКИ, подключенный к портам РВ1-РВ7 по четырёхпроводной шине. Защита от переполюсовки выполнена на транзисторе Т1, сигнализация неправильного подключения — на элементах VD1,EP1 ,R13. При включении зарядного устройства в сеть транзистор Т1 закрыт низким уровнем с порта РС5, и АКБ отключена от зарядного устройства. Подключается она только при выборе в меню типа АКБ и режима работы ЗУ. Этим обеспечивается также отсутствие искрения при подключении батареи. При попытке подключить аккумулятор в неправильной полярности сработает зуммер ЕР1 и красный светодиод VD1, сигнализируя о возможной аварии. В процессе заряда постоянно контролируется зарядный ток. Если он станет равным нулю (сняли клеммы с АКБ), устройство автоматически переходит в главное меню, останавливая заряд и отключая батарею. Транзистор Т2 и резистор R12 образуют разрядную цепь, которая участвует в зарядно-разрядном цикле десульфатирующего заряда (режим тренировки) и в режиме теста АКБ. Ток разряда 0.01С задается с помощью ШИМ с порта PD5. Кулер автоматически выключается, когда ток заряда падает ниже 1,8А. Управляет кулером порт PD4 и транзистор VT1.

Детали и конструкция.

Микроконтроллер. В продаже обычно встречаются в корпусе DIP-40 или TQFP-44 и маркируются так: ATMega16А-PU или ATMega16A-AU. Буква после дефиса обозначает тип корпуса: «P»- корпус DIP, «A»- корпус TQFP. Встречаются также и снятые с производства микроконтроллеры ATMega16-16PU, ATMega16-16AU или ATMega16L-8AU. В них цифра после дефиса обозначает максимальную тактовую частоту контроллера. Фирма- производитель ATMEL рекомендует использовать контроллеры ATMega16A (именно с буквой «А») и в корпусе TQFP, то есть, вот такие: ATMega16A-AU, хотя в нашем устройстве будут работать все вышеперечисленные экземпляры, что и подтвердила практика. Типы корпусов отличаются также и количеством выводов (40 или 44) и их назначением. На рис.4 изображена принципиальная схема блока управления для МК в корпусе DIP.
Резистор R8 –керамический или проволочный, мощностью не менее 10 Вт, R12- 7-10Вт. Все остальные- 0.125Вт. Резисторы R5,R6,R10 и R11 нужно применять с допустимым отклонением 0.1-0.5%. Это очень важно! От этого будет зависеть точность измерений и, следовательно, правильная работа всего устройства.
Транзисторы T1 и Т1 желательно применять такие, как указаны на схеме. Но если придется подбирать замену, то необходимо учитывать, что они должны открываться напряжением на затворе 5В и, конечно же, должны выдерживать ток не ниже 10А. Подойдут, например, транзисторы с маркировкой 40N03GР, которые иногда используются в тех же БП формата АТХ, в цепи стабилизации 3.3В.
Диод Шоттки D2 можно взять из того же БП, из цепи +5В, которая у нас не используется. Элементы D2, Т1 иТ2 через изолирующие прокладки размещаются на одном радиаторе площадью 40 квадратных сантиметров. Буззер EP1- со встроенным генератором, на напряжение 8-12 В, громкость звучания можно подрегулировать резистором R13.
Жидкокристаллический индикатор – Wh2602 или аналогичный, на контроллере HD44780, KS0066 или совместимых с ними. К сожалению, эти индикаторы могут иметь разное расположение выводов, так что, возможно, придется разрабатывать печатную плату под свой экземпляр
Программа
Управляющая программа содержится в папке «Программа» Конфигурационные биты (фузы) устанавливаются следующие:
Запрограммированы (установлены в 0):
CKSEL0
CKSEL1
CKSEL3
SPIEN
SUT0
BODEN
BODLEVEL
BOOTSZ0
BOOTSZ1
все остальные — незапрограммированы (установлены в 1).
Наладка
Итак, блок питания переделан и выдает напряжение около 10В. При подключении к нему исправного блока управления с прошитым МК, напряжение должно упасть до 0.8..15В. Резистором R1 устанавливается контрастность индикатора. Наладка устройства заключается в проверке и калибровке измерительной части. Подключаем к клеммам аккумулятор, либо блок питания напряжением 12-15В и вольтметр. Заходим в меню «Калибровка». Сверяем показания напряжения на индикаторе с показаниями вольтметра, при необходимости, корректируем кнопками «<» и «>». Нажимаем «Выбор». Далее идет калибровка по току при КУ=10. Теми же кнопками «<» и «>» нужно выставить нулевые показания тока. Нагрузка (аккумулятор) при этом автоматически отключается, так что ток заряда отсутствует. В идеальном случае там должны быть нули или очень близкие к нулю значения. Если это так, это говорит о точности резисторов R5,R6,R10,R11,R8 и хорошем качестве дифференциального усилителя. Нажимаем «Выбор». Аналогично — калибровка для КУ=200. «Выбор». На дисплее отобразится «Готово» и через 3 сек. устройство перейдет в главное меню.
Калибровка окончена. Поправочные коэффициенты хранятся в энергонезависимой памяти. Здесь стоит отметить, что если при самой первой калибровке значение напряжения на ЖКИ сильно отличается от показаний вольтметра, а токи при каком — либо КУ сильно отличаются от нуля, нужно применить (подобрать) другие резисторы делителя R5,R6,R10,R11,R8, иначе в работе устройства возможны сбои. При точных резисторах (с допуском 0,1-0,5%) поправочные коэффициенты равны нулю или минимальны. На этом наладка заканчивается. Если же напряжение или ток зарядного устройства на каком-то этапе не возрастает до положенного уровня или устройство «выскакивает» в меню, нужно ещё раз внимательно проверить правильность доработки блока питания. Возможно, срабатывает защита.
Архив к проекту: 

[hidepost] Скачать [/hidepost].

И в заключение, несколько фото.

Расположение элементов в корпусе блока питания:

Готовая же конструкция может выглядеть так:

так:

или даже так:

Автоматическое ЗУ на МК ATmega16A / Блог им. Slon / Блоги по электронике

В этой статье я расскажу, как из компьютерного блока питания формата АТ/АТХ и самодельного блока управления изготовить довольно-таки «умное» зарядное устройство для свинцово-кислотных аккумуляторных батарей. К ним относятся т.н. «УПС-овые», автомобильные и другие АКБ широкого применения.

Описание
Устройство предназначено для зарядки и тренировки (десульфатации) свинцово-кислотных АКБ ёмкостью от 7 до 100 Ач, а также для приблизительной оценки уровня их заряда и емкости. ЗУ имеет защиту от неправильного включения батареи (переполюсовки) и от короткого замыкания случайно брошенных клемм. В нём применено микроконтроллерное управление, благодаря чему осуществляются безопасные и оптимальные алгоритмы зарядки: IUoU или IUIoU, с последующей «добивкой» до 100%-го уровня зарядки. Параметры зарядки можно подстроить под конкретный аккумулятор (настраиваемые профили) или выбрать уже заложенные в управляющей программе. Конструктивно зарядное устройство состоит из блока питания АТ/АТХ, который нужно немного доработать и блока управления на МК ATmega16A. Всё устройство свободно монтируется в корпусе того же блока питания. Система охлаждения (штатный кулер БП) включается/отключается автоматически.
Достоинства данного ЗУ — его относительная простота и отсутствие трудоёмких регулировок, что особенно актуально для начинающих радиолюбителей.
]1. Режим зарядки — меню «Заряд». Для аккумуляторов емкостью от 7Ач до 12Ач по умолчанию задан алгоритм IUoU. Это значит:
— первый этап- зарядка стабильным током 0.1С до достижения напряжения14.6В
— второй этап-зарядка стабильным напряжением 14.6В, пока ток не упадет до 0,02С
— третий этап-поддержание стабильного напряжения 13.8В, пока ток не упадет до 0.01С. Здесь С — ёмкость батареи в Ач.
— четвёртый этап — «добивка». На этом этапе отслеживается напряжение на АКБ. Если оно падает ниже 12.7В, включается заряд с самого начала.
Для стартерных АКБ (от 45 Ач и выше) применяем алгоритм IUIoU. Вместо третьего этапа включается стабилизация тока на уровне 0.02C до достижения напряжения на АКБ 16В или по прошествии времени около 2-х часов. По окончанию этого этапа зарядка прекращается и начинается «добивка». Это- четвёртый этап. Процесс заряда проиллюстрирован графиками рис.1 и рис.2.
2. Режим тренировки (десульфатации) — меню «Тренировка». Здесь осуществляется тренировочный цикл:
10 секунд — разряд током 0,01С, 5 секунд — заряд током 0.1С. Зарядно-разрядный цикл продолжается, пока напряжение на АКБ не поднимется до 14.6В. Далее — обычный заряд.
3. Режим теста батареи. Позволяет приблизительно оценить степень разряда АКБ. Батарея нагружается током 0,01С на 15 секунд, затем включается режим измерения напряжения на АКБ.
4. Контрольно-тренировочный цикл (КТЦ). Если предварительно подключить дополнительную нагрузку и включить режим «Заряд» или «Тренировка», то в этом случае, сначала будет выполнена разрядка АКБ до напряжения 10.8В, а затем включится соответствующий выбранный режим. При этом измеряются ток и время разряда, таким образом, подсчитывается примерная емкость АКБ. Эти параметры отображаются на дисплее после окончания зарядки (когда появится надпись «Батарея заряжена») при нажатии на кнопку «выбор». В качестве дополнительной нагрузки можно применить автомобильную лампу накаливания. Ее мощность выбирается, исходя из требуемого тока разряда. Обычно его задают равным 0.1С — 0.05С (ток 10-ти или 20-ти часового разряда).
Перемещение по меню осуществляется кнопками «влево», «вправо», «выбор». Кнопкой «ресет» осуществляется выход из любого режима работы ЗУ в главное меню.
Основные параметры зарядных алгоритмов можно настроить под конкретный аккумулятор, для этого в меню есть два настраиваемых профиля — П1 и П2. Настроенные параметры сохраняются в энергонезависимой памяти (EEPROM-е).
Чтобы попасть в меню настроек нужно выбрать любой из профилей, нажать кнопку «выбор», выбрать «установки», «параметры профиля», профиль П1 или П2. Выбрав нужный параметр, нажимаем «выбор». Стрелки «влево» или «вправо» сменятся на стрелки «вверх» или «вниз», что означает готовность параметра к изменению. Выбираем нужное значение кнопками «влево» или «вправо», подтверждаем кнопкой «выбор». На дисплее появится надпись «Сохранено», что обозначает запись значения в EEPROM.
Значения настроек:
1. «Алгоритм заряда». Выбирается IUoU или IUIoU. См. графики на рис.1 и рис.2.
2. «Емкость АКБ». Задавая значение этого параметра, мы задаем ток зарядки на первом этапе I=0.1C, где С- емкость АКБ В Ач. (Таким образом, если нужно задать ток заряда, например 4.5А, следует выбрать емкость АКБ 45Ач).
3. «Напряжение U1». Это напряжение, при котором заканчивается первый этап зарядки и начинается второй. По умолчанию задано значение 14.6В.
4. «Напряжение U2». Используется только, если задан алгоритм IUIoU. Это напряжение, при котором заканчивается третий этап зарядки. По умолчанию — 16В.
5. «Ток 2-го этапа I2». Это значение тока, при котором заканчивается второй этап зарядки. Ток стабилизации на третьем этапе для алгоритма IUIoU. По умолчанию задано значение 0.2С.
6. «Окончание заряда I3». Это значение тока, по достижению которого зарядка считается оконченной. По умолчанию задано значение 0.01С.
7. «Ток разряда». Это значение тока, которым осуществляется разряд АКБ при тренировке зарядно-разрядными циклами.


Выбор и переделка блока питания.

В нашей конструкции мы используем блок питания от компьютера. Почему? Причин несколько. Во–первых, это — практически готовая силовая часть. Во-вторых, это же и корпус нашего будущего устройства. В-третьих, он имеет малые габариты и вес. И, в-четвёртых, его можно приобрести практически на любом радиорынке, барахолке и в компьютерных сервисных центрах. Как говорится, дёшево и сердито.
Из всего многообразия моделей блоков питания нам лучше всего подходит блок формата АТX, мощностью не менее 250 Вт. Нужно только учесть следующее. Подходят лишь те блоки питания, в которых применён ШИМ-контроллер TL494 или его аналоги (MB3759, КА7500, КР1114ЕУ4). Можно также применить и БП формата AT, только придется изготовить еще маломощный блок дежурного питания (дежурку) на напряжение 12В и ток 150-200мА. Разница между AT и ATX – в схеме начального запуска. АТ запускается самостоятельно, питание микросхемы ШИМ–контроллера берётся с 12-вольтовой обмотки трансформатора. В ATX для начального питания микросхемы служит отдельный источник 5В, называемый «источник дежурного питания» или «дежурка». Более подробно о блоках питания можно прочитать, например, здесь , а переделка БП в зарядное устройство неплохо описана вот здесь.
Итак, блок питания имеется. Сначала необходимо его проверить на исправность. Для этого его разбираем, вынимаем предохранитель и вместо него подпаиваем лампу накаливания 220 вольт мощностью 100-200Вт. Если на задней панели БП имеется переключатель сетевого напряжения, то он должен быть установлен на 220В. Включаем БП в сеть. Блок питания АТ запускается сразу, для ATX нужно замкнуть зелёный и чёрный провода на большом разъёме. Если лампочка не светится, кулер вращается, а все выходные напряжения в норме — значит, нам повезло и наш блок питания рабочий. В противном случае, придётся заняться его ремонтом. Оставляем лампочку пока на месте.
Для переделки БП в наше будущее зарядное устройство, нам потребуется немного изменить «обвязку» ШИМ-контроллера. Несмотря на огромное разнообразие схем блоков питания, схема включения TL494 стандартная и может иметь пару вариаций, в зависимости от того, как реализованы защиты по току и ограничения по напряжению. Схема переделки показана на рис.3.

На ней показан только один канал выходного напряжения: +12В. Остальные каналы: +5В,-5В, +3,3В не используются. Их обязательно нужно отключить, перерезав соответствующие дорожки или выпаяв из их цепей элементы. Которые, кстати, нам могут и пригодиться для блока управления. Об этом — чуть позже. Красным цветом обозначены элементы, которые устанавливаются дополнительно. Конденсатор С2 должен иметь рабочее напряжение не ниже 35В и устанавливается взамен существующего в БП. После того, как «обвязка» TL494 приведена к схеме на рис.3, включаем БП в сеть. Напряжение на выходе БП определяется по формуле: Uвых=2,5*(1+R3/R4) и при указанных на схеме номиналах должно составлять около 10В. Если это не так, придется проверить правильность монтажа. На этом переделка закончена, можно убирать лампочку и ставить на место предохранитель.

Схема и принцип работы.

Схема блока управления показана на рис.4.

Она довольно проста, так как все основные процессы выполняет микроконтроллер. В его память записывается управляющая программа, в которой и заложены все алгоритмы. Управление блоком питания осуществляется с помощью ШИМ с вывода PD7 МК и простейшего ЦАП на элементах R4,C9,R7,C11. Измерение напряжения АКБ и зарядного тока осуществляется средствами самого микроконтроллера — встроенным АЦП и управляемым дифференциальным усилителем. Напряжение АКБ на вход АЦП подается с делителя R10R11, Зарядный и разрядный ток измеряются следующим образом. Падение напряжения с измерительного резистора R8 через делители R5R6R10R11 подается на усилительный каскад, который находится внутри МК и подключен к выводам PA2, PA3. Коэффициент его усиления устанавливается программно, в зависимости от измеряемого тока. Для токов меньше 1А коэффициент усиления (КУ) задается равным 200, для токов выше 1А КУ=10. Вся информация выводится на ЖКИ, подключенный к портам РВ1-РВ7 по четырёхпроводной шине. Защита от переполюсовки выполнена на транзисторе Т1, сигнализация неправильного подключения — на элементах VD1,EP1 ,R13. При включении зарядного устройства в сеть транзистор Т1 закрыт низким уровнем с порта РС5, и АКБ отключена от зарядного устройства. Подключается она только при выборе в меню типа АКБ и режима работы ЗУ. Этим обеспечивается также отсутствие искрения при подключении батареи. При попытке подключить аккумулятор в неправильной полярности сработает зуммер ЕР1 и красный светодиод VD1, сигнализируя о возможной аварии. В процессе заряда постоянно контролируется зарядный ток. Если он станет равным нулю (сняли клеммы с АКБ), устройство автоматически переходит в главное меню, останавливая заряд и отключая батарею. Транзистор Т2 и резистор R12 образуют разрядную цепь, которая участвует в зарядно-разрядном цикле десульфатирующего заряда (режим тренировки) и в режиме теста АКБ. Ток разряда 0.01С задается с помощью ШИМ с порта PD5. Кулер автоматически выключается, когда ток заряда падает ниже 1,8А. Управляет кулером порт PD4 и транзистор VT1.

Детали и конструкция.

Микроконтроллер. В продаже обычно встречаются в корпусе DIP-40 или TQFP-44 и маркируются так: ATMega16А-PU или ATMega16A-AU. Буква после дефиса обозначает тип корпуса: «P»- корпус DIP, «A»- корпус TQFP. Встречаются также и снятые с производства микроконтроллеры ATMega16-16PU, ATMega16-16AU или ATMega16L-8AU. В них цифра после дефиса обозначает максимальную тактовую частоту контроллера. Фирма- производитель ATMEL рекомендует использовать контроллеры ATMega16A (именно с буквой «А») и в корпусе TQFP, то есть, вот такие: ATMega16A-AU, хотя в нашем устройстве будут работать все вышеперечисленные экземпляры, что и подтвердила практика. Типы корпусов отличаются также и количеством выводов (40 или 44) и их назначением. На рис.4 изображена принципиальная схема блока управления для МК в корпусе DIP.
Резистор R8 –керамический или проволочный, мощностью не менее 10 Вт, R12- 7-10Вт. Все остальные- 0.125Вт. Резисторы R5,R6,R10 и R11 нужно применять с допустимым отклонением 0.1-0.5%. Это очень важно! От этого будет зависеть точность измерений и, следовательно, правильная работа всего устройства.
Транзисторы T1 и Т1 желательно применять такие, как указаны на схеме. Но если придется подбирать замену, то необходимо учитывать, что они должны открываться напряжением на затворе 5В и, конечно же, должны выдерживать ток не ниже 10А. Подойдут, например, транзисторы с маркировкой 40N03GР, которые иногда используются в тех же БП формата АТХ, в цепи стабилизации 3.3В.
Диод Шоттки D2 можно взять из того же БП, из цепи +5В, которая у нас не используется. Элементы D2, Т1 иТ2 через изолирующие прокладки размещаются на одном радиаторе площадью 40 квадратных сантиметров. Буззер EP1- со встроенным генератором, на напряжение 8-12 В, громкость звучания можно подрегулировать резистором R13.
Жидкокристаллический индикатор – Wh2602 или аналогичный, на контроллере HD44780, KS0066 или совместимых с ними. К сожалению, эти индикаторы могут иметь разное расположение выводов, так что, возможно, придется разрабатывать печатную плату под свой экземпляр
Программа
Управляющая программа содержится в папке «Программа» Конфигурационные биты (фузы) устанавливаются следующие:
Запрограммированы (установлены в 0):
CKSEL0
CKSEL1
CKSEL3
SPIEN
SUT0
BODEN
BODLEVEL
BOOTSZ0
BOOTSZ1
все остальные — незапрограммированы (установлены в 1).
Наладка
Итак, блок питания переделан и выдает напряжение около 10В. При подключении к нему исправного блока управления с прошитым МК, напряжение должно упасть до 0.8..15В. Резистором R1 устанавливается контрастность индикатора. Наладка устройства заключается в проверке и калибровке измерительной части. Подключаем к клеммам аккумулятор, либо блок питания напряжением 12-15В и вольтметр. Заходим в меню «Калибровка». Сверяем показания напряжения на индикаторе с показаниями вольтметра, при необходимости, корректируем кнопками «<» и «>». Нажимаем «Выбор». Далее идет калибровка по току при КУ=10. Теми же кнопками «<» и «>» нужно выставить нулевые показания тока. Нагрузка (аккумулятор) при этом автоматически отключается, так что ток заряда отсутствует. В идеальном случае там должны быть нули или очень близкие к нулю значения. Если это так, это говорит о точности резисторов R5,R6,R10,R11,R8 и хорошем качестве дифференциального усилителя. Нажимаем «Выбор». Аналогично — калибровка для КУ=200. «Выбор». На дисплее отобразится «Готово» и через 3 сек. устройство перейдет в главное меню.
Калибровка окончена. Поправочные коэффициенты хранятся в энергонезависимой памяти. Здесь стоит отметить, что если при самой первой калибровке значение напряжения на ЖКИ сильно отличается от показаний вольтметра, а токи при каком — либо КУ сильно отличаются от нуля, нужно применить (подобрать) другие резисторы делителя R5,R6,R10,R11,R8, иначе в работе устройства возможны сбои. При точных резисторах (с допуском 0,1-0,5%) поправочные коэффициенты равны нулю или минимальны. На этом наладка заканчивается. Если же напряжение или ток зарядного устройства на каком-то этапе не возрастает до положенного уровня или устройство «выскакивает» в меню, нужно ещё раз внимательно проверить правильность доработки блока питания. Возможно, срабатывает защита.
Весь материал одним архивом можно скачать здесь

И в заключение, несколько фото.

Расположение элементов в корпусе блока питания:

Готовая же конструкция может выглядеть так:

так:

или даже так:

Желаю всем удачи!»>

Схемы, устройства и проекты на микроконтроллерах AVR

В этой статье мы рассмотрим пожарную сигнализацию на микроконтроллере ATmega8 (семейство AVR) и датчике огня. Датчик огня может быть любого типа, мы в нашей схеме будем использовать инфракрасный датчик огня – он не отличается точностью, но зато он самый дешевый … Читать далее →

В этой статье мы подключим фоторезистор к микроконтроллеру ATmega8 (семейство AVR) и с его помощью будем измерять интенсивность света. Для этой цели мы будем использовать 10 битный аналого-цифровой преобразователь микроконтроллера (АЦП). Общие сведения о фоторезисторах Фоторезистор представляет собой преобразователь, чье … Читать далее →

В этой статье мы рассмотрим низкодиапазонный амперметр на микроконтроллере ATmega8 (семейство AVR). Для реализации этой идеи мы задействуем 10 битный аналого-цифровой преобразователь (АЦП) данного микроконтроллера. Для упрощения схемы используем резистивный метод, являющийся самым простым способом определения нужных нам параметров. В … Читать далее →

В этой статье мы рассмотрим процесс взаимодействия двух микроконтроллеров ATmega8 (семейство AVR) через последовательный порт. Взаимодействие будет осуществляться с помощью универсальных асинхронных приемопередатчиков (UART — Universal Asynchronous Receiver Transmitter), имеющихся в микроконтроллерах. Подобное взаимодействие часто бывает востребовано в различных системах. … Читать далее →

В этой статье мы рассмотрим сигнализацию на микроконтроллере ATmega8 (семейство AVR), основанную на анализе колебаний. Данную сигнализацию можно использовать для защиты от воров. Сигнализация основана на использовании датчика наклона (tilt sensor), внешний вид которого показан на следующем рисунке. Одним из … Читать далее →

В этой статье будет описано подключение джойстика к микроконтроллеру ATmega8 (семейство AVR), приведена схема подключения и код программы на языке C с комментариями к ней. Общие принципы работы джойстика Джойстик представляет собой модуль ввода, достаточно часто использующийся для коммуникаций. В … Читать далее →

В этой статье мы рассмотрим подключение и взаимодействие гибкого датчика (FLEX sensor) к микроконтроллеру ATmega8 (семейство AVR). Для решения этой задачи мы задействуем 10 битный аналого-цифровой преобразователь (АЦП), имеющийся в данном микроконтроллере. Что такое гибкий датчик? Гибкий датчик (FLEX sensor) … Читать далее →

В этой статье будет рассмотрена схема подключения углового кодера к микроконтроллеру AVR ATmega8 и приведена программа на языке C (с пояснениями), обеспечивающая взаимодействие этих устройств. Микроконтроллер ATmega8 (семейство AVR) был специально спроектирован для применения во встраиваемых приложениях (embedded applications). Принципы … Читать далее →

В этой статье мы рассмотрим схему для измерения расстояний, построенную с использованием ультразвукового датчика HC-SR04 и микроконтроллера ATmega32 (семейство AVR). Датчик HC-SR04 использует технологию под названием “ECHO” (эхо), то есть испускает ультразвуковой сигнал и потом анализирует отраженный от препятствий сигнал. … Читать далее →

В этой статье мы рассмотрим схему на микроконтроллере ATmega32A (семейство AVR), реализующую цифровой вольтметр с пределами измерений от 0 до 25В. Для этого мы задействуем 10-битный аналого-цифровой преобразователь (АЦП), имеющийся в данном микроконтроллере. Поскольку АЦП микроконтроллера ATmega32A не может на … Читать далее →

DDS генератор на ATmega16 — Микроконтроллеры и Технологии

Дата публикации: .

В этой статье рассматривается схемотехническое решение, устройство и конструкция DDS генератора (генератор с прямым цифровым синтезом формы сигнала) на микроконтроллере ATmega16 фирмы Atmel. В приборе, кроме синтеза сигнала различной формы и частоты, реализуется возможность регулировки амплитуды и смещения выходного сигнала.

Основные характеристики прибора:

— простое схемотехническое решение, доступные компоненты;
— односторонняя печатная плата;
— сетевой источник питания;
— специализированный выход частоты от 1 МГц до 8 МГц;
— DDS выход с регулировкой амплитуды и смещения;
— форма выходного DDS сигнала: синусоида, прямоугольные импульсы, пилообразные импульсы, треугольные импульсы, ЭКГ, шум;
— для отображения текущих параметров используется двухстрочный ЖК дисплей;
— пятикнопочная клавиатура;
— шаг перестройки частоты: 1, 10, 10, 1000, 10000 Гц;
— восстановление последней конфигурации при включении;
— регулировка смещения: –5 В … +5 В;
— регулировка амплитуды: 0 … 10 В;
— регулировка частоты: 0 … 65534 Гц.

За основу прибора, а точнее алгоритм работы микроконтроллера, была взята разработка DDS генератора Jesper Hansen. Предложенный алгоритм был немного переработан и адаптирован под компилятор WinAVR-GCC

Сигнальный генератор имеет два выхода: выход DDS сигнала и выход высокочастотного сигнала (1 – 8 МГц) прямоугольной формы, который может использоваться для «оживления» микроконтроллеров с неправильными установками Fuse-битов или для других целей.

Высокочастотный сигнал поступает непосредственно с микроконтроллера, с вывода OC1A (PD5). DDS сигнал формируется микроконтроллером с использованием цепочки резисторов R2R (ЦАП), регулировка смещения и амплитуды возможна благодаря использованию низкопотребляющего операционного усилителя LM358N.

Блок-схема DDS генератора

Как видно, для питания устройства необходимо три напряжения: +5 В, +12 В, –12 В. Напряжения +12 В и –12 В используются для аналоговой части устройства на операционном усилителе для регулировки смещения и амплитуды.

Принципиальная схема источника питания.

В источнике питания используются стабилизаторы напряжения LM7812, LM7805, LM7912 (стабилизатор отрицательного напряжения –12 В).

Принципиальная схема прибора

Рисунок печатной платы

Вид со стороны установки элементов

Блок-схема DDS генератора

Внешний вид платы с установленными компонентами

Блок-схема DDS генератора

Список использованных элементов

Обозначение
в схеме
Номинал
R1 470 Ом
R2, R6, R8, R10,
R12, R14, R16, R18
10 кОм
R3, R21 100 кОм
R4, R5, R7, R9, R11,
R13, R15, R17, R19
20 кОм
R20 100 Ом
R22 12 кОм
R23 150 Ом
POT1 Потенциометр 1 кОм
POT2 Потенциометр 47 кОм
POT3 Пдстроечный резистор 10 кОм
C1, С2 100 нФ
C3, С4 18 пФ
Q1 Кварцевый резонатор 16 МГц
IC1 Микроконтроллер Atmel ATMEGA16P
IC2 Операционный усилитель LM358N
BNC1 — BNC2 Коннектор типа BNC
S1 — S6 Кнопки
LCD Header 16-выводный коннектор
для подключения дисплея
LCD Module ЖК модуль на базе контроллера HD44780
ISP Коннектор 2×3 для внутрисхемного
программирования
POWER Коннектор для подключения питания
LED1 Светодиод зеленого цвета свечения, 3 мм
ON/OFF Миниатюрный выключатель

Изменения в программном обеспечении микроконтроллера

Изменения в исходном коде связаны лишь с назначением кнопок подключенных к порту D микроконтроллера:

1.Кнопки «влево» и «вправо»

#define LEFT 3  //PORTD 
#define RIGHT 1 //PORTD 

2.Кнопки «вниз» и «вверх»

#define DOWN 4 //PORTD 
#define UP 0   //PORTD 

Кроме того для последних версий компилятора AVR-GCC необходимо внести изменения в следующие строчки кода:

struct signal{
  volatile uint8_t mode;  //signal
  volatile uint8_t fr1;   //Frequency [0..7]
  volatile uint8_t fr2;   //Frequency [8..15]
  volatile uint8_t fr3;   //Frequency [16..31]
  volatile uint32_t freq; //frequency value
  volatile uint8_t flag;  //if 0 generator is OFF, 1 is ON
  volatile uint32_t acc;  //accumulator
  volatile uint8_t ON;
  volatile uint8_t HSfreq;     //high speed frequency [1...4Mhz]
  volatile uint32_t deltafreq; //frequency step value
}SG;

Fuse-биты микроконтроллера ATmega16: HIGH = 0×59, LOW = 0×CF – это соответствует тому, что будут запрограммированы следующие биты: OCDEN, SPIEN, BOOTSZ1, BOOTSZ2, SUT1, SUT0.

Источник: Радиолоцман


Архив для статьи «DDS генератор на ATmega16»
Описание: Исходный проект AVR GCC, схема и плата в формате Eagle
Размер файла: 168.74 KB Количество загрузок: 4 730 Скачать

Схемы, устройства и проекты на микроконтроллерах AVR

Сервомоторы (от англ. Servo Motor), которые еще называют следящими электродвигателями или серводвигателями, широко применяются в тех областях, в которых необходим точный контроль, таких как роботы, автоматизированное оборудование, роботизированные руки и т.п. Тем не менее рамки применения сервомоторов не ограничиваются только … Читать далее →

Интерес к GSM модулям возникает когда появляется потребность в удаленном управлении каким либо устройством. GSM модуль может выполнять все те же действия, какие может производить сотовый телефон: совершение и прием звонков, передача/прием SMS, соединение с интернетом при помощи технологии GPRS … Читать далее →

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

В этой статье мы рассмотрим подключение Bluetooth-модуля HC-05 к микроконтроллеру ATmega8 (семейство AVR), а затем установим связь между смартфоном под управлением операционной системы Android и микроконтроллером ATmega8 с помощью Bluetooth-модуля, который будет использовать для связи с микроконтроллером универсальный асинхронный приемопередатчик … Читать далее →

В данной статье мы рассмотрим проектирование текстового дисплея на основе светодиодной матрицы 8х8 под управлением микроконтроллера ATmega32 (семейство AVR), на котором будут прокручиваться буквы алфавита. Светодиодная матрица 8х8 содержит 64 светодиода, упорядоченных в форму матрицы. Мы сделаем эту матрицу путем … Читать далее →

Arduino представляет собой платформу разработки с открытым исходным кодом, предназначенную для инженеров и начинающих любителей электроники и позволяющую достаточно просто разрабатывать различные электронные проекты. Она состоит из физически программируемой платы (основанной на микроконтроллерах семейства AVR) и специализированного программного обеспечения или … Читать далее →

В этой статье мы рассмотрим подключение светодиодной матрицы 8х8 к микроконтроллеру ATmega8 (семейство AVR), на которой после этого можно отображать буквы алфавита. Типовая светодиодная матрица 8х8 показана на следующем рисунке. Светодиодная матрица 8х8 содержит 64 светодиода, которые упорядочены в форме … Читать далее →

В этой статье мы рассмотрим процесс взаимодействия микроконтроллера ATmega8 (семейство AVR) и платформой Arduino Uno через последовательный порт. Взаимодействие будет осуществляться через универсальный асинхронный приемопередатчик (UART — Universal Asynchronous Receiver Transmitter) – это последовательный порт связи. Подобное взаимодействие часто бывает … Читать далее →

В этой статье мы рассмотрим подключение оптопары к микроконтроллеру ATmega8 (семейство AVR). Оптопары представляют собой устройства, предназначенные для изоляции электронных и электрических схем. Это простое устройство может изолировать чувствительную электронику от «грубой» электроники такой, к примеру, как электродвигатели, при этом … Читать далее →

В этой статье мы рассмотрим схему простого будильника на микроконтроллере ATmega32 (семейство AVR). Для реализации этой идеи мы используем 16 битный таймер, присутствующий в данном микроконтроллере. Все цифровые часы имеют в своем составе кварцевый резонатор, который является их «сердцем». Кварцевые … Читать далее →

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *