Зарядное устройство для аккумуляторов aaa на arduino. Беспроводная зарядка на Arduino своими руками. Результат испытаний опытных образцов

Во всероссийской олимпиаде школьников примут участие 6 млн учеников от 10 до 18 лет. Это почти 60 процентов всех учащихся. Олимпиада проводится по 24 предметам, включая испанский, итальянский, китайский языки, которые появились в расписании совсем недавно.

Дальнейшее языковое расширение перечня мы пока не планируем. В этом году есть еще одно новшество: в четвертых классах пройдет олимпиада по русскому языку и математике, - рассказала министр образования и науки Ольга Васильева. - Почему именно по этим предметам? Здесь более подготовлены задания, яснее методическая проработка.

Ольга Васильева напомнила, что олимпиадное движение началось в России в ХIХ веке с состязания по астрономии.

Олимпиада прошла удачно. В 1934 году состоялась олимпиада по математике, в 1938 году - олимпиада по химии, в 1965 году появились олимпиады по другим предметам, в том числе по истории и литературе, - пояснила министр.

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

Российские команды всегда привозят с международных олимпиад призовые места и золотые медали. Самые успешные для нас физика и математика. В этом году наши школьники привезли четыре золотые медали с Международной олимпиады по физике в Цюрихе и столько же золотых медалей с Международной математической олимпиады в Гонконге. Всегда бывают золотые медали у российской команды на международных олимпиадах по астрономии. Например, в 2013 году их было даже три.

Инфографика "РГ". Фото:

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

На вопрос журналистов не пора ли в России - космической державе вернуть уроки астрономии в школу, министр Ольга Васильева ответила так: "Астрономию надо преподавать в школе, сомнений нет. Возврат будет точно. Мы сейчас думаем о том, как это сделать".

Астрономию надо преподавать в школе, сомнений нет. Возврат будет точно

А вот начальной военной подготовки (НВП) в школьном расписании не появится. По словам министра, все те навыки, которые раньше давали школьникам на НВП, есть в курсе основ жизнедеятельности. Кроме разве что задания собрать или разобрать автомат Калашникова.

Что касается ЕГЭ, в том числе по базовой математике, которая вызывает у многих школьников сложности, Ольга Васильева высказала свое мнение:

Мое глубочайшее убеждение - любому школьнику нужна предметная база по каждой дисциплине. Базовую математику ученики сдают и будут сдавать все.

При этом школы, по словам министра, не оцениваются и не должны оцениваться по ЕГЭ. Между тем рейтинги многих школ сегодня составляются с опорой на два главных показатели - итоги олимпиад и ЕГЭ. Но есть и другой подход. Одно из крупных рейтинговых агентств в этом году составило список топовых школ России, опираясь на данные о том, в какие вузы поступила большая часть выпускников. Для анализа были взяты университеты из топ-20 одного из рейтингов вузов.

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

Инфографика "РГ". Фото: Леонид Кулешов / Ирина Ивойлова

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

"Раньше в школах этот предмет был час в неделю. Даже сомнений нет, что этот час должен вернуться", - сказала Васильева, слова которой приводит ТАСС. Глава Минобрнауки не смогла ответить на вопрос, когда именно астрономия снова окажется в расписании уроков, но заверила, что это точно произойдет.

Глава департамента госполитики в сфере общего образования Минобрнауки Анастасия Зырянова на пресс-конференции напомнила, что астрономия из базисного плана школьной программы исчезла в 1991 году, передает РИА "Новости" . Она напомнила, что при этом остались астрономические кружки, а во многих школах раздел астрономии проходят на уроках по физике.

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

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

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

В октябре прошлого года предшественник Васильевой, бывший глава Минобрнауки Дмитрий Ливанов заявил, что министерство не планирует возвращать астрономию в школьный курс.

Напомним, Ольга Васильева, ранее занимавшая пост заместителя начальника управления администрации президента по общественным проектам, была назначена на должность министра образования 19 августа. Выступая перед журналистами на следующий день после назначения, Васильева заявила о необходимости совершенствования подготовки к ЕГЭ и его сдачи. В середине сентября министр предложила сократить количество линеек учебников в начальных классах, а также заверила, что оценки в российских школах отменять не будут.

Не только интересный, но и полезный в быту проект для Arduino представила в своем блоге комманда Electro-Labs. В этом проекте был разработан программируемый шилд для Arduino, который выполняет функцию зарядного устройства для литиевых аккумуляторных батарей. Шилд включает в себя LCD дисплей и кнопочный интерфейс, позволяющий пользователю регулировать напряжение от 2В до 10В и ток от 50мА до 1,1А. Также устройство обеспечивает возможность контролировать процесс зарядки.

Шилд основан на микросхеме LT1510 и управляется Arduino Uno. В качестве дисплея используется простой и доступный Nokia 5110 LCD. Он подключается по SPI интерфейсу и питается от напряжения 3,3В. Так как I/O пины arduino работают на 5В, то подключать LCD модуль рекомендуется через резисторы, включенные последовательно в сигнальные линии. Для подключения Li-Ion батарей доступно два разъема. Четыре кнопки управления подключены к пинам A2-A5 Arduino. Напряжение на аккумуляторе и ток зарядки контролируются через аналоговые пины A0 и A1. Детали аналого-цифрового преобразования объяснены в исходном коде проекта. Два SMD светодиода используются для индикации работы устройства.

Принципиальная схема проекта была разработана в SoloCapture из пакета SoloPCBtools. Шилд может работать, без управления микроконтроллером. Когда в Arduino не прошита программа, зарядное устройство, по умолчанию, имеет напряжение отсечки 4,2В и максимальный ток зарядки 1,1А. Печатная плата спроектирована в SoloPSB. Проект печатной платы и саму программу SoloPSB можно скачать с сайта electro-labs.com . Размеры шилда подобраны для его расположения на Arduino Uno. Светодиоды, кнопочный интерфейс, LCD-дислей и разъемы для аккумуляторов для удобства расположены сверху. Все остальные элементы разположены с обратной стороны шилда.

LCD-дислей запрограммирован на показ четырех страниц, которые позволяют пользователю ввести параметры зарядки и контролировать ее процесс. На первой странице пользователь может задать напряжение отсечки и максимальный ток заряда, перейти к странице состояния аккумулятора и начать зарядку. Кнопки вверх и вниз используются для перехода между опциями, а вправо и влево — для изменения параметров и выбора опций. Вторая страница показывает состояние аккумулятора. В ней можно посмотреть текущее напряжение на аккумуляторе. Третья страница показывает напряжение и ток зарядки. Левой или правой кнопкой в этой странице можно остановить процесс зарядки и вернуться на страницу задания параметров. Когда напряжение аккумуляторе достигает заданного значения, зарядное устройство останавливается и показывает сообщение «Charge Complete». Для выхода необходимо нажать клавишу влево.

Arduino PWM контроллер солнечной зарядки
Как сделать очень маленький, простой и дешевый ШИМ - контроллер солнечной зарядки с Arduino Pro Mini для 12V вне сетки установок. Размер печатной платы совпадает с размером Pro миниплаты, так что они могут быть зажаты вместе. PCB планы для универсального прототипа борту.

Подключение и использование этого Arduino контроллера солнечного заряда очень просто - есть 2 входных провода от панели солнечных батарей (+ и -) и 2 выхода приводит идти к свинцово-кислотной батарее. Основание панели солнечных батарей и батареи соединены вместе. Любой груз должен быть подключен непосредственно на клеммах аккумулятора и контроллера заряда будет автоматически обрабатывать остальное.

Arduino регулярно измеряет напряжение батареи свинца и кислоты в соответствии с определенным значением, переключает на МОП-транзистор для зарядки аккумулятора от солнечной панели и переключатели МОП-транзистор выключается, когда батарея полностью заряжена. Когда нагрузка тянет энергию от батареи, контроллер обнаруживает падение напряжения и сразу же начинает снова зарядить аккумулятор. В течение ночи, когда солнечная панель перестанет производить, контроллер ждет, пока панель снова не начнет выводить.


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

Схема и функции Описание:

Функция основана на N-канальный МОП - транзистор IRF3205 в высокой стороне цепи. Это требует напряжения затвора выше, чем 12 В, чтобы открыть МОП - транзистор правильно. Для того, чтобы исключить необходимость внешнего драйвера MOSFET, он приводится в движение заряда насоса, созданного с диодами, 2 конденсаторов и двух выходных выводов Arduino ШИМ (3 и 11). Pin A1 измеряет напряжение аккумуляторной батареи и пин - код 9 управляет MOSFET ON / OFF цикла. Arduino Pro Mini интегрированные светодиодные подключен к контакту 13 используется, чтобы показать текущий цикл ШИМ - сигнала.

Регулятор напряжения и все конденсаторы вокруг (C6, C5 и C4) могли бы быть исключены, поскольку есть регулятор включен в Arduino Pro Mini. Тем не менее, потому что я использовал дешевый клон доска, я не хочу, чтобы рассчитывать на его способности поддерживать более высокие напряжения, чем 12В в течение более длительных периодов времени. LP2950 очень дешево и эффективно до 30 вольт, так что стоит иметь его на борту в любом случае.


Список деталей: Регулятор напряжения с низким энергопотреблением LP2950ACZ-5.0 Транзисторы 2N3904 2N3906 х 2 N-канальный МОП-транзистор IRF3205 Резисторы 82K (1%) 20K (1%) 220K x3 (0,4W достаточно) 4K7 (0,4W достаточно) Диоды 1N4148 х 5 P6KE33CA 90SQ035 (или любой подобный диод Шоттки 35V минимальной 9А) Конденсаторы 47N / 50V x2 керамические 220P / 100V керамические 1M / 50V (1000nF) керамические 4M7 / 10V тантал 1M / 35V тантал х 2

Схема и код этого контроллера заряда является Джулиан Илетт, он является вдохновителем этой умной вещью. Все это лишь утонченный документация и подходящая дизайн печатной платы, чтобы идеально соответствовать Arduino Pro Mini доска. Он разделяет видео более эффективного регулятора заряда Arduino MPPT, но его строительство гораздо сложнее, и проект еще не завершен. Если вы можете, улучшить код или конструкцию в любом случае, пожалуйста, поделитесь своими улучшениями в комментариях.

Arduino и добавленная к ней схема заряда могут быть использованы для мониторинга и управления зарядкой никель-металл-гидридных аккумуляторов, например, так:

Законченное устройство

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

Во-первых, важно отметить, что не существует универсального способа зарядки, который подходил бы для всех аккумуляторов. Разные типы аккумуляторов используют разные химические процессы, обеспечивающие их работу. В результате, разные типы аккумуляторов необходимо заряжать по-разному. В этой статье мы не сможем охватить все типы аккумуляторных батарей и методы зарядки. Поэтому для простоты мы сосредоточим внимание на наиболее распространенном типе аккумуляторных батарей размера AA, на никель-металл-гидридных аккумуляторах (NiMH).

Комплектующие

Список комплектующих слева направо:

  • мощный резистор 10 Ом (минимум 5 ватт);
  • резистор 1 МОм;
  • конденсатор 1 мкФ;
  • MOSFET транзистор IRF510;
  • датчик температуры TMP36;
  • источник питания 5 вольт;

Как заряжать NiMH AA аккумуляторы

Увеличение скорости заряда увеличивает риск повреждения аккумулятора.

Существует много способов зарядки NiMH аккумуляторов. Выбор используемого вами метода главным образом зависит от того, как быстро вы хотите зарядить аккумулятор. Скорость заряда измеряется по отношению к емкости батареи. Если ваша батарея обладает емкостью 2500 мАч, и вы заряжаете ее током 2500 мА, то вы заряжаете ее со скоростью 1C. Если вы заряжаете этот же аккумулятор током 250 мА, то вы заряжаете его со скоростью C/10.

Во время быстрой зарядки аккумулятора (со скоростью выше C/10), вам необходимо тщательно контролировать напряжение на батарее и ее температуру, чтобы не перезарядить ее. Это может серьезно повредить аккумулятор. Тем не менее, когда вы заряжаете аккумулятор медленно (со скоростью ниже C/10), у вас гораздо меньше шансов повредить батарею, если случайно перезарядите ее. Поэтому медленные методы зарядки, как правило, считаются более безопасными и помогут вам увеличить срок службы батареи. Поэтому в нашем самодельном зарядном устройстве мы будем использовать скорость заряда C/10.

Цепь заряда

Для данного зарядного устройства основой является схема для управления источником питания с помощью Arduino. Схема питается от источника напряжения 5 вольт, например, от адаптера переменного тока или компьютерного блока питания. Большинство USB портов не подходит для данного проекта из-за ограничений по току. Источник 5В заряжает батарею через мощный резистор 10 Ом и мощный MOSFET транзистор. MOSFET транзистор устанавливает величину тока, протекающего через батарею. Резистор добавлен как простой способ контроля тока. Контроль величины тока выполняется подключением каждого вывода резистора к аналоговым входным выводам Arduino и измерением напряжения с каждой стороны. MOSFET транзистор управляется выходным ШИМ выводом Arduino. Импульсы сигнала широтно-импульсной модуляции сглаживаются до постоянного напряжения фильтром на резисторе 1 МОм и конденсаторе 1 мкФ. Данная схема позволяет Arduino отслеживать и управлять током, протекающим через батарею.


Датчик температуры

Датчик температуры служит для предотвращения перезаряда батареи и обеспечения безопасности.

В качестве дополнительной меры предосторожности в зарядное устройство добавлен датчик температуры TMP36 для контроля температуры батареи. Данный датчик выдает напряжение, которое линейно зависит от температуры. Поэтому он, в отличие от термисторов, не требует калибровки или балансировки. Датчик устанавливается в просверленном отверстии в корпусе держателя батареи и приклеивается в отверстии так, чтобы он прижимался к батарее, когда та будет установлена в держатель. Выводы датчика подключаются к шине 5В, к корпусу и к аналоговому входному выводу Arduino.

Держатель AA батареи перед и после установки на макетную плату

Код


Код для данного проекта довольно прост. Переменные в начале исходного кода позволяют настроить зарядное устройство путем ввода значений емкости батареи и точного сопротивления мощного резистора. Также добавлены и переменные безопасных порогов. Максимально допустимое напряжение на батарее устанавливается в значение 1,6 вольта. Максимальная температура батареи установлена на 35 градусов по Цельсию. Максимальное время заряда установлено на 13 часов. Если какой-либо из этих порогов безопасности будет превышен, зарядное устройство выключается.

В теле программы вы можете увидеть, что система постоянно измеряет напряжения на выводах мощного резистора. Это используется для расчета значений напряжения на батарее и протекающего через нее тока. Ток сравнивается с целевым значением, которое составляет C/10. Если рассчитанный ток отличается от целевого значения более, чем на 10 мА, система автоматически подстраивает выходное значение, чтобы подкорректировать его.

Arduino использует последовательный интерфейс для отображения всех текущих данных. Если вы хотите проконтролировать работу вашего зарядного устройства, то можете подключить Arduino к USB порту компьютера, но это необязательно, так как Arduino питается от источника напряжения 5В зарядного устройства.

