Конденсаторы, Arduino и сохранение данных
Короче говоря, я запрограммировал и подключил спидометр/одометр, и все работает хорошо. Однако мне нужно сохранять данные с компонентов/датчиков после нажатия кнопки питания, что привело меня к конденсаторам, которые, похоже, являются решением моей проблемы. Чтение информации о конденсаторах в Интернете завело меня в тупик, и мне нужна помощь, чтобы понять, правильно ли я думаю.
Я приложил явно очень грубую схему, и мне нужно, чтобы кто-то подтвердил, что я правильно ее понял. Если это важно, вся система работала на 5 В, питаясь от 9-вольтовой батареи. Является ли конденсатор на 5 В правильным выбором, учитывая, что большинство компонентов не будут активны в момент отключения питания?
СТАРОЕ ИЗОБРАЖЕНИЕ: https://i.sstatic.net/aXhRi.jpg НОВОЕ ИЗОБРАЖЕНИЕ: https://imgur.com/a/aHRpzE4
Только что попытался загрузить приложение, но по какой-то причине этого не произошло, так что придется использовать ссылку (отредактированную), извините.
@user4163554, 👍0
Обсуждение1 ответ
Лучший ответ:
Простое подключение случайного конденсатора к источнику питания не сработает. Все гораздо сложнее.
Да, конденсатор используется для хранения заряда, но вам нужно правильно управлять этим зарядом, иначе у вас не будет возможности что-либо с ним сделать.
Вам необходимо:
- Убедитесь, что напряжение разряда остается достаточно высоким, чтобы обеспечить работу микросхемы достаточно долго для сохранения данных (Примечание: запись в EEPROM приводит к увеличению тока)
- Изолируйте конденсатор от остальной части схемы, чтобы он питал только основную микросхему
- Следите за входящей мощностью, чтобы знать, когда следует экономить.
Блок-схема вашей установки может выглядеть примерно так:
На этой схеме R1 и R2 образуют делитель напряжения, чтобы вы могли контролировать напряжение батареи. C1 — это большой конденсатор. Мы говорим о суперконденсаторе. Номинальное напряжение — 9 В минимум. Регулятор на Arduino игнорируется. Вы не хотите его использовать. Два внешних регулятора теперь используются для питания вашего проекта — один напрямую от батареи для питания макетной платы и других внешних компонентов (которые потеряют питание сразу после отключения питания батареи), а другой — для питания основного микроконтроллера и ничего больше. Второй регулятор изолирован от остальной части схемы с помощью D1, и заряд конденсатора затем может проходить только через этот регулятор для питания основного микроконтроллера.
Этот регулятор для микроконтроллера должен быть импульсным регулятором (DC-DC, "понижающим" регулятором). Если вы используете линейный ("LDO") регулятор, вы будете тратить энергию впустую, и ваш конденсатор должен быть в два или три раза больше, чем в противном случае. Еще лучше было бы иметь "понижающе-повышающий" регулятор, который будет повышать напряжение до 5 В, когда входное напряжение падает ниже 5 В, тем самым давая вам еще больше жизни от конденсатора.
Альтернативой всему этому является использование микросхемы 47C16 (5 В) или 47L16 (3,3 В) для хранения данных. Это микросхема "EERAM" - EEPROM с буфером RAM и автоматическим сохранением в EEPROM при отключении питания. Она работает через I2C и требует конденсатора, подключенного к ней напрямую, чтобы обеспечить резервное питание, пока она сохраняет данные в EEPROM.
Спасибо, Majenko. Ого, беру свой комментарий обратно, лол. Мне понадобится некоторое время, чтобы это осознать, но я скоро вернусь., @user4163554
Теперь, когда вы упомянули EPROM, я скажу одну вещь: одним из компонентов является SD-карта, на которой сохраняются данные... Я просто обдумаю ваш пост, но нет., @user4163554
@user4163554 Я только что добавил абзац об использовании EERAM., @Majenko
@user4163554 Карты SD не очень хорошо работают с резервным конденсатором. Они слишком прожорливы и медленны., @Majenko
Спасибо Majenko, прошу прощения за задержку. Я переписал свой код, избавился от части SD, теперь отправляю ее в EPROM, как вы и упомянули. Все работает хорошо. Спасибо еще раз., @user4163554
- Как рассчитать требуемую силу тока нескольких двигателей?
- Узнать статус, подключен ли коммутатор к arduino или нет?
- Пульсирование 3в в конденсаторе для создания произвольных напряжений
- Библиотека DHT.h не импортируется
- Определение того, была ли нажата и отпущена кнопка
- Как вывести истинное аналоговое напряжение на выходной контакт
- Хорошая кнопка debouncing/Библиотека StateChange
- Напряжение меняется, но цифровой поток всегда HIGH
Эээ... нет. Это неправильно. Очень неправильно., @Majenko
Это не сработает. У вас есть конденсатор последовательно с батареей, поэтому только переменное напряжение достигнет Arduino. Батарея обеспечивает постоянное напряжение, которое не может пройти через конденсатор. Вы пытаетесь обеспечить питание Arduino с помощью конденсатора, когда батарея отключена (чтобы у вас было время сохранить ваши драгоценные данные)? Тогда конденсатор должен быть параллелен контактам питания Arduino. Также вы должны определить, отключена ли батарея, чтобы Arduino мог определить это и сохранить данные в EEPROM., @chrisl
Также важной характеристикой является емкость конденсатора. Вам придется использовать конденсатор с большой емкостью, чтобы обеспечить достаточный ток для Arduino и других ваших компонентов., @chrisl
Хммм, подожди две секунды, просто загружу еще одно изображение, чтобы подтвердить, что мы думаем одинаково. Спасибо, кстати., @user4163554
Я бы так не делал. Это имело бы смысл, если бы он работал от сети, но не от батареек. Используйте кнопку. Затем, когда Arduino увидит, что кнопка нажата, сохраните данные и отключите питание Arduino с помощью транзистора ([один пример](https://youtu.be/9CnTguj_qvY)). (На других Arduino вы даже можете перевести их в спящий режим, вместо использования транзистора. Но на UNO это не сработает.), @Gerben
Обновленная схема загружена., @user4163554
Пожалуйста, не давайте ссылки на изображения. Загружайте изображения напрямую (используя кнопку изображения над редактором)., @Majenko
Загрузчик изображений на сайте не отображается должным образом на моем мобильном телефоне, для этого нужно просто нажать кнопку вне сайта., @user4163554
Так установить приложение?, @Majenko
Я принимаю вашу точку зрения по поводу приложения, но при всем уважении, это все остальные, кто конструктивен в отношении вопроса. Ссылка на изображение теперь там, но извините, если это причиняет кому-то неудобства., @user4163554
@user4163554 Ваша ссылка "НОВОЕ ИЗОБРАЖЕНИЕ" не работает. Если модератор говорит вам улучшить вопрос, вы должны это сделать. Это не просто помощь вам, это полезность для будущих читателей, а мертвые ссылки никому не помогают., @gre_gor
Ваше "НОВОЕ ИЗОБРАЖЕНИЕ" - это ссылка на какой-то сайт "incur.com", о котором я никогда не слышал. Мой коллега-модератор и я хотели бы, чтобы вы следовали правилам публикации и действительно публиковали схему, а не какую-то неработающую ссылку. Пожалуйста, прочтите [Как задать хороший вопрос?](https://arduino.meta.stackexchange.com/questions/2523/)., @Nick Gammon
*после нажатия кнопки питания* - возможно ли сделать так, чтобы эта кнопка питания была просто входом для Arduino, который затем записывает данные на SD-карту и отключается?, @Nick Gammon