FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Суббота, 03.12.2016, 22:44
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 6«123456»
Модератор форума: support, Сергей 
Форум » Основной » Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!) » Первая разработка в программе (для теплицы, гроубокса) (Изучение работы программы на практике. Постепенное решение.)
Первая разработка в программе (для теплицы, гроубокса)
Skull Дата: Пятница, 22.01.2016, 00:15 | Сообщение # 16
Подполковник
Группа: Проверенные
Сообщений: 298
Награды: 5
Репутация: 2
Статус: Offline
Цитата krom23 ()
или у вас какая то хитрая технология?
Это Вы еще про аэропонику не слышали, где надо увлажнение каждые 5 мин ))
 
rw6cm Дата: Пятница, 22.01.2016, 03:45 | Сообщение # 17
Генерал-майор
Группа: Проверенные
Сообщений: 476
Награды: 43
Репутация: 31
Статус: Online
Цитата AlexRyzh ()
Прикрутил нужные переменные, плата корректна, но при попытке компиляции выдает ошибку компиляции.
Честно сказать: никчёмный громадный код! :)
Если идти вашим алгоритмом, то хотя бы так: пример 2.
Но все равно, если предположить,
что таймеру за сутки нужно будет сделать больше сотни телодвижений...
Устанете листать проект :)))
Мне видится здесь другой подход: пример 3

п/с В примере 3, в элементе массива, надо выключить индекс, он здесь не нужен.
Это очередной глюк, он не сохраняет настройки после выхода.
Прикрепления: TimePump2.flp(220Kb) · TimePump3.flp(120Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)

Сообщение отредактировал rw6cm - Пятница, 22.01.2016, 04:07
 
AlexRyzh Дата: Пятница, 22.01.2016, 10:14 | Сообщение # 18
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата rw6cm ()
Устанете листать проект :)))
Согласен, проект получается не маленький, но мне кажется это единственный выход решения новой поставленной задачи (ниже объясню).
Согласно озвученной задаче по поливу (с заданным режимом), ваши подсказки очень хорошие и полностью решают эту задачу.

Но в примере 3 Вы используете RTrig (инвертор), думаю этого нельзя делать, т.к. может произойти неприятная ситуация (если учитывать человеческий фактор допуска ошибки)
Например, человек программирует реле и при вводе времени включения ввел время когда реле еще не выключилось по предыдущей программе (у самого были подобные ошибки), в этом случае инвертор отключит нагрузку, а при попытке отключить (по предыдущей программе) - включит нагрузку и дальше все пойдет наперекосяк (мне так кажется). Лучше использовать RS или SR тригер.

Почему я делаю такой проект?! Я решил пойти дальше в постановке задачи,  поэтому сейчас все объясню подробнее.
Есть у меня пара таймеров, цифровой и механический, но этого не хватает в полной мере для моих нужд (не будем углубляться в нужды). Кроме того механический таймер иногда барахлит, не срабатывает реле на выключение. Вот я и подумал, неплохо было бы собрать программируемое многоканальное реле времени с ардуины (возможно нано, насколько ее памяти хватит), чтоб кнопками можно было выставлять реальное время и время включения и выключения по каждой программе. Пример похожего реле вот
http://elemag.com.ua/index.php?productID=942
или вот http://stroisovety.org/rozetka-s-tajmerom/
Чтобы этим реле мог воспользоваться любой человек без помощи компьютера, а кнопками его программировать.
Для этого понадобится:
Ардуино Нано
Часы реального времени
Реле 2-3 шт (в зависимости от количества каналов)
Несколько кнопок
ЖК дисплей
БП 7-9 В
Корпус

Так вот я пока на стадии разработки самого принципа работы реле, чтобы я (или любой другой) при программировании не вводили непонятные цифры, а конкретно часы и минуты включения и выключения (при необходимости день недели, секунды...), потом нужно привязать кнопки управления, и.тд.
Я программировать только учусь, поэтому на решение задачи у меня взгляд не столько программиста, сколько техника. Получил время - сравнил - совпадает - включил - или выключил.... :)
Может массивом как-то можно упростить задачу, но я не понимаю как массивом работать, как данные в массиве привязать к программированию кнопками.

PS: Выше напутал про тригер RTrig спутал с тригером TT. Так что 2-й абзац аннулируется.


Сообщение отредактировал AlexRyzh - Пятница, 22.01.2016, 12:00
 
rw6cm Дата: Пятница, 22.01.2016, 13:51 | Сообщение # 19
Генерал-майор
Группа: Проверенные
Сообщений: 476
Награды: 43
Репутация: 31
Статус: Online
Цитата AlexRyzh ()
Вот я и подумал, неплохо было бы собрать программируемое многоканальное реле времени с ардуины (возможно нано, насколько ее памяти хватит), чтоб кнопками можно было выставлять реальное время и время включения и выключения по каждой программе.
Не вижу смысла возиться с тем, чего и так завались.
На том же Али можно подобрать подходящее, и будет это в разы дешевле и эстетичней.

Цитата AlexRyzh ()
но я не понимаю как массивом работать
Учится ни когда не поздно smile Но с этим к Автору... У меня на это терпения не хватает,
чтобы грамотно и доходчиво строчить на клаве )))

п/с В примерах выше постом забыл убрать лишние переменные от эмулятора. Если что удалите их.


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
AlexRyzh Дата: Пятница, 22.01.2016, 16:55 | Сообщение # 20
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата rw6cm ()
Не вижу смысла возиться с тем, чего и так завались.На том же Али можно подобрать подходящее, и будет это в разы дешевле и эстетичней.
У нас такие реле можно купить не дороже чем на Али. Но, есть несколько больших НО!!!
1. Например мне нужно управлять 4-мя устройствами - а это 4 реле нужно покупать!
2. На одно устройство (свет), мне нужно всего 1 программа суточная в 6 час утра включить и в 21-00 выключить. В зависимости от стадии роста растения время включения и выключения     нужно менять, т.е. уменьшать световой день (на это можно использовать 1 канал "своего" реле времени).
3. Включать вентилятор 5-6 раз в день - это 5-6 программ на втором канале.
4. Включать полив, например каждые 2 часа по 15-20 мин (зависит от капельниц и нужно смотреть по дренажу на сколько минут включать)
5. Каждый час на 15 мин включать аэрацию раствора (компрессор)
Итого получается нужно 4 реле времени, которые я могу программировать только так как позволяет производитель и не иначе. А если мне нужна будет точность с учетом секунд? В этих реле нет секунд, а на "своем" можно учесть и секунды.
"Свое" реле я всегда могу перепрошить под свои нужды, а купленные - никак!
Вот такая разница мне видится между покупкой и изготовлением своего реле.
Ардуино нано - 1.75 долл.
Жк дисплей - 1.32 долл.
Реле 4 шт - 2.5 долл.
Часы реал врем. 0.62 долл.
Вместо кнопок пульт дистанционного управления (на все случаи жизни) вот такой за 0.9 долл.
http://ru.aliexpress.com/item....62faadd
Корпус можно из из чего-то сделать (применить) что дома валяется. Или купить подходящий.
Итого получается порядка 8 долларов с корпусом за многоканальное реле времени, программируемое с пульта инфракрасного!
Это против 9 долларов за каждое реле на 17 программ. Зачем мне 17 программ, если мне нужна одна? И еще что мне делать с 17 программами, если мне нужно 20? И как быть если мне нужно через определенное время включить ультрафиолет на 20 сек?
Да реле с Али хороши, но не всегда выгодно и практично! smile Все зависит от потребностей. Кому-то и одного много, а кому-то и 4 мало smile
 
krom23 Дата: Пятница, 22.01.2016, 23:15 | Сообщение # 21
Майор
Группа: Проверенные
Сообщений: 173
Награды: 1
Репутация: 0
Статус: Offline
Цитата Skull ()
Это Вы еще про аэропонику не слышали, где надо увлажнение каждые 5 мин ))
Слышал, от вас же в соседнем посте smile .
 
AlexRyzh Дата: Суббота, 23.01.2016, 09:34 | Сообщение # 22
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Перешел к кнопкам. Программировать реле, да и для других целей нужны кнопки. Вот решил научиться программировать кнопки.
Сделал такой блок (прилагается).

3 кнопки подключены к одному аналоговому входу. Используя делители из резисторов, при нажатии кнопки или их комбинаций получаем разный уровень сигнала. Используя это определяем какая кнопка была (или комбинация) были нажаты.
Пределы кнопок в сравнении взял с большим запасом, т.к. уровни выдаваемые кнопками позволяют такой запас.

В блоке добавил вывод на монитор, чтоб визуально проверять работает ли все и правильно.
Думаю как и в случае с реле все усложнил, наверное можно проще все сделать. 
Пока только определение нажатия кнопок, а что с ними делать дальше, потом буду думать как этим воспользоваться.

Надеюсь rw6cm (или еще кто-то из гуру) и в этот раз подскажет что я не так делаю.

Добавлено (23.01.2016, 09:34)
---------------------------------------------
И как защитить от дребезга кнопки, если по кнопке считывается аналоговый сигнал?

Прикрепления: 1983337.flp(379Kb)
 
Олег Дата: Суббота, 23.01.2016, 09:52 | Сообщение # 23
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Offline
Поставьте блок Bounce после компараторов.
 
AlexRyzh Дата: Суббота, 23.01.2016, 19:39 | Сообщение # 24
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата Олег ()
Поставьте блок Bounce после компараторов.
Спасибо. Поставил
Подскажите, как сделать подпрограмму входить на нее по нажатию кнопки?
Суть вопроса такова:
Имеем 3 кнопки. !-я например вход в меню и выход из него. Нажимаем ее входим в подпрограмму меню.
Находимся в меню, в котором кнопкой 2 входим в другое подменю, где можно выбрать что делать в этом подменю, например, установка часов, выбор программирования реле врмени...
При этом из меню можно выйти в начало по 1-й кнопке или по истечению 20 сек, если ни одна кнопка не была нажата. 
Можно ли вообще как-то делать подпрограммы и входить в них по событию?
 
Олег Дата: Суббота, 23.01.2016, 20:22 | Сообщение # 25
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Offline
На четыре меню у меня было так сделано. Единственно я закольцевал, а не делал возврат кнопкой выбора, для возврата на первое меню через 20 сек можете обработку повесить с таймером на переменную "Сброс меню". Ну а дальше уже зависит от того как вы собираетесь меню организовывать.
Прикрепления: 6874308.png(7Kb)
 
AlexRyzh Дата: Суббота, 23.01.2016, 22:52 | Сообщение # 26
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата Олег ()
На четыре меню у меня было так сделано. Единственно я закольцевал, а не делал возврат кнопкой выбора, для возврата на первое меню через 20 сек можете обработку повесить с таймером
Спасибо, но не очень понятно и как бы не до конца.
По схеме я так понял: 
При нажатии на кнопку 1 (это выбор) срабатывает счетчик и посылает сигнал на переключатель. На переключателе одна из переменных получает значение 1 (зависит сколько раз нажата кнопка выбор)
Счетчик настроен так, что когда он отрабатывает 5 шагов, сбрасывается в 0. И так по кругу.
Можно повесить и таймер на 20 сек, и кнопку сброс меню, это понятно. Не понятно что дальше?
Цитата Олег ()
Ну а дальше уже зависит от того как вы собираетесь меню организовывать.
Вот как раз и не пойму как организовывать меню, чтоб вызывалась подпрограмма в зависимости от выбранного. Хоть простенький примерчик посмотреть бы. Хоть какой-то организации меню.
 
AlexRyzh Дата: Суббота, 23.01.2016, 23:00 | Сообщение # 27
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Вот соорудил блок кнопочный.
Три кнопки подключены к одному аналоговому выходу. 
 кнопки подключены к одному аналоговому входу. Используя делители из резисторов, при нажатии кнопки или их комбинаций получаем разный уровень сигнала. Используя это определяем какая кнопка была (или комбинация) были нажаты.
В итоге получаем 6 вариантов нажатий (в идеале 6 кнопок) на одном пине.
Пределы сигнала с кнопок в сравнении взял с большим запасом, т.к. уровни выдаваемые кнопками позволяют такой запас.
Для уверенного нажатия комбинации из 2-х кнопок поставил таймер на 150 мс, чтоб не определялась кнопка, которая раньше нажалась при нажатии 2-х кнопок одновременно.

В блоке добавил выводы на монитор, чтоб визуально проверять работает ли все и правильно.
А вот как организовать подпрограмму при нажатии любой из 6-ти кнопок. Тут у меня ступор cry
Прикрепления: 5721891.flp(539Kb)
 
Олег Дата: Суббота, 23.01.2016, 23:13 | Сообщение # 28
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Offline
Вы напишите структуру меню, какие данные на какой странице, какими кнопками вы  хотите менять данные и т.д. Это можно делать различными способами. 
 Всегда сначала продумывается структура и пишется на бумаге как это будет выглядеть а потом уже думается как претворить в жизнь, а не наоборот.
 Под вашу структуру и сделаем.
 
AlexRyzh Дата: Воскресенье, 24.01.2016, 00:48 | Сообщение # 29
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата Олег ()
Вы напишите структуру меню, какие данные на какой странице, какими кнопками вы  хотите менять данные и т.д.
Понятно. Попробую изобразить структуру. Может и в голову чё придет... smile
 
Олег Дата: Воскресенье, 24.01.2016, 00:56 | Сообщение # 30
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Offline
Обычно так и происходит - правильно поставленная задача снимает 90% вопросов. smile
 
Форум » Основной » Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!) » Первая разработка в программе (для теплицы, гроубокса) (Изучение работы программы на практике. Постепенное решение.)
Страница 2 из 6«123456»
Поиск:

FLProg © 2016
Яндекс.Метрика