8-900-374-94-44
[email protected]
Slide Image
Меню

Устройства на atmega8 – ATmega — Схемы радиолюбителей

Atmega8 — Меандр — занимательная электроника

Реле времени или, в современной терминологии, таймеры, широко используют для управления электроприборами, которые требуется включить или выключить через определённый промежуток времени. Однако простейшие операции типа «включить/выключить свет» — лишь малая часть области применения подобных устройств. Сегодня встроенные таймеры — практиче­ски обязательные элементы почти любой электронной аппарату­ры, а те, что выполнены как отдельные узлы, позволяют прово­дить …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/34952

Автор поставил перед собой задачу создать простое универсальное устройство для зарядки любых малогабаритных аккумуляторов и их батарей различных типов, ёмкости и номинального напряжения. Аккумуляторы сегодня очень распространены, но зарядные устройства для них, имеющиеся в продаже, как правило, не универсальны и слишком дороги. Предлагаемое устройство предназначено для зарядки аккумуляторных батарей и отдельных аккумуляторов (в дальнейшем используется …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/34074

Емкостной датчик — это такой вид датчиков, в которых для измерения уровня жидкости не используют механические элементы (поплавка нет!). Измеряется даже не сама жидкость, а диэлектрическая проницаемость вещества между электродами, которая прямо пропорциональна количеству жидкости между ними (или не очень прямо, в физику углубляться не будем). Без поплавка? Как это возможно? Вместо поплавка ставим две …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/33634

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

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/31340

Рассмотрим схему, представляющую собой дверной звонок (хотя применение может не ограничиваться этой сферой, просто основная задумка подразумевает именно дверной звонок). Но звонок не простой, а с возможностью проигрывать несколько различных аудио файлов в зависимости от нажатой кнопки. При этом одну из кнопок можно сделать тайной или спрятанной относительно основной кнопки дверного звонка. Идея такого финта …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/29777

meandr.org

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

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

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

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

 

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

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

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


Из чего же он состоит? «Сердцем» устройства является излюбленный посетителями данного сайта 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, прошивка, фузы

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


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

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


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

www.radiokot.ru

Универсальный измерительный прибор на микроконтроллере ATMega8

Омметр, измеритель ёмкости, осциллограф, генератор и частотомер — это функции которыми наделено устройство схемой которого я хочу с вами поделиться. Ведь такой универсальный измерительный прибор очень нужен в практике каждого радиоаматора. А собрать его не представляет особой сложности даже начинающим радиолюбителям.

Схема устройства

В основе схемы лежит  микроконтроллер фирмы ATMEL — ATMega8, который работает на частоте 16 МГц. Информация выводится на стандартный двухстрочный символьный индикатор (16 символов в строке).

Принципиальная схема универсального измерительного прибора на микроконтроллере ATMega8

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

Когда я увидел впервые эту схему, она купила меня своей простотой и многофункциональностью. Поскольку все детали у меня были в наличии, то я собрал этот прибор за один вечер. Уж сильно хотелось посмотреть как будет функционировать этот приборчик. Честно говоря, собирая его, я был настроен скептически. Не верил в высокую точность и в широкий интервал измерений емкости и сопротивления.  Но все же приятно был удивлен результатом. Устройство полностью соответствует указанному интервалу измерений с достаточно высокой точностью.

Функциональные возможности устройства

  • Наличие функции измерение частоты с возможностью изменения времени измерения и выводом значение частоты и длительности на дисплей;
  • Наличие функции генератора с возможностью изменение частоты во всем диапазоне с шагом 1-100 Гц и выводом значение частоты и длительности на дисплей;
  • Наличие функции осциллограф – позволяющей визуализировать форму сигнала и измерить его амплитудное значение;
  • Наличие функции измерения емкости позволяет измерять емкость во всем диапазоне;
  • Наличие функции измерения сопротивления позволяет измерят во всем диапазоне;
  • Наличие функции измерения напряжения в режиме осциллограф;
  • Наличие режима автокалибровки в режимах измерения емкости и измерения сопротивления;
  • Наличие входного универсального разъема для подключения кабеля для всех пяти режимов работы;
  • Наличие символьного дисплея с подсветкой размером 2 строки по 16 символов;
  • Наличие трех кнопок управления: «кнопка переключения режимов3»-3, «кнопка увеличения значения параметра»-1 и «кнопка уменьшения значения параметра»-2.

Технические характеристики устройства

  • Диапазон измерения частоты Гц 0.1-15000000;
  • Диапазон генерации частоты Гц 0-100000;
  • Количество точек по горизонтали для осциллографа Шт 16;
  • Количество точек вывода по вертикале для осциллографа Шт 8;
  • Диапазон чувствительности входа осциллографа В 0-5;
  • Диапазон измерения емкости мкФ 0.00001 – 2000;
  • Диапазон измерения сопротивления ОМ 1 — 200000000;
  • Напряжение питания В 5;
  • Рабочая температура 0 … +60ºС.

Порядок работы

Включить прибор на экране дисплея временно (1 Сек) появится сообщение «Измерение R» и прибор перейдет в режим измерения сопротивления. Переход из одного режима в другой осуществляется циклически при помощи кнопки переключения режимов «3» в порядке: «Измерение R», «Измерение С», «Осциллограф», «Генератор», «Частотомер». При переходе из режима в режим осуществляется кратковременная индикация названия режима. В режиме «Генератор» изменение частоты генерации происходит кнопками «1» — (увеличение частоты) и «2» (уменьшение частоты). В режиме «Осциллограф» кнопками «1» и «2» производится изменение времени развертки, измерение уровня сигнала происходит автоматически с индикацией его значения. В режимах «Измерение емкости» и «Измерение сопротивления» переключение диапазонов измерения происходит автоматически. Калибровка нуля в этих режимах происходит нажатием и удержанием кнопки «1»,с последующей записью в память кнопкой «2» и калибровка по номиналу 1000 ом или 1000пф нажатием и удержанием кнопки «2» с последующей записью в память кнопкой «1».

Изменение время измерения частоты осуществляется кнопкой «1», позволяющей измерять частоту с точностью до 0.1 Гц. Само время измерения (Сек) индицируется в крайнем правом знакоместе верхней строки.

Фото  устройства моей сборки:

Режим измерения сопротивления

Измерение емкости конденсаторов

Осциллограф

Генератор

Частотомер

Печатная плата внутри корпуса

При прошивке микроконтроллера фьюзы выставляем так:Дополнительные материалы (проверенная ппрошивка, печатная плата в формате .lay):

[hidepost]Скачать прошивку микроконтроллера
Скачать печатную плату  в формате .lay [/hidepost]

Для тех кто захочет повторить данное устройство выкладываю наклейку на переднюю панель прибора

Автор: Киричик С.

Возможно, вам это будет интересно:

meandr.org

На микроконтроллере — Схема-авто — поделки для авто своими руками

Тахометр применяется в автомобилях для измерения частоты вращения всяких деталей которые способны вращаться. Есть много вариантов таких устройств, я предложу вариант на  AVR микроконтроллере  ATmega8. Для моего варианта, вам также…

Эта цветомузыка, имея малый размер и питание 12В, как вариант может использоваться в авто при каких-либо мероприятиях. Первоисточник этой схемы Радио №5, 2013г А. ЛАПТЕВ, г. Зыряновск, Казахстан. Схема…

Позволяет управлять одной кнопкой раздельно обогревом заднего стекла и зеркал, плюс настраиваемый таймер отключения до полутора часов для каждого канала. Схема построена на микроконтроллере ATtiny13A. Описание работы:

Почти во всех автомобилях есть управление салонным светом, которое осуществляется с помощью бортового компьютера или отдельной бортовой системой. Свет включается плавно, и гаснет также с некой задержкой (для…

Представляю очень популярную схему автомобильной сигнализации на базе микроконтроллера ATmega8.  Такая сигнализация дает оповещение на мобильник админа в виде звонков или смс. Устройства интегрируется с мобильником с помощью…

Сделал новую версию моргающего стопака. Отличается алгоритм работы и схема управления, размер и подключение такое же. Возможно регулировать частоту моргания, длительность до перехода в постоянное свечение и скважность…

Эта поделка позволяет стробоскопить светодиодными ДХО. Поделка имеет малый размер, управление всего одной кнопкой, широкие возможности настройки. Размер платы 30 на 19 миллиметров. С обратной стороны расположен клемник…

Количества автомобилей с автоматическим стеклоподъемниками постоянно растет, и даже если в машине нет такого, многие делают его своими руками. Моей целю было собрать такое устройства и подключить его к…

Получился «побочный продукт»: нужно было оттестить режим работы датчика скорости для проекта отображения передач на матрице 5х7, для этого собрал небольшую схемку. Схемка умеет включать светодиоды в зависимости…

Тахометр измеряет частоту вращения деталей, механизмов и других агрегатах автомобиля. Тахометр состоит из 2-х основных частей — из датчика, который измеряет скорость вращения и из дисплея, где будет…

Спидометр это измерительное устройства, для определения скорости автомобиля. По способу измерения, есть несколько видов спидометра центробежные, хронометрические, вибрационные, индукционные, электромагнитные, электронные и напоследок спидометры по системе GPS.

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

Наверное многие видели, как включается и выключается салонный свет в иномарках… Плавно, красиво… Теперь и мы такое можем сделать! А мы это сделаем на микропроцессоре ATtiny13, просто, доступно и…

Эта поделка позволяет стробоскопить светодиодными ДХО. Поделка имеет малый размер, управление всего одной кнопкой, широкие возможности настройки. Схема сделана на микроконтроллере и не нуждается в настройках. Работает сразу…

Порой приходится ковыряться или сидеть в машине с открытой дверью. Что он попусту не горел, изготовлено реле — полная замена штатному, простому 5-ти контактному электромагнитному реле. Итак, реле,…

xn----7sbbil6bsrpx.xn--p1ai

Анатомия микроконтроллеров ATmega » Журнал практической электроники Датагор (Datagor Practical Electronics Magazine)

Здравствуйте, датагорцы!

После публикации моей первой статьи, меня завалили вопросами о микроконтроллерах, как, что, куда, почему…

Чтобы вы смогли разобраться, как этот чёрный ящик работает, я расскажу вам, о микроконтроллере (далее МК) ATmega8. В принципе фирма Atmel выпускает целую серию МК семейства AVR – это подсемейства Tiny и Mega. Я не буду расписывать достоинства тех или иных МК, это уж вам решать, что вам больше всего подходит.

Некоторые представители большой семьи:

Итак, ATmega8, самый простой МК из всех ATmega:

Начнем изучать внутренности по упрощенной структурной схеме:

Это обобщённая схема всех ATmega.

Все микроконтроллеры AVR построены по так называемой Гарвардской архитектуре, то есть использована раздельная адресация памяти программ и памяти данных. Преимущества этой архитектуры заключаются в повышенном быстродействии, например ATmega выполняет одну инструкцию за один тактовый импульс, то есть при частоте 16МГц МК выполняет 16 миллионов операций в секунду.

А теперь о требухе по порядку.
1. Тактовый генератор выполняет синхронизацию всех внутренних устройств.
2. ПЗУ – постоянное запоминающее устройство, используется для хранения программы и неизменяемых данных (констант).
3. Дешифратор команд – он тут самый главный, управляет всем, что ему под руку попадётся.
4. АЛУ – арифметико-логическое устройство, выполняет арифметические (сложение, вычитание и т.д.) и логические (И, ИЛИ, НЕ, Исключающее ИЛИ) операции над числами.
5. РОН – регистры общего назначения, ими АЛУ оперирует, а так же используются для временного хранения данных. Регистры РОН могут объединяться в регистровые пары:
r26 : r27 – X;
r28 : r29 – Y;
r30 : r31 – Z.

Регистровые пары используются для косвенной адресации данных в ОЗУ.
6. ОЗУ – оперативное запоминающее устройство, используется для хранения данных, массивов и стека.
7. PORTA-PORTn – связь с внешним миром, порты ввода/вывода, ну енто понятно для чего…
8. Спец. УВВ – специальные устройства ввода/вывода, контроллеры разной периферии, например USART (по другому СОМ-порт), иногда USB, АЦП, ЦАП, I2C, короче, чего только там нет…

Ну да это всё теория, а вам не терпится что-то склеить, попробовать, и чтобы енто дело работало! Тогда перечислим что нам нужно:

1. Программатор с соответствующим софтом, об этом я писал в прошлой статье;
2. Компилятор языка Си, Code Vision AVR, имеет неплохой инструментарий для разработки программ для МК;

Перед тем как начать программирование на Си, неплохо бы ознакомиться с какой-нибудь литературой по этому языку, например есть замечательная книга Кернигана и Ритчи «Язык С».

Ну да ладно, начнём…

Тестовая схема.

Давайте соберём такую схему:

Это будет базовая модель. Кстати схему лучше собрать на макетной плате, а МК сунуть в панельку. Но такая схема бессмысленна. Добавим, например, светодиод, и не забудем про токоограничивающий резистор. Подключим его к нулевому выводу порта В.
Схема будет иметь следующий вид:

Включим питание… НОЛЬ!!! А что вы хотели без программы?
Значит…

Пишем программу!

Итак, вы запустили CVAVR, что нужно сделать первым делом? Запускаем мастер Code Wizard AVR, нажав на кнопочку с шестерёнкой в панели инструментов, появится окно мастера:

Здесь выбираем тип МК и тактовую частоту. Далее переходим на вкладку Ports:

И настраиваем, какой бит какого порта у нас будет настроен на ввод или вывод, порт В бит 0 у нас будет выдавать сигнал, а остальные принимать.
Чтобы сохранить настройки выбираем меню File / Generate Save and Exit, вводим имена файлов на все последующие запросы, желательно чтобы они были одинаковые, ну например «prj». Всё, мы сгенерировали исходный текст программы с установками заданными в мастере.

Давайте посмотрим что у нас вышло. Первые 22 строки это комментарий, то есть на действия программы он не имеет никакого влияния, таким образом, всё, что находится между «/*» и «*/» является комментарием, и компилятор всё это дело игнорирует. В 24 сроке у нас подключается заголовочный файл, в нём описано как какие регистры называются и по какому адресу находятся. Для программирования на Си подробности здесь излишни.
С 28 строки у нас начинается основная программа определением функции main(),

Прокрутим ниже. Обратите внимание на строки 36 и 37, здесь присваивается значение порту В и выбирается направление передачи. Вообще наглядно это выглядит так:

То есть, если в какой-нибудь бит регистра DDRB записать единичку, то соответствующий бит порта В будет работать на вывод. В нашем случае это бит 0.
Кстати, у портов в ATmega есть одна приятная особенность, даже если порт настроен на ввод, а в регистр PORTx записать единички, то подключатся внутренние подтягивающие резисторы к плюсу питания, что исключает использование внешних навесных резисторов. Это удобно при подключении всяких датчиков и кнопок.

Скомпилируем программу, для этого нажмём кнопочку Make the Project, или через меню Project / Make. Ошибок быть не должно, если вы что-нибудь не подправили.

Откроем папку C:\cvavr\bin\, найдём там файл prj.hex. Это и есть скомпилированная нами программа для МК. Подключим программатор к ПК и МК. Запустим программу Pony Prog и перетащим в её окно файл prj.hex. Включите питание МК и залейте в него нашу программу… Опять ничего? А проблема в том что мы ничего на нулевой разряд порта В не вывели, вернее вывели, только это ноль. А чтобы наш светодиод загорелся, надо вывести единицу. Так и сделаем, заменим в 36 строке «PORTB=0x00;» на «PORTB=0x01;». Скомпилируем заново программу. А в программе Pony Prog перезагрузим файл при помощи сочетания клавиш Ctrl+L или меню File / Reload Files. Сотрём МК и снова зальём «прошивку» в него. УРА!!! ОНО РАБОТАЕТ!!!

Кстати, Pony Prog поддерживает скрипты, и чтобы не мучаться с перезагрузкой, стиранием и записью, можно просто написать скрипт с расширением .e2s, и обозвать его, например, prog.e2s. Сделать это можно с помощью блокнота. Содержимое у него будет такое:

SELECTDEVICE ATMEGA8
CLEARBUFFER
LOAD-ALL prj.hex
ERASE-ALL
WRITE-ALL

Поместить скрипт следует в одну папку с .hex-файлом, и запускать его двойным щелчком мыши. Можно поместить ярлык на рабочий стол, это уж кому как удобно…

Продолжение следует…

Александр (alx32)

Ульяновск

Я простой электрик

 

datagor.ru

Зарядное устройство-тестер аккумуляторов на Atmega8

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

Это устройство предназначено для измерения ёмкости аккумуляторов Li-ion и Ni-Mh , а также для заряда Li-ion аккумуляторов с выбором начального тока заряда.

Управление

Подключаем устройство к стабилизированному блоку питания 5в и током 1А (например от сотового телефона). На индикаторе в течении 2 сек отображается результат предыдущего измерения емкости "ххххmA/c" а на второй строке значение регистра   OCR1A "S.xxx". Вставляем аккумулятор. Если нужно зарядить аккумулятор то кратко жмём кнопку ЗАРЯД, если нужно измерить ёмкость то кратко жмём кнопку ТЕСТ. Если нужно изменить ток заряда (значение регистра  OCR1A) то долго(2 сек) жмем кнопку ЗАРЯД. Заходим в окно регулировки регистра. Отпускаем кнопку. Кратко нажимая на кнопку ЗАРЯД меняем по кругу значения (50-75-100-125-150-175-200-225) регистра, в первой строке показывается ток заряда пустого аккумулятора при выбранном значении (при условии что у вас в схеме стоит резистор 0,22 Ом). Кратко жмём кнопку ТЕСТ значение  регистра OCR1A запоминаются в энергонезависимой памяти.
Если вы проделывали разные манипуляции с устройством и вам надо сбросить показания часов, измеренной ёмкости то долго жмём кнопку ТЕСТ (значение  регистра OCR1A не сбрасываются). Как только заряд окончен подсветка дисплея отключается, для включения подсветки кратко нажмите кнопку ТЕСТ или ЗАРЯД.

Логика работы устройства следующая:

При подаче питания, на индикаторе отображается результат предыдущего измерения ёмкости аккумулятора и значение  регистра OCR1A, хранящееся в энергонезависимой памяти. Через 2 секунды устройство переходит в режим определения типа аккумулятора по величине напряжения на клемах.

Если напряжение более 2В то это Li-ion аккумулятор и напряжение полного разряда составит 2,9В, иначе это Ni-MH аккумулятор и напряжение полного разряда составит 1В. Только после подключения  аккумулятора доступны кнопки управления. Далее устройство ожидает нажатия кнопок Тест или Заряд. На дисплее отображается "_STOP". При нажатии кратко кнопки Тест подключается нагрузка через MOSFET.

Величина тока разряда определяется по напряжению на резисторе 5,1Ом и, каждую минуту суммируется с предыдущим значением. В устройстве используется кварц 32768Гц для работы часов.

На дисплее отображается текущая величина емкости аккумулятора "ххххmA/c" и тора разряда "А.ххх", а также время "хх:хх:хх"с момента нажатия кнопки. Показывается также анимированный значок разряда аккумулятора. По окончании теста для Ni-MH аккумулятора появляется надпись "_STOP", результат измерения отображается на дисплее "ххххmA/c" и запоминается.

Если аккумулятор Li-ion, то также результат измерения отображается на дисплее "ххххmA/c" и запоминается, но сразу включается режим заряда. На дисплее отображается содержимое регистра   OCR1A "S.xxx". Показывается также анимированный значок заряда аккумулятора.

Регулировка тока заряда осуществляется с помощью ШИМ и ограничивается резистором 0,22Ом. Апаратно ток заряда можно уменьшить увеличив сопротивление 0,22Ом до 0,5-1Ом. В начале заряда ток плавно нарастает до значения регистра OCR1A или до достижения напряжения на клемах аккумулятора 4,22В (если аккумулятор был заряжен).

Величина тока заряда зависит от значения регистра OCR1A - больше значение - больше ток заряда. При превышении напряжения на клемах аккумулятора 4,22В значение регистра OCR1A уменьшается. Процесс дозаряда продолжается до величины регистра OCR1A равного 33, что соответствует току около 40 mA. На этом заряд заканчивается. Подсветка дисплея отключается.

Настройка

1. Подключаем питание.
2. Подключаем аккумулятор.
3. Подключаем вольтметр к аккумулятору.
4. Временными кнопками + и - (PB4 и PB5)добиваемся совпадения показания вольтметра на дисплее и на эталонном вольтметре.
5. Длительно нажимаем на кнопку ТЕСТ (2 сек), происходит запоминание.
6. Извлекаем аккумулятор.
7. Подключаем вольтметр к резистору 5,1Ом (по схеме около транзистора 09N03LA).
8. Подключаем регулируемый БП к клемам аккумулятора , выставляем на БП 4В.
9. Нажимаем кратко кнопку ТЕСТ.
10. Измеряем напряжение на резисторе 5,1Ом - U.
11. Высчитываем ток разряда I=U/5,1
12. Временными кнопками + и - (PB4 и PB5) устанавливаем на индикаторе"А.ххх" рассчитанный ток разряда I.
13. Длительно нажимаем на кнопку ТЕСТ (2 сек), происходит запоминание.

Устройство питается от стабилизированного источника напряжением 5 Вольт и током 1А. Кварц на 32768Гц предназначен для точного отсчета времени. Контроллер ATmega8 тактируется от внутреннего генератора частотой 8 МГц, также необходимо установить защиту от стирания EEPROM соответствующими битами конфигурации. При написании управляющей программы были использованы обучающие статьи с данного сайта.

Текущие значения коэффициентов напряжения и тока (Ukof . Ikof) можно увидеть если подключить дисплей 16х4 (16х4 предпочтительно для отладки) на третьей строке. Или в Ponyprog если открыть файл прошивки EEPROM (считать с контроллера EEPROM).
1 байт - OCR1A , 2 байт - I_kof, 3 байт - U_kof,  4 и 5 байт результат предыдущего измерения емкости.

Видео работы прибора:

Автор: Гапонов Сергей


Архив для статьи "Зарядное устройство/тестер аккумуляторов на Atmega8"
Описание: Проект AVRStudio 6
Размер файла: 60.56 KB Количество загрузок: 2 482 Скачать

radioparty.ru

Зарядное устройство-тестер аккумуляторов на Atmega8

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

Это устройство предназначено для измерения ёмкости аккумуляторов Li-ion и Ni-Mh , а также для заряда Li-ion аккумуляторов с выбором начального тока заряда.

Управление

Подключаем устройство к стабилизированному блоку питания 5в и током 1А (например от сотового телефона). На индикаторе в течении 2 сек отображается результат предыдущего измерения емкости "ххххmA/c" а на второй строке значение регистра   OCR1A "S.xxx". Вставляем аккумулятор. Если нужно зарядить аккумулятор то кратко жмём кнопку ЗАРЯД, если нужно измерить ёмкость то кратко жмём кнопку ТЕСТ. Если нужно изменить ток заряда (значение регистра  OCR1A) то долго(2 сек) жмем кнопку ЗАРЯД. Заходим в окно регулировки регистра. Отпускаем кнопку. Кратко нажимая на кнопку ЗАРЯД меняем по кругу значения (50-75-100-125-150-175-200-225) регистра, в первой строке показывается ток заряда пустого аккумулятора при выбранном значении (при условии что у вас в схеме стоит резистор 0,22 Ом). Кратко жмём кнопку ТЕСТ значение  регистра OCR1A запоминаются в энергонезависимой памяти.
Если вы проделывали разные манипуляции с устройством и вам надо сбросить показания часов, измеренной ёмкости то долго жмём кнопку ТЕСТ (значение  регистра OCR1A не сбрасываются). Как только заряд окончен подсветка дисплея отключается, для включения подсветки кратко нажмите кнопку ТЕСТ или ЗАРЯД.

Логика работы устройства следующая:

При подаче питания, на индикаторе отображается результат предыдущего измерения ёмкости аккумулятора и значение  регистра OCR1A, хранящееся в энергонезависимой памяти. Через 2 секунды устройство переходит в режим определения типа аккумулятора по величине напряжения на клемах.

Если напряжение более 2В то это Li-ion аккумулятор и напряжение полного разряда составит 2,9В, иначе это Ni-MH аккумулятор и напряжение полного разряда составит 1В. Только после подключения  аккумулятора доступны кнопки управления. Далее устройство ожидает нажатия кнопок Тест или Заряд. На дисплее отображается "_STOP". При нажатии кратко кнопки Тест подключается нагрузка через MOSFET.

Величина тока разряда определяется по напряжению на резисторе 5,1Ом и, каждую минуту суммируется с предыдущим значением. В устройстве используется кварц 32768Гц для работы часов.

На дисплее отображается текущая величина емкости аккумулятора "ххххmA/c" и тора разряда "А.ххх", а также время "хх:хх:хх"с момента нажатия кнопки. Показывается также анимированный значок разряда аккумулятора. По окончании теста для Ni-MH аккумулятора появляется надпись "_STOP", результат измерения отображается на дисплее "ххххmA/c" и запоминается.

Если аккумулятор Li-ion, то также результат измерения отображается на дисплее "ххххmA/c" и запоминается, но сразу включается режим заряда. На дисплее отображается содержимое регистра   OCR1A "S.xxx". Показывается также анимированный значок заряда аккумулятора.

Регулировка тока заряда осуществляется с помощью ШИМ и ограничивается резистором 0,22Ом. Апаратно ток заряда можно уменьшить увеличив сопротивление 0,22Ом до 0,5-1Ом. В начале заряда ток плавно нарастает до значения регистра OCR1A или до достижения напряжения на клемах аккумулятора 4,22В (если аккумулятор был заряжен).

Величина тока заряда зависит от значения регистра OCR1A - больше значение - больше ток заряда. При превышении напряжения на клемах аккумулятора 4,22В значение регистра OCR1A уменьшается. Процесс дозаряда продолжается до величины регистра OCR1A равного 33, что соответствует току около 40 mA. На этом заряд заканчивается. Подсветка дисплея отключается.

Настройка

1. Подключаем питание.
2. Подключаем аккумулятор.
3. Подключаем вольтметр к аккумулятору.
4. Временными кнопками + и - (PB4 и PB5)добиваемся совпадения показания вольтметра на дисплее и на эталонном вольтметре.
5. Длительно нажимаем на кнопку ТЕСТ (2 сек), происходит запоминание.
6. Извлекаем аккумулятор.
7. Подключаем вольтметр к резистору 5,1Ом (по схеме около транзистора 09N03LA).
8. Подключаем регулируемый БП к клемам аккумулятора , выставляем на БП 4В.
9. Нажимаем кратко кнопку ТЕСТ.
10. Измеряем напряжение на резисторе 5,1Ом - U.
11. Высчитываем ток разряда I=U/5,1
12. Временными кнопками + и - (PB4 и PB5) устанавливаем на индикаторе"А.ххх" рассчитанный ток разряда I.
13. Длительно нажимаем на кнопку ТЕСТ (2 сек), происходит запоминание.

Устройство питается от стабилизированного источника напряжением 5 Вольт и током 1А. Кварц на 32768Гц предназначен для точного отсчета времени. Контроллер ATmega8 тактируется от внутреннего генератора частотой 8 МГц, также необходимо установить защиту от стирания EEPROM соответствующими битами конфигурации. При написании управляющей программы были использованы обучающие статьи с данного сайта.

Текущие значения коэффициентов напряжения и тока (Ukof . Ikof) можно увидеть если подключить дисплей 16х4 (16х4 предпочтительно для отладки) на третьей строке. Или в Ponyprog если открыть файл прошивки EEPROM (считать с контроллера EEPROM).
1 байт - OCR1A , 2 байт - I_kof, 3 байт - U_kof,  4 и 5 байт результат предыдущего измерения емкости.

Видео работы прибора:

Автор: Гапонов Сергей


Архив для статьи "Зарядное устройство/тестер аккумуляторов на Atmega8"
Описание: Проект AVRStudio 6
Размер файла: 60.56 KB Количество загрузок: 2 482 Скачать

radioparty.ru

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

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