Всем привет!
Пытаюсь сделать включение - отключения питания Ардуино одной кнопкой без фиксации (не выключателем). Сделал вот такую схему:

Скетч:
05 | digitalWrite(2, HIGH); |
06 | digitalWrite(3, HIGH); |
07 | digitalWrite(13, LOW); |
10 | digitalWrite(13, HIGH); |
16 | if (digitalRead(2) == LOW) { |
18 | digitalWrite(3, HIGH); |
Цель была такая: нажимаешь на кнопку, открывается транзистор (мосфет), подается питание на Ардуино. Ардуино стартует, ждет несколько секунд, если питание не пропадает, то через Пин3 открывает тот же мосфет. Кнопку можно отпускать.
В основном цикле проверяется состояние пина D2. Если кнопка нажата, то D3 переходит в другое состояние, и при отпускании кнопки питание пропадает.
Попробовал это симулировать в Протеусе, но почему-то не работает. Ардуино не открывает мосфет. Что я делаю не так? Или может есть уже готовое решение? Только без реле!
Круто!
А где здесь MOSFET?
Мосфета на схеме не нашёл, а что касается биполярного транзистора, то ... проведите пальцем от + батареи через транзистор. Ток у Вас собирается течь против стрелки. Это не смущает?
с уровнем 1 на D2 могут быть проблемы
Один ТМ2 не хочешь вонзить вместо вотэтоговсего?
Посмотри схему транзисторного тестера. Там всё нарисовано как надо.
https://ru.aliexpress.com/af/useless%25252dbox.html - э ?
За Вами не успеешь, только хотел озвучить про тестер, отключение либо кнопкой либо по времени
Всем спасибоСобрал по данной схеме, работает как надо:
Можно и код приложить
Всем спасибоСобрал по данной схеме, работает как надо:
а чего R1 и R3 такие огромные? току почти 8мА в тепло... А порты МК имеют внутреннюю подтяжку? иначе порт на VD2 при малейшей помехе будет ловить нажатие кнопки.
ua6em, вам реально код нужен? может и алгоритма хватит?
Всем спасибоСобрал по данной схеме, работает как надо:
а чего R1 и R3 такие огромные? току почти 8мА в тепло... А порты МК имеют внутреннюю подтяжку? иначе порт на VD2 при малейшей помехе будет ловить нажатие кнопки.
ua6em, вам реально код нужен? может и алгоритма хватит?
лучше код, ведь порт тянут к нулю через VD2 по видимому для прерывания, хотелось бы посмотреть как это делают профессионалы и главное для каких целей
лучше код, ведь порт тянут к нулю через VD2 по видимому для прерывания, хотелось бы посмотреть как это делают профессионалы и главное для каких целей
на кой там прерывание? если на порт VD2 кнопкой подать L, переводим порт R3 в H ... и послесле отпускания кнопки VT1, VT2 закрываются. А если МК "спал" после подачи питания, в сетапе на порт R3 подаем LOW, и небольшую задержку на определение повторного нажатия. И тратить прерывание на такое?! Весь код сводится к ловле состояния кнопки при работе и если необходимо, отключению по таймеру, который можно запустить в сетапе и обнулять по условиям в процессе юзанья девайса.
лучше код, ведь порт тянут к нулю через VD2 по видимому для прерывания, хотелось бы посмотреть как это делают профессионалы и главное для каких целей
на кой там прерывание? если на порт VD2 кнопкой подать L, переводим порт R3 в H ... и послесле отпускания кнопки VT1, VT2 закрываются. А если МК "спал" после подачи питания, в сетапе на порт R3 подаем LOW, и небольшую задержку на определение повторного нажатия. И тратить прерывание на такое?! Весь код сводится к ловле состояния кнопки при работе и если необходимо, отключению по таймеру, который можно запустить в сетапе и обнулять по условиям в процессе юзанья девайса.
Заблуждаетесь, нажатие кнопки замыкает на массу две цепи, по первой открывается транзистор VT1 смещением на базе порядка 0,2 вольта (выбор ключевого элемента должен обуславливаться этим), подача на R3 HIGH сигнала открывает транзистор VT2 удерживая VT1 в открытом состоянии...а вот отключение...значит цепь VD2 подтянута вверх и далее к примеру можно использовать флаг нажатия кнопки, то-есть если имеем повторное нажатие снять сигнал на R3 переведя его в LOW (при отпущенной кнопке, сигнал на VD2 в HIGH)
Мне мыслится как то так )))
Заблуждаетесь, нажатие кнопки замыкает на массу две цепи, по первой открывается транзистор VT1 смещением на базе порядка 0,2 вольта (выбор ключевого элемента должен обуславливаться этим), подача на R3 HIGH сигнала открывает транзистор VT2 удерживая VT1 в открытом состоянии...а вот отключение...значит цепь VD2 подтянута вверх и далее к примеру можно использовать флаг нажатия кнопки, то-есть если имеем повторное нажатие снять сигнал на R3 переведя его в LOW (при отпущенной кнопке, сигнал на VD2 в HIGH)
Мне мыслится как то так )))
вы абсолютно правы про управление VT2, я не правильно указал логику его управления... Все остальное, касаемое алгоритма отключения, на откуп разработчика - хоть по прерыванию, хоть по флагу, хоть переводом в сон...
Всем спасибоСобрал по данной схеме, работает как надо:
Так, при 5в питании достаточно одного транзистора и резистора. Без всего этого огорода.
И зачем вообще снимать питание, если можно уйти в слип? Если только есть ещё потребители.
ua6em, Прерывание использовать нет вообще никакого резона. Код (пример) есть в первом сообщении. Вот пример того же кода только под новую схему:
01
void
setup
() {
02
pinMode(3, OUTPUT);
03
pinMode(13, OUTPUT);
04
pinMode(2, INPUT_PULLUP);
05
digitalWrite(3, LOW);
06
digitalWrite(13, LOW);
07
delay(3000);
// задержка нажатия кнопки, то есть, для включения кнопку нужно удерживать 3 секунды
08
digitalWrite(3, HIGH);
09
digitalWrite(13, HIGH);
10
delay(5000);
11
}
12
13
void
loop
() {
14
delay(5000);
15
if
(digitalRead(2) == LOW) {
16
digitalWrite(3, LOW);
17
}
18
}
Пин 3 подключен к R3 (управляет ключем). Пин 2 через диод к кнопке (отлавливает нажание кнопки). Пин 13 - чисто ради индикации.
Green, мне нужно именно полное отключение. Кстати, приведите схему на 1-м транзисторе. Будет полезно.
Понятно, отключение можно сделать лучше (дребезг кнопки убрать программно)
Конечно можно! Это лишь тестовый скетч для проверки работоспособности схемы.
Колектор - минус батареи, эммитер - общий. Дальше домумаете сами.
Вот-вот! И я о том же! Прийти, ни чем не помочь, сказать что все не правильно и можно лучше, и не привести ни одного рабочего примера....
Молодец!
А пошевелить извилинкой?
Спасибо нужно говорить за что заставляю. Верно, дружок?
А пошевелить извилинкой?
Спасибо нужно говорить за что заставляю. Верно, дружок?
Уважаемый, схематехнических решений масса, и каждое решение имеет право на существование. В чем проблема? Не нравится, не пользуйте эту схему... Я вообще не сторонник биполярников в подобном случае, по мне так полевик предпочтительнее. Хотите отправлять в слип, так кто вам мешает? Вместо такого обращения , могли бы просто привести схему и сказать что она лучше. А так кроме обвинения, что все вокруг "тупые" один Вы гений - ваше право, но общаться в таком ключе не по мне.
Колектор - минус батареи, эммитер - общий. Дальше домумаете сами.
тут додумывай не додумывай на одном транзисторе и одном резисторе сделать невозможно
))Ладно. А на транзисторе и ДВУХ резисторах?
Ставки повышаются :))))
Ставки повышаются :))))
Это да, только вот код никак не улучшается, а казалось бы проше ведь некуда, ан нет )))
PS попробовал сделать без delay, так замудрил, так замудрил )))
тут додумывай не додумывай на одном транзисторе и одном резисторе сделать невозможно
"Никогда не говори никогда".
Ставки повышаются :))))
Скорее понижаются. Резистор ведь добавился.)
Ну, да, был один резистор, стало - два. "Дамы и господа, кто даст три? А может кто кондесатор добавит? ..."
Ну так с тремя резисторами кто хош сделает. А тем более с конденсатором.)
И ещё диод не забудьте на всякий случай. Открываем схему любой нуклии и вуаля - включение одним транзистором, легко модифицируемое во включение кнопкой.
тут додумывай не додумывай на одном транзисторе и одном резисторе сделать невозможно
"Никогда не говори никогда".
Как говорила Мари Иванна Вовочке - обоснуй!!!
Коньяк?
Я пошел за попкорном.
Я пошел за попкорном.
А чо ходить-то? https://vk.com/popkorn_na_dom
А темы то повторяются))
http://arduino.ru/forum/obshchii/skhema-upravleniya-pitaniem-mikrokontrollera?page=1#comment-389677
На AO4606, BAV70 и 2 резисторах.
А темы то повторяются))
http://arduino.ru/forum/obshchii/skhema-upravleniya-pitaniem-mikrokontrollera?page=1#comment-389677
На AO4606, BAV70 и 2 резисторах.
Так там аж 2 транзистора и диоды. А тут всего на одном транзисторе и одном резисторе обещают. Ждем премьеры.
А темы то повторяются))
http://arduino.ru/forum/obshchii/skhema-upravleniya-pitaniem-mikrokontrollera?page=1#comment-389677
На AO4606, BAV70 и 2 резисторах.
Так там аж 2 транзистора и диоды. А тут всего на одном транзисторе и одном резисторе обещают. Ждем премьеры.
...Обещать - не значит жениться... (из народного фольклора)
Еще "Обещанно 3 года ждут", так что время еще есть :))))