В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

Программа для лабораторного блока питания с микропроцессорным управлением на ATMega16

📆24 мая 2012   ✒️Freeflyer   🔎21.124   💬0  
Программа для лабораторного блока питания с микропроцессорным управлением на ATMega16

Обещанный релиз первого варианта "правильной" программы к статье Сделай сам лабораторный блок питания с микропроцессорным управлением на ATMega16. Вторая жизнь Back-UPS.

Про лицензию

Это свободная программа; вы можете повторно распространять ее и/или модифицировать ее в соответствии с Универсальной Общественной Лицензией GNU. Я уверен, что в Датагории исключительно разумные жители, для которых дальнейший юридическо-образный текст не более чем констатация того состояния дел, как оно должно бы быть, так что скрытый текст можно не читать и переходить сразу к более интересному следующему разделу.
 GNU


Описание программы:

Я написал программу (условное название Power_Man, в честь первого донора запчастей для блока питания) в среде программирования Lazarus версии 0.9.30.4 на языке программирования Free Pascal. Данная среда программирования распространяется сайтом //www.lazarus.freepascal.org по лицензии GNU GPL, т.е. без особых ограничений по использованию и распространению.

Lazarus - это Delphi-подобная интегрированная среда разработки для создания графических и консольных приложений при помощи компилятора Free Pascal. Free Pascal - это компилятор языков Pascal и Object Pascal, работающий под Windows, Linux, Mac OS X, FreeBSD, и другими ОС.

Lazarus позволяет разрабатывать программы для всех вышеперечисленных платформ в Delphi-подобном окружении. Эта среда разработки является инструментом RAD, включающим в себя дизайнер форм.

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

Бинарный код программы Power_Man.exe скомпилирован для работы в операционной системе MS Windows (c), однако при минимальных изменениях в исходном коде (касающихся наименования COM-портов в разных ОС) ее можно перекомпилировать для всех вышеперечисленных платформ.

Данная версия программы 0.0.1 носит ознакомительно-информативный характер, и я рассматриваю ее как декларацию о намерениях. Полное и безошибочное выполнение всех заявленных характеристик я не гарантирую. Предложения по дополнению функционала приветствую и рассмотрю. Я надеюсь, что весь этот проект будет жить как развивающийся и уточняющийся поиск единственно правильного решения, и надеюсь на интерес и участие в дополнении проекта. Так что, если Вы вдруг изменили код программы с целью устранения какой-либо ошибки, или дополнили функционал, я прошу Вас сообщить мне об этом через личное сообщение на сайте datagor.ru с указанием выявленной проблемы или описанием дополнения, и замен/дополнений в исходном тексте программы. Таким образом я надеюсь поддерживать какую-то целостность проекта.

Интерфейс

программы состоит из двух окон: главного окна, содержащего графики изменения величин тока и напряжения, измеряемых блоком питания, органы управления для установки величин тока и напряжения в блоке питания, средства для элементарного программирования поведения блока питания при проведении таких операций как тренировка и зарядка аккумуляторов различных типов, измерение Вольт-амперных характеристик, емкости аккумуляторов, сохранения измеренных данных в файл для дальнейшей обработки и анализа, настройки взаимодействия с COM-портом.
Дополнительное окно содержит числовую информацию о наиболее важных текущих параметрах работы блока питания: текущем напряжении и токе на выходе блока питания и производных этих величин.

Организация главного меню:
Файл->Сохранить — Данная команда позволяет сохранить измеренные данные, хранящиеся во временном файле temp.txt в заданный пользователем файл. Сам файл temp.txt формируется при активации команды Аппарат->Подключить, и заполняется во время работы программы и в случае непредвиденных сбоев дает возможность вручную восстановить данные.
Аппарат->Подключить — Данная команда проводит настройку СОМ-порта компьютера (задает скорость, количество бит, четность и прочие настройки) и запускает процедуру получения данных с блока питания и управления блоком. Номер COM-порта программа узнает из настройки «СОМ-порт» с вкладки настройки.
Протокол->Новый — Данная команда очищает таблицу протокола
Протокол->Открыть — Данная команда загружает предварительно составленный и сохраненный протокол из файла.
Протокол->Сохранить — Данная команда сохраняет предварительно составленный протокол в файл.

Ниже главного меню расположены настройки ограничений тока и напряжения. Для передачи настройки в блок питания надо после редактирования настройки нажать Enter. Только в этом случае в блок будет отправлена соответствующая команда «i=» или «u=». Кнопка «Сохранить в EEPROM» отправляет в блок команду «store».

Организация вкладок главного окна:


Вкладка Графики содержит два поля для графиков зависимости тока и напряжения от времени. На графиках зеленой линией отображаются реально измеренные величины, красной — заданные для данных моментов времени ограничения тока и напряжения.

Вкладка Протокол содержит средства для элементарного программирования динамического поведения блока питания.

Вкладка Настройки содержит настройки номера COM-порта, интервала обмена с блоком питания и замечания относительно лицензии.

Протоколы

никакого отношения к документообороту сотрудников МВД не имеют. Это всего лишь средство простого программирования поведения блока питания. Идея организации взята мной из софта, который я использую для проведения электрофизиологических экспериментов на одиночных нервных клетках.

Протокол представляет собой набор следующих друг за другом установок ограничения тока и напряжения, организованных в циклически повторяющиеся «Прогоны», состоящие, в свою очередь, из «шагов». Настройка шагов организована в виде таблицы, по строкам которой расположены различные параметры шагов, а в столбцах настройки для конкретного номера шага.
Каждый шаг включает в себя набор следующих настроек:
Тип шага — задает форму изменения установок тока и напряжения (ступенька или пила) или признак завершения прогона (Пусто). При установке ступенька установки тока и напряжения вступают в силу вначале шага и действуют постоянно в течении всего данного шага. При установке пила установки тока и напряжения линейно изменяются в течении всего шага от установок предыдущего шага до достижения установок данного шага в конце данного шага. Таким образом можно просканировать некоторый диапазон значений тока или напряжения за один шаг.
Напряжение (В) — задает установки ограничения напряжения для данного шага.
Ток (А) — задает установки ограничения тока для данного шага.
Интервал (мин) — задает промежуток времени в течение которого будет выполняться данный шаг. Переход к следующему шагу возможен и по выполнению условий, заданных настройками Условие перехода и Значение перехода. Однако расчет скоростей изменения установок тока и напряжения при типе шага «пила» происходит именно с учетом данной настройки. Сочетание типе шага «пила» с условием перехода отличным от «Время» может привести к непредсказуемому поведению программы!
Шаг напряжения (В) — задает шаг изменения параметра Напряжение (В) при переходе от одного прогона к другому. Например, если заданы значения Напряжение (В) = 0, Шаг напряжения (В)=1, Число прогонов=11, то на первом прогоне будет установлено напряжение 0В, на втором — 1В, и так далее до 10В на последнем 11-м прогоне. Таким образом на каждом прогоне можно установить линейно изменяющуюся характеристику.
Шаг тока (A) — задает шаг изменения параметра Ток (А) при переходе от одного прогона к другому.
Шаг интервала (мин) — задает шаг изменения параметра Интервал (мин) при переходе от одного прогона к другому. Таким образом на каждом прогоне можно задать увеличивающееся(уменьшающееся) время выполнения данного шага.
Условие перехода — задает условие перехода к следующему шагу (прогону, если тип следующего шага равен «Пусто»). Допустимые условия: "Время", "V>", "V", "I", "dV", "dI<". Это позволяет реализовать условный способ перехода к следующему шагу протокола. Например, при зарядке кислотного аккумулятора 12В емкостью 7Ач можно задать Напряжение (В) = 14,4В, Ток (А) = 0,7А, Условие перехода I<, Значение перехода = 0,3. При этом аккумулятор будет заряжаться постоянным током 0,7А до достижения напряжения 14,4В, далее напряжение стабилизируется и зарядный ток будет уменьшаться, и когда достигнет 0,3А шаг закончится, прогон переместится на следующий шаг. При необходимости разрядки свинцового аккумулятора 12В 7Ач до напряжения 12В можно параллельно к аккумулятору подключить резистор 20 Ом и составить такой 1-й шаг: Напряжение (В) = 14,4В, Ток (А) = 0А, Условие перехода V<, Значение перехода = 12,1. 2-й шаг: Напряжение (В) = 13,8В, Ток (А) = 1А, Интервал (мин) = 900. В этом случае аккумулятор разрядится через резистор до напряжения 12В и затем перейдет в режим буферной зарядки. В случае зарядки NiMH аккумуляторов с помощью Условие перехода dV< можно отловить окончание зарядки по дельте напряжения.
Значение перехода — задает пороговое значение для предыдущей настройки условного перехода.
Слева от таблицы настройки шагов расположен график изменения установок для предварительного просмотра формируемого протокола.
Программа для лабораторного блока питания с микропроцессорным управлением на ATMega16

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

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

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