Int batteryCapacity = 2500; // значение емкости батареи в мАч float resistance = 10.0; // измеренное сопротивление мощного резистора int cutoffVoltage = 1600; // максимальное напряжение на батарее (в мВ), которое не должно быть превышено float cutoffTemperatureC = 35; // максимальная температура батареи, которая не должна быть превышена (в градусах C) //float cutoffTemperatureF = 95; // максимальная температура батареи, которая не должна быть превышена (в градусах F) long cutoffTime = 46800000; // максимальное время заряда в 13 часов, которое не должно быть превышено int outputPin = 9; // провод выходного сигнала подключен к цифровому выводу 9 int outputValue = 150; // значение выходного ШИМ сигнала int analogPinOne = 0; // первый датчик напряжения подключен к аналоговому выводу 0 float valueProbeOne = 0; // переменная для хранения значения на analogPinOne float voltageProbeOne = 0; // рассчитанное напряжение на analogPinOne int analogPinTwo = 1; // второй датчик напряжения подключен к аналоговому выводу 1 float valueProbeTwo = 0; // переменная для хранения значения на analogPinTwo float voltageProbeTwo = 0; // рассчитанное напряжение на analogPinTwo int analogPinThree = 2; // третий датчик напряжения подключен к аналоговому выводу 2 float valueProbeThree = 0; // переменная для хранения значения на analogPinThree float tmp36Voltage = 0; // рассчитанное напряжение на analogPinThree float temperatureC = 0; // рассчитанная температура датчика в градусах C //float temperatureF = 0; // рассчитанная температура датчика в градусах F float voltageDifference = 0; // разница между напряжениями на analogPinOne и analogPinTwo float batteryVoltage = 0; // рассчитанное напряжение на батарее float current = 0; // рассчитанный ток, протекающий через нагрузку в (мА) float targetCurrent = batteryCapacity / 10; // целевой выходной ток (в мА) устанавливается в значение // C/10 или 1/10 от емкости батареи float currentError = 0; // разница между целевым и фактическим токами (в мА) void setup() { Serial.begin(9600); // настройка последовательного интерфейса pinMode(outputPin, OUTPUT); // установить вывод, как выход } void loop() { analogWrite(outputPin, outputValue); // записать выходное значение в выходной вывод Serial.print("Output: "); // показать выходные значения для контроля на компьютере Serial.println(outputValue); valueProbeOne = analogRead(analogPinOne); // считать входное значение на первом пробнике voltageProbeOne = (valueProbeOne*5000)/1023; // рассчитать напряжение на первом пробнике в милливольтах Serial.print("Voltage Probe One (mV): "); // показать напряжение на первом пробнике Serial.println(voltageProbeOne); valueProbeTwo = analogRead(analogPinTwo); // считать входное значение на втором пробнике voltageProbeTwo = (valueProbeTwo*5000)/1023; // рассчитать напряжение на втором пробнике в милливольтах Serial.print("Voltage Probe Two (mV): "); // показать напряжение на втором пробнике Serial.println(voltageProbeTwo); batteryVoltage = 5000 - voltageProbeTwo; // рассчитать напряжение на батарее Serial.print("Battery Voltage (mV): "); // показать напряжение на батарее Serial.println(batteryVoltage); current = (voltageProbeTwo - voltageProbeOne) / resistance; // рассчитать ток заряда Serial.print("Target Current (mA): "); // показать целевой ток Serial.println(targetCurrent); Serial.print("Battery Current (mA): "); // показать фактический ток Serial.println(current); currentError = targetCurrent - current; // разница между целевым и измеренным токами Serial.print("Current Error (mA): "); // показать ошибку установки тока Serial.println(currentError); valueProbeThree = analogRead(analogPinThree); // считать входное значение третьего пробника, tmp36Voltage = valueProbeThree * 5.0; // преобразуя его в напряжение tmp36Voltage /= 1024.0; temperatureC = (tmp36Voltage - 0.5) * 100 ; // преобразование, исходя из зависимости в 10 мВ на градус со сдвиком в 500 мВ // ((напряжение - 500 мВ) умножить на 100) Serial.print("Temperature (degrees C) "); // показать температуру в градусах Цельсия Serial.println(temperatureC); /* temperatureF = (temperatureC * 9.0 / 5.0) + 32.0; //преобразовать в градусы Фаренгейта Serial.print("Temperature (degrees F) "); Serial.println(temperatureF); */ Serial.println(); // дополнительные пустые строки, чтобы облегчить чтение данных при отладке Serial.println(); if(abs(currentError) > 10) // если ошибка установки тока достаточно велика, то подстроить выходное напряжение { outputValue = outputValue + currentError / 10; if(outputValue < 1) // выходное значение никогда не может быть ниже 0 { outputValue = 0; } if(outputValue > 254) // выходное значение никогда не может быть выше 255 { outputValue = 255; } analogWrite(outputPin, outputValue); // записать новое выходное значение } if(temperatureC > cutoffTemperatureC) // остановить зарядку, если температура батареи превысила безопасный порог { outputValue = 0; Serial.print("Max Temperature Exceeded"); } /* if(temperatureF > cutoffTemperatureF) // остановить зарядку, если температура батареи превысила безопасный порог { outputValue = 0; } */ if(batteryVoltage > cutoffVoltage) // остановить зарядку, если напряжение на батарее превысило безопасный порог { outputValue = 0; Serial.print("Max Voltage Exceeded"); } if(millis() > cutoffTime) // остановить зарядку, если время заряда превысило порог { outputValue = 0; Serial.print("Max Charge Time Exceeded"); } delay(10000); // задержка в 10 секунд перед следующей итерацией цикла }

Скачиваемую версию исходного кода вы можете найти по ссылке, приведенной ниже.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: