реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Алгоритм поливки.
Jenya7
сообщение Jan 12 2016, 11:58
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Есть электрический кран. Его надо открывать\закрывать.
Всего можно запрограмировать 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, но сейчас не могу найти ссылку. что странно поиск на гугл не дает каких либо вразумительных результатов.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jan 12 2016, 12:01
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



оно?
Во всяком случае, рыбы довольны sm.gif


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 12 2016, 12:13
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(MrYuran @ Jan 12 2016, 17:01) *
оно?
Во всяком случае, рыбы довольны sm.gif

да похоже. но мне все это счастье нужно реализовать в своем приборе. sm.gif
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 12 2016, 12:33
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



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

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

Сообщение отредактировал rx3apf - Jan 12 2016, 12:34
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 12 2016, 13:00
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(rx3apf @ Jan 12 2016, 17:33) *
В принципе, задача сводится к использованию готового программируемого недельного таймера (их навалом разных, но, возможно, будут проблемы с объемом расписания). Не устраивает готовый - посмотреть несколько описаний программирования от готовых изделий и скопировать самый удобный вариант реализации.

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

готовый не пойдет. у меня все есть 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;
        
    }
}

но что то мне это не нравиться.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 12 2016, 21:48
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



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

Сообщение отредактировал Огурцов - Jan 12 2016, 21:49
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 13 2016, 07:42
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Огурцов @ Jan 13 2016, 03:48) *
огурцы, в отличие от человеков, не бухают по пятницам и не болеют по понедельникам
т.о. недельный таймер им не нужен
раз уж вы не анализируете влажность почвы и не прогнозируете осадки, более чем достаточно механического таймера на сутки с разрешением 15 минут, за 300 рублей
днем поливать вредно, используйте раннее утро или вечер

заказчик хочет иметь возможность управлять краном каждый день. что и когда он польет я честно говоря не знаю. даже не интересовался. одно знаю что он в поливке наверно опытней чем я в контролерах.
Go to the top of the page
 
+Quote Post
arhiv6
сообщение Jan 13 2016, 08:06
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 633
Регистрация: 21-05-10
Из: Томск
Пользователь №: 57 423



Цитата(Jenya7 @ Jan 12 2016, 17:58) *
когда то встречал планировщик задач на C, но сейчас не могу найти ссылку. что странно поиск на гугл не дает каких либо вразумительных результатов.

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


--------------------
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 13 2016, 08:20
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(arhiv6 @ Jan 13 2016, 14:06) *
Тут уже обсуждали планировщики для МК. Скорее всего Вам подойдёт AVR-Crontab. Сам я им не пользовался, но похоже он реализует функционал планировщика cron.

спасибо. в AVR-Crontab много лишнего для меня. но интересные идеи там есть.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 09:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.03536 секунд с 7
ELECTRONIX ©2004-2016