Аппаратная перезагрузка
- Войдите на сайт для отправки комментариев
Пт, 23/05/2014 - 09:50
Привет.
Хочется перезагружать ардуину вместе с сопутствующими шилдами. Т.е. полностью обесточивать всю сборку . Вариант с reset , перепрошивкой бутлоадера и прочие бубны нежелательны, т.к. хочется именно аппаратно обесточить всю сборку - т.е. подать управляющий сигнал напр с цифрового пина через транзистор, чтобы питание на пару секнд обрубило полностью. кто-нибудь может нарисовать такую схемку ?
Ну а чем питание через кнопку не подходит - нажали - нет напруги, отпустили - есть.
Ну а чем питание через кнопку не подходит - нажали - нет напруги, отпустили - есть.
Автор хочет чтобы дуина а не палец кнопку дергала
На линию питания ставим ответвление на нем транзистор полевой и резистор небольшой. Дав напряжение на гейт ардуино отрубает себе вхрдное гапряжение и сотрубается. Вырубившись она ставит ноль на транзтсторе и питание восстагавливается.
http://we.easyelectronics.ru/Shematech/sistema-harakiri-ili-kak-popustu-...
ИМХО, повисшая ардуина не может дать никаких сигналов ни на программную, ги га аппаратную перезагрузку.
Спасает только сторожевой таймер с передергиванием питания перефирии при старте контроллера.
Для полных параноиков - внешний сторожевой таймер на отдельном контроллере ;)
Как работает, надеюсь понятно. Реле с Relay module/shield (943-1С-5DS/12DS) ест 70 мА, конденсатора 2200 мкФ такому реле хватает примерно на 30 мс. Ну и плюс время за которое двигается якорь, за всё про всё около 400 мс. Если нужно отрубить на бОльшее время, надо поставить перед транзистором КМОП-инвертор, а на входе инвертора маленький конденсатор (десятки мкФ).
Для полных параноиков - внешний сторожевой таймер на отдельном контроллере ;)
что делать, если подвиснет внешний сторожевой таймер?
Maverik сброс питания это самоцель? Или же вы пытаетесь какую то проблему решить
без описания проблемы мы толкового не посоветуем
а тупой сброс питания делается проще простого - берем релейный шилд с одним реле, через нормально замкнутые контакты реле подключаем всю конструкцию к источнику питания. Когда надо ардуино подает единицу на релейный шилд, реле срабатывает и обесточивает все. Ардуина отключается за ней отключается реле и снова замыкает контакты
Реле + таймер_555 ( в режиме моновибратора и управляемый от Arduino ) - всё ОБНУЛЯЕМОЕ питаем от реле.
Время, на которое обесточить нано - подбираем RC обвязкой таймера_555....
Мюнхаузен - так из болота выбирался :) ( Мюнхгаузен )
1
<em>Maverik сброс питания это самоцель? Или же вы пытаетесь какую то проблему решить
2
</em>
Ну можно сказать самоцель. Есть пара шилдов, которые изредка жестко зависают, т.е. уже проблема обесточивания актуальна.
Да и сама ардуинка при общении с такими шилдами может впасть в ступор. Поэтому лучше так.
А схему можно с реле и таймером ?
И еще вопрос - как бы сразу в эту тему прикрутить аккумулятор 3.7 вольт ? ну, чтобы от него тоже питание в этот момент обрубалось. Но при этом оставалась возможность подзарядки аккумулятора от вот этой штуки
http://www.ebay.com/itm/5V-1A-Micro-USB-Lithium-Battery-Charging-Board-Battery-Charger-Module-Arduino-/330976972646?pt=LH_DefaultDomain_0&hash=item4d0fc3cf66
Это уже другой вопрос.... Про подзарядку.... Главное реле будет обрубать всё обнуляемое - при любом раскладе !
На 555 схему вспомню - покажу.... а на гуглах - нету чоли ?
Плёхо рисую, извините :(
7421 - это К155ТМ2 или SN7474. Ноги - 1A = /S , 1Y = /R , 1D = D , 1C - C , 2C = Q , 2Y = /Q .
Реле K1 - это http://www.ebay.com/itm/5V-One-1-Channel-Relay-Module-Board-Shield-For-PIC-AVR-DSP-ARM-MCU-Arduino-/310566336050?pt=LH_DefaultDomain_0&hash=item484f323632
Цепочка R2C2 - установка триггера в сосотояние Q=1 при включении питания. Ардуино должна выставит "1" на D2.
В нужное время Ардуино установкой "0" на D2 переведёт триггер в состояние Q=0 ( /Q=1 ) - K1 снимет питание с Ардуино.
Через время, определяемое цепочкой R1C1, триггер вернётся в состояние Q=1 ( /Q=0 ) - K1 подаст питание на Ардуино.
R3 - подтяжка входа триггера /R к VCC ( внутренняя подтяжка Ардуино - не работает при снятии питания с Ардуино ).
И еще вопрос - как бы сразу в эту тему прикрутить аккумулятор 3.7 вольт ? ну, чтобы от него тоже питание в этот момент обрубалось. Но при этом оставалась возможность подзарядки аккумулятора от вот этой штуки
http://www.ebay.com/itm/5V-1A-Micro-USB-Lithium-Battery-Charging-Board-Battery-Charger-Module-Arduino-/330976972646?pt=LH_DefaultDomain_0&hash=item4d0fc3cf66
питание от батарейки - тоже через реле.... второе реле...
харакири по питанию каждые 10 мин на 2...3 секунды - не влияют на зарядку батарейки !!!!
Блок питания, триггер, батарейка и зарядное для батарейки - "слева" от релюшек ( всегда под питанием ), всё обнуляемое - "справа" от релюшек...
R1C1 = 68 килоом и 68 микрофарад х 10 V - сброс питания на 1,5 секунды...
R2C2 = 10 килоом и 10 микрофарад х 10 V
R3 = 10 килоом
спасибо. а можно подробнее про второе реле ?
- вход управления второго реле - к входу управления первого реле
- на общий контакт второго реле - питание от батарейки
- от норм. разомкнутого контакта второго реле - питание того, что Вы питаете от батарейки
перезалейте пожалуйста рисунок
R4 - питаемое от батарейки
http://cxem.net/beginner/beginner50.php
Схема включения микросхемы показана на рисунке. RC цепочка включена между плюсом и минусом питания. К соединению резистора и конденсатора подключен вывод 6 - Останов. Это вход компаратора №1. Сюда же подключен вывод 7 - Разряд. Входной импульс подается на вывод 2 - Запуск. Это вход компаратора №2. Совершенно простецкая схема - один резистор и один конденсатор - куда уж проще? Для повышения помехоустойчивости можно подключить вывод 5 на общий провод через конденсатор емкостью 10нФ.
Итак, в исходном состоянии, на выходе таймера низкий уровень - около нуля вольт, конденсатор разряжен и заряжаться не хочет, поскольку открыт транзистор Т6. Это состояние стабильное, оно может продолжаться неопределенно долгое время. При поступлении на вход импульса низкого уровня, срабатывает компаратор №2 и переключает внутренний триггер таймера. В результате на выходе устанавливается высокий уровень напряжения. Транзистор Т6 закрывается и начинает заряжаться конденсатор С через резистор R. Все то время, пока он заряжается, на выходе таймера сохраняется высокий уровень. Таймер не реагирует ни на какие внешние раздражители, буде они поступают на вывод 2. То есть, после срабатывания таймера от первого импульса дальнейшие импульсы не оказывают никакого действия на состояние таймера - это очень важно. Так, что там у нас происходит то? А, да - заряжается конденсатор. Когда он зарядится до напряжения 2/3Vпит, сработает компаратор №1 и в свою очередь переключит внутренний триггер. В результате на выходе установится низкий уровень напряжения, и схема вернется в свое исходное, стабильное состояние. Транзистор Т6 откроется и разрядит конденсатор С.
Время, на которое таймер, так сказать "выходит из себя", может быть от одной миллисекунды до сотен секунд.
Считается оно так: T=1.1*R*C
Теоретически, пределов по длительности импульсов нет - как по минимальной длительности, так и по максимальной. Однако, есть некоторые практические ограничения, которые обойти можно, но сначала стоит задуматься - нужно ли это делать и не проще ли выбрать другое схемное решение.
Так, минимальные значения, установленные практическим образом для R составляет 10кОм, а для С - 95пФ. Можно ли меньше? В принципе - да. Но при этом, если еще уменьшить сопротивление резистора - схема начнет трескать слишком много электричества. Если уменьшить емкость С, то всякие паразитные емкости и помехи могут существенно повлиять на работу схемы.
С другой стороны, максимальное значение резистора примерно равно 15Мом. Здесь ограничение накладывает ток, потребляемый входом Останов (около 120нА) и ток утечки конденсатора С. Таким образом, при слишком большом значении резистора таймер просто никогда не выключится, если сумма токов утечки конденсатора и тока входа превысит 120 нА.
Ну а что касается максимальной емкости конденсатора, то дело не столько в самой емкости, сколько в токе утечки. Понятно, что чем больше емкость, тем больше ток утечки и тем хуже будет точность таймера. Поэтому, если таймер будет использоваться для больших временных интервалов, то лучше пользоваться конденсаторами с малыми токами утечки - например, танталовыми.
источник - http://radiokot.ru/articles/01/
- запуск - к D2 ( программноподтянутому к VСС ) и через резистор 10 ком к VCC , и к кнопке ручного обесточивания
- выход - к блоку реле ( включение реле - НУЛЁМ !!! )
http://www.chipdip.ru/product/kr1006vi1/