включение света и насоса на определенное время.
- Войдите на сайт для отправки комментариев
Пнд, 01/02/2016 - 02:46
доброго времени суток .
пытаюсь сделать автополив цветка на ардуино, но возникли затруднения с включением на заданное время без модуля реального времени,по датчикам (фоторезистор и датчик влажности почвы самодельный из двух угольных стержней от мизинчиковых батареек).
алгоритм работы:
влажность падает ниже определенного значения (550) насос включается на 10 секунд задержка 1 минуту ,думаю что через "delay" если значение ниже повтор ный полив.
свет. тут все гораздо сложнее если значение ниже порога должен включиться свет на два часа, отключиться и ждать часов 10-12 (до утра) как реализовать со светом ума не приложу (((.
помогите пожалуйста.
#include <LiquidCrystal.h> int vlaznostcellPin = 8; // сенсор и понижающий резистор на 10 кОм подключены к a8 int vlaznostcellReading; // данные считываемые с аналогового пина int photocellPin=7; // сенсор и понижающий резистор на 10 кОм подключены к a7 int photocellReading; LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup(void) { Serial.begin(9600); LiquidCrystal lcd(8, 9, 4, 5, 6, 7); } void loop(void) { vlaznostcellReading = analogRead(vlaznostcellPin); photocellReading= analogRead(photocellPin); lcd.begin(16, 2); lcd.print("VLAZNOST`= "); lcd.println(vlaznostcellReading); lcd.setCursor(0, 1); lcd.print("SVET = " ); lcd.println(photocellReading); Serial.print("vlaznost`= "); Serial.println(vlaznostcellReading);// аналоговые значения Serial.print("svet="); Serial.println(photocellReading); delay(5000); }
Без модуля реального времени придется программно реализовывать часы, делать схему резервного питания, контролировать наличие питания, при пропадании питания, переходить на резервное, сохрянять насройки текущего времени в еепром, продолжать считать время и корректировать текущее время в еепром. Но если питание будет отсутсвовать слишком долго, есть вероятность потерять какой то временной интервал. То есть запустится система, прочитает текущее время из еепром и начент с ним работать, а сдвиг может оказаться довольно большим и скорректировать его удасться только в ручную. Думаю проще все же приобрести модуль часов, стоят они копейки и работают от батарейки очень длительное время, да и ресурсы конртоллера не будут использовать.
А без часов можно только так, как Вы и предложили. Поливать по мере высыхания почвы до определенного значения, в определенном обьеме. Свет включать только по значениям фоторезистора на определенный промежуток времени.
Время считать можно по разному. Правильный и более точный вариант на таймере, реализация описывалась и обсуждалась многократно на этом форуме. Простой, не точный вариант, создать счетчик, который будет увеличиваться с каждым проходом на 1, В Вашем скетче один оборот Loop происходит более чем 3 секунды, примерно посчитать и замерить опытным путем не составит труда. Тем более думаю что абсолютно не важно ровно два часа будет свет гореть или +-5-10 минут. При старте программы счетчик устанавливаете в ноль, при достижении нужного значения считанного с фоторезистора включаете свет и начинаете инкрементировать счетчик, по достижении определенного значения счетчика свет выключаете и обнуляете счетчик. Далее ждете следующее срабатывания условия значения фоторезистора и опять все по кругу.
Вообще, вариантов масса, это просто один из способов решения задачи, а так, Ваша фантазия Вам в руки. :)
спасибо большое за равернутый ответ. нашел в сети только это но думаю что не оно
https://sites.google.com/site/vanyambauseslinux/arduino/tajmery-sceetciki-arduino немогли бы вы написть кусочек скетча для образца.
Ну а зачем в данном-конкретном случае так усложнять? Юзаем старую бабушку millis(). Да и первый интервал на ней же. Проблема пропадания питания остается.
Спасибо большое буду дальше думать как это всё записать, это первый скетч который я пишу поэтому очень много вопросов.
Тут все давно есть, просто нужно воспользоваться формой поиска в верхнем, правом углу.
Первое, второе, третье и много еще чего есть.
Очень благодарен вам за ответы и помощь.)
Просто когда не знаешь что искать, не особо найдёшь.
А вы по всему форуму последовательно глазами пробегитесь. И скорее найдете, чем нет, требуемое вам. Чего здесь только не обсуждалось)))). Еще и идей возможно нахватаетесь.))))
... как реализовать со светом ума не приложу (((.
помогите пожалуйста..
Привет. Фоторезистор купили? чем мерять освещенность будете?
Если чисто отсчитывать минуту потом два час и потом восемь часов до утра. То точность особо не нужна можно и программные часы прописать.
--Нужна ардуина
--хороший датчик влажности почвы самодельный из двух угольных стержней.
--фоторезистор
--два реле для включения полива и света.
--источник питания для дуины и реле.
--дисплей не обязательно, но можно выводить влажность и отсчет времени.
Вот парень сделал отличные электроды https://youtu.be/eKz8a6yCfaU
Да и устройство у него получилось просто отличное!!! Рекомендую посмотреть.
датчик влажности у меня такой же ) ,фоторезистор есть диплей тоже , единственное не знаю как часы програмные прикрутить в программировании полный ноль.
Ну зачем они тебе? Возьми модуль на DS3231 и не ломай голову. А выставлять после каждого сбоя по новой? Да и точность у программных та еще.
по ссылкам часов прошлись что вам накидали?
Что не понятно пишите, допилить ваш скетч дело не хитрое да только это "медвежья услуга"
в нашей глуши не продаются, заказывать долго .да и точность +- 10 минут мне за глаза.
в нашей глуши не продаются, заказывать долго .да и точность +- 10 минут мне за глаза.
Вам решать.))))
до сюда я дорался )) а прикрутить таймер или что-то в этом роде не хватает ума (.
по ссылкам часов прошлись что вам накидали?
Что не понятно пишите, допилить ваш скетч дело не хитрое да только это "медвежья услуга"
Ну наскоряк как то так например можно с лампой поступить:
да сложновато сам бы точно не допетрил ((. спасибо
Важно, правильно составить алгоритм работы программы, а само программирование - это просто механическое выполнение определённых операций и не более того. Правда у каждого человека своё видение и способы решения, потому и говорю, все зависит от фантазии человека.
Алгоритм я составил а вот для выполнения знаний не хватает.
Так раздел в помощь. Там операторов три десятка. Ваши шаги по алгоритму переводите в команды. Или алгоритм выглядит - я хочу.)))))
Так и делаю) уже есть первые результаты сейчас испытываю.