Файлы:

Архив с программой и исходниками
🎁Power_Man_0_0_1.7z  3.42 Mb ⇣ 222

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрили 12 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Идея пин-стикеров для чипов на примере контроллера ATmega16... Перевод с английского. Автор Мирослав Батек из Праги (Чехия). Если вы занимаетесь изучением...
Схема на Датагоре. Новая статья Лабораторный блок питания с микропроцессорным управлением на ATMega16 из старого Back-UPS... Что такое «Back-UPS»? С точки зрения самодельщика — это прочный корпус и мощный блок питания...
Схема на Датагоре. Новая статья Компиляция hex-файлов прошивки из отредактированных исходников в «mikroC PRO for PIC»... Привет, камрады-датагорцы! После опубликования моей статьи «Автомат управления бойлером Ariston....
Схема на Датагоре. Новая статья TEA5767.pdf - стерео FM приёмник с МК управлением... TEA5767 - стерео FM приёмник с МК управлением Даташит TEA5767.pdf :...
Схема на Датагоре. Новая статья WinDjView v.2.0.2... Доступна обновленная версия v.2.0.2., есть поддержка всех распространённых версий Windows (8, 7,...
Схема на Датагоре. Новая статья Использование МК ATMega163, ATMega163L, ATMega16 в Arduino IDE... Популярная среда разработки Arduino IDE привлекает большим количеством готовых библиотек и...
Схема на Датагоре. Новая статья Transformer: программа расчета маломощного (до 500 Вт) силового трансформатора на частоте 50 Гц... Предлагаю начинающим очень простую программулину для расчета силовых трансформаторов. Автор...
Схема на Датагоре. Новая статья Astroburn Lite. Простая бесплатная программа для записи CD, DVD и Blu-ray дисков... Лучший выбор для тех, кто хочет иметь быструю и легкую в использовании программу с необходимыми...
Схема на Датагоре. Новая статья RusTV Player - программа для просмотра более 300 TV-каналов онлайн... Я встретил в Сети интересную программку RusTV Player Артура Каримова из г. Омск. Это программа для...
Схема на Датагоре. Новая статья Elect_60: программа микроконтроллерного управления внешними устройствами от ПК... Многие наши коллеги желающие создать микроконтроллерное устройство, управляемое от ПК сталкиваются...
Схема на Датагоре. Новая статья Coil32 v9.0 - программа для расчета катушек индуктивности... Всем, кто занимался изготовлением (и ремонтом) приемников, передатчиков, акустических систем, ИБП,...
Схема на Датагоре. Новая статья Универсальный контроллер управления 7-сегментными LED индикаторами по двум проводам (Atmega16)... Занялся я конструированием нового устройства и встал вопрос — на чем отображать данные....
 

Комментарии, вопросы, ответы, дополнения, отзывы

 

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой