Освещение в курятнике

Тема в разделе "Силовая электроника", создана пользователем NeAndryxa, 1 ноя 2016.

  1. NeAndryxa

    NeAndryxa Нерд

    Дано Arduino nano, ds3231, два модуля реле, две энергосберегающие лампочки одна тусклая другая яркая. Пока хочу сделать простое освещение так сказать с функцией закат рассвет без шим. Утром будет загоратся тусклая лампа а через 20 минут яркая, тусклая гаснет, вечером яркая горит (весь день), загорается тусклая, яркая гаснет, через 20 минут, гаснет тусклая и так ежедневно. Пока получилось реализовать следующий алгоритм загорается тусклая потом яркая горят вместе весь день и потом тухнет яркая потом тусклая. Посмотрел скетч на аквариумном форуме, кто знает подскажите как реализовать работу одного реле два раза в сутки?
     

    Вложения:

  2. NeAndryxa

    NeAndryxa Нерд

    Попробовал сделать работу реле с заданием времени полудня но не получилось реле то не срабатывает то диод на реле начинает гореть в пол силы.
     

    Вложения:

  3. Tomasina

    Tomasina Сушитель лампочек Модератор

    секунды не учитывать?
     
  4. NeAndryxa

    NeAndryxa Нерд

    нет, курам пофиг)))
     
  5. vvr

    vvr Инженерище

    сделайте более просто
    определяете час и минуты включения и час и минуты выключения.
    и сравнивайте время с этими параметрами
     
  6. NeAndryxa

    NeAndryxa Нерд

    вроде и так не сложно, но реле не получилось завести да два срабатывания в сутки
     
  7. vvr

    vvr Инженерище

    так как я вам предложил проще и нагляднее
    ну и редактировать легче
     
  8. NeAndryxa

    NeAndryxa Нерд

    есть пример посмотреть или ссылка на похожую тему, посмотрю подумаю может возьму за основу
     
  9. NeAndryxa

    NeAndryxa Нерд

    полистал форум, поглядел пример предложенного вами варианта но как сделать включение одного реле два раза в сутки, если делать проверку if'ками у меня максимум получилось так что реле сначала выключалось а потом включалось и так весь период заданный в коде либо диод на реле горел в пол силы, если пнёте в нужном направлении буду очень благодарен.
     
  10. rkit

    rkit Гуру

    В логике ошибка. За один цикл в RelayChn1 может писаться и HIGH и LOW. Думайте почему.
     
  11. NeAndryxa

    NeAndryxa Нерд

    Э...... может еще подсказку?
     
  12. vvr

    vvr Инженерище

    Код (C++):
    //////////////////////////////////////////////////////

    #include <Wire.h>

    #define DS1307_I2C_ADDRESS 0x68

    int second;
    int minute;
    int hour;

    int hour_on = 10;
    int hour_off = 20;

    int minute_on = 13;
    int minute_off = 10;

    ///////////  часы  /////////////////////

    byte decToBcd(byte val){
      return ( (val/10*16) + (val%10) );
    }

    byte bcdToDec(byte val){
      return ( (val/16*10) + (val%16) );
    }

    void get_time()
    {
      Wire.beginTransmission(104);
      Wire.write(0);
      Wire.endTransmission();
      Wire.requestFrom(104, 3);
      second = bcdToDec(Wire.read() & 0x7f);
      minute = bcdToDec(Wire.read());
      hour = bcdToDec(Wire.read() & 0x3f);
    }


    void setup()
    {
      Wire.begin();

    }

    void loop()
    {
      get_time();

      if (hour >= hour_on && minute >= minute_on)
      {
        //  включаем
      }
      if (hour >= hour_off && minute >= minute_off)
      {
        //  выключаем
      }
    }

     

    играйтесь со временем и организовывайте сколько нужно вкл-выкл
     
    NeAndryxa нравится это.
  13. NeAndryxa

    NeAndryxa Нерд

    Огромное спасибо, завтра на работе поразбираюсь.
     
  14. rkit

    rkit Гуру

    Та же самая ошибка. В один проход цикла и включаем и выключаем.
     
  15. NeAndryxa

    NeAndryxa Нерд

    есть предложения как сделать так чтобы одна часть цикла выполнялась до обеда другая после или в других вариациях, я лучше чем с "полуднем" ничего не придумал... ну и не очень получилось... поэтому и создал тему.
     
  16. rkit

    rkit Гуру

    Думайте, почему так происходит.
     
  17. vvr

    vvr Инженерище

    выключится когда время будет равно времени выключения
     
  18. NeAndryxa

    NeAndryxa Нерд

    Интересно послушать ваше видение решения данной проблемы, да и форум создан для того чтобы делится опытом а не загадки загадывать
     
  19. Onkel

    Onkel Гуру

    считайте время в минутах минуты=час*60+мин и используемые в сравнениях переменные всега приводите к целым минутам
     
  20. rkit

    rkit Гуру

    Загадку вы сами себе загадали. А я поделился своим опытом, указав на ошибку точнее уж некуда. Если вы не хотите думать - вам в "закажу проект".