Перейти к содержанию
    

Алгоритм поливки.

Есть электрический кран. Его надо открывать\закрывать.

Всего можно запрограмировать 4 открытия\закрытия на каждый день.

К примеру

Понедельник:

Open1 12:00

Close1 12:30

Open2 14:00

Close2 15:00

Open3 19:00

Close3 22:00

…………………..

Среда:

Open1 9:00

Close1 11:00

Open2 14:00

Close2 14:15

……………………….

и так далее

 

вот сижу ломаю голову как это покрасивее претворить в жизнь.

у меня есть ощущение что все уже написано до нас. работают же поливочные контроллеры как то.

может кто нибудь решал что нибудь подобное?

 

когда то встречал планировщик задач на C, но сейчас не могу найти ссылку. что странно поиск на гугл не дает каких либо вразумительных результатов.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

оно?

Во всяком случае, рыбы довольны :)

да похоже. но мне все это счастье нужно реализовать в своем приборе. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В принципе, задача сводится к использованию готового программируемого недельного таймера (их навалом разных, но, возможно, будут проблемы с объемом расписания). Не устраивает готовый - посмотреть несколько описаний программирования от готовых изделий и скопировать самый удобный вариант реализации.

 

У готовых таймеров экранчик мелкий, и не очень информативный (зато с иконками), при использовании знакосинтезирующих или графических модулей удобство и информативность можно улучшить (в меру своих дизайнерских способностей).

Изменено пользователем rx3apf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В принципе, задача сводится к использованию готового программируемого недельного таймера (их навалом разных, но, возможно, будут проблемы с объемом расписания). Не устраивает готовый - посмотреть несколько описаний программирования от готовых изделий и скопировать самый удобный вариант реализации.

 

У готовых таймеров экранчик мелкий, и не очень информативный (зато с иконками), при использовании знакосинтезирующих или графических модулей удобство и информативность можно улучшить (в меру своих дизайнерских способностей).

готовый не пойдет. у меня все есть RTC и силовые выходы. надо только написать логику.

у меня получилось что то такое

//check if the present day is active 
if (flashParam.solDay&(1<<rtc.rtcDayOfWeek))
{
     //run programs for the day
      for (prog_mum = 0; prog_mum < 4; prog_mum++)
      SOLENOID_RunSol(prog_mum);
}


void SOLENOID_RunSol(uint32_t prog_mum)
{
    switch (solParam[prog_mum].solState)
    {
        case IDLE:
            solParam[prog_mum].solState = START;
        break;
        case START:
            if (solParam[prog_mum].solStartHour == rtc.rtcHour && solParam[prog_mum].solStartMinute >= rtc.rtcMin)
            {
                SolenoidOn();
                solParam[prog_mum].solState = STOP;
            }
        break;
        case STOP:
            if ( (solParam[prog_mum].solStopHour == rtc.rtcHour && solParam[prog_mum].solStopMinute >= rtc.rtcMin))
            {
                SolenoidOff();
                solParam[prog_mum].solState = IDLE;
            }
        break;
        
    }
}

но что то мне это не нравиться.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

огурцы, в отличие от человеков, не бухают по пятницам и не болеют по понедельникам

т.о. недельный таймер им не нужен

раз уж вы не анализируете влажность почвы и не прогнозируете осадки, более чем достаточно механического таймера на сутки с разрешением 15 минут, за 300 рублей

днем поливать вредно, используйте раннее утро или вечер

Изменено пользователем Огурцов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

огурцы, в отличие от человеков, не бухают по пятницам и не болеют по понедельникам

т.о. недельный таймер им не нужен

раз уж вы не анализируете влажность почвы и не прогнозируете осадки, более чем достаточно механического таймера на сутки с разрешением 15 минут, за 300 рублей

днем поливать вредно, используйте раннее утро или вечер

заказчик хочет иметь возможность управлять краном каждый день. что и когда он польет я честно говоря не знаю. даже не интересовался. одно знаю что он в поливке наверно опытней чем я в контролерах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

когда то встречал планировщик задач на C, но сейчас не могу найти ссылку. что странно поиск на гугл не дает каких либо вразумительных результатов.

Тут уже обсуждали планировщики для МК. Скорее всего Вам подойдёт AVR-Crontab. Сам я им не пользовался, но похоже он реализует функционал планировщика cron.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут уже обсуждали планировщики для МК. Скорее всего Вам подойдёт AVR-Crontab. Сам я им не пользовался, но похоже он реализует функционал планировщика cron.

спасибо. в AVR-Crontab много лишнего для меня. но интересные идеи там есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...