выключение ардуино
- Войдите на сайт для отправки комментариев
всем здрасти
прошу помощи если кто может подсказать
с ребенком собрали в школу поделку светильник с солнечной батареей и аккумулятором
впринципе все работает только аккумулятор за ночь садится в ноль
значит вопрос как правильно написать в программе чтоб ардуинка при напряжении аккумулятора меньше 4 вольта
выключалась а при напряжении больше 4 вольта включалась
[code] #include <LiquidCrystal.h> int solarValue = 0; int lightValue = 0; LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //инициализация библиотеки lcd// const int LED1 = 6; //диод фанаря// const int LED2 = 7; //диод фанаря// const int LED3 = 8; //диод фанаря// const int LED4 = 9; //диод фанаря// const int LIGHT = 0; //датчик света// const int SOLBAT = 3; //датчик солнечной батареи// const int LED5 = 13; //диод питания// int solmin = 110; void setup() { pinMode (LED1,OUTPUT); pinMode (LED2,OUTPUT); pinMode (LED3,OUTPUT); pinMode (LED4,OUTPUT); pinMode (LED5,OUTPUT); digitalWrite (LED5,HIGH); lcd.begin (16,2); delay(1000); digitalWrite (LED1,HIGH); delay(500); digitalWrite (LED1,LOW); delay(250); digitalWrite (LED2,HIGH); delay(500); digitalWrite (LED2,LOW); delay(250); digitalWrite (LED3,HIGH); delay(500); digitalWrite (LED3,LOW); delay(250); digitalWrite (LED4,HIGH); delay(500); digitalWrite (LED4,LOW); } void loop() { int solarValue = analogRead(SOLBAT); int lightValue = analogRead(LIGHT); float sval=(solarValue*0.0048828125); lcd.setCursor (0,0); lcd.print("SVET"); lcd.setCursor (0,1); lcd.print(lightValue); lcd.setCursor (7,0); lcd.print("BAT VOLT"); lcd.setCursor (7,1); lcd.print(sval); if(lightValue<solmin) { digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); } else { digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); } } [/code]
я понимаю что нужно копать в сторону внутренего опорного напряжения но не пойму как применить
получается что если использовать внутренее опорное напряжение на все аналоговые входы нужно будет ставить делитель напряжения ?
и еще момент если я включил внутренее опорное напряжение
провел расчет напряжения относительно него
как дальше выключит и включить обратно ардуинку
Вот так:
Стабилитрон любой на 4.3 В, резистор R1 не знаю, от фонаря. До 1k точно. Логику работы не знаю и собирать было впадлу, так что возможно понадобится поменять провода идущие к 2 и 3 выводам компаратора местами. Общий плюс, то есть отрезает землю. Чтобы сделать общей землю, соответственно нужен pFET транзистор.
Прошу учесть что свои 5-10 мА компаратор, плюс около 2 мА стабилитрон с резистором всё равно кушают. Хотите чтобы по 4В обесточивалось вообще всё - перестройте соответствующим образом схему (хвост D1, 4й вывод LM393 чтобы тоже коммутировались транзистором а не в обход), в этом случае надо предусмотреть маленькую батарейку (2032 хватит) и кнопку, чтобы подавать напряжение на затвор, "толкая" таким макаром компаратор чтобы завёлся.
Резистор R2 не 10k а где-то 560R-1.5k, уже висит и исправлять лень.
Огромное спасибо за схему но напряжение аккумулятора 5 вольт и хотелось бы реализовать программно
9v это на схеме, мне исправлять лень было же. Работает с любым напяжением выше Vg_th транзистора, то есть для 48N от 4 В, в идеале от 4.5 В.
Программно реализовать што? отключить ленту? делаете делитель (так чтобы на АЦП входе не оказалось больше Vcc+0.3V), измеряете, выставляете bool переменную которая служит запретом работы ленты. Выключить всё? извините но без транзистора не получится. Потому что встроенный стабилизатор ардуины, Serial<>USB преобразователь и сама ардуина тоже кушать хотят. Хотят на столько, что на некоторых ёмкостях (ниже 2500 мАч) это может оказаться неприемлемо.
Огромное спасибо за схему но напряжение аккумулятора 5 вольт и хотелось бы реализовать программно
А как Вы представляете себе программу, работающую на выключенном микроконотроллере?
Ясно буду читать и разбираться дальше
Может он не полностью будет выключен но хотябы с минимальным потреблением которого хватилобы на питание аналоговых входов ?
Я гдето читал что есть несколько режимов сна контроллера
Может он не полностью будет выключен но хотябы с минимальным потреблением которого хватилобы на питание аналоговых входов ?
Т.е. ни названию темы, ни вот этому:
как дальше выключит и включить обратно ардуинку
верить нельзя?
На Ваш прямой вопрос существоет только аппаратное решение. Именно такое Вам и было предложено.
И потом, аналоговые входы программу не выполняют. Выполняет ядро микроконтроллера, включающее в себя процессор, оперативную память, флеш-память, в общем, практически весь контроллер. Конечно, у него существует режим сниженного энергопотребления, но Вы ведь спрашивали не об этом. Да и бесполезно это без внесения существенных изменений в схемотехнику Ардуины.
Об этом скорее всего не знал как правильно сформулировать вопрос
Об этом скорее всего не знал как правильно сформулировать вопрос
Нет. Вопрос Вы сформулировали вполне правильно. И получили на него вполне адекватный ответ. Если бы сформулировали неправильно, нормального ответа бы не получили.
Другое дело, что ответ Вас разочаровал. И теперь Вы хотите получить ответ уже на совсем другой вопрос. Но тут существует много разных вариантов, поэтому для получения адекватного ответа следует конкретизировать вопрос. По крайней мере, привести технические характеристики используемой аппаратуры и желаемого режима.
Ясно вечером освобожусь нарисую схему того что есть запишу видио и кину ссылку на него и постараюсь объяснить чего хочу добится просто трое пацанов растет особо время не хватает но хотелось-бы в понедельник отнести в школу ребенку готовую штуковину )) спасибо