Датчик освещенности

Использование прочих датчиков и энкодеров и пользовательских блоков к ним
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Датчик освещенности

Сообщение Naladchik »

Labu559 писал(а): 10 сен 2018, 17:14и помещается в секцию SETUP и программа в Loop работает с "чистого листа
Стандартными средствами FLProg в секцию setup что либо просто так не записать.
А вот в настройках специально под это выделенной платы (лучше всего подходит первая) включить настройку "Выполнение по условию" и в эту плату прописать стартовый алгоритм предустановки значений и положений- вот это уже реально.
Win10-64. FLProg Portable.
Изображение
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

Датчик освещенности

Сообщение Labu559 »

Naladchik писал(а): 10 сен 2018, 19:57Стандартными средствами FLProg в секцию setup что либо просто так не записать
А пользовательский блок с функцией, которая вызывается в Setup- это нестандартное средство?
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Датчик освещенности

Сообщение Naladchik »

В этой фразе ключевое слово
Naladchik писал(а): 10 сен 2018, 19:57...просто так...
Потому что на Ваше предложение ответ был:
Beer100 писал(а): 10 сен 2018, 17:32Мысль, наверное, интересная, но "сходу" понять о чем она - не могу.
Потому и была упомянута настройка "Выполнение по условию".
Win10-64. FLProg Portable.
Изображение
Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02 сен 2018, 20:41
Имя: Serg

Датчик освещенности

Сообщение Beer100 »

Ой, как то это очень много для меня слазу и не понятно.
А что значит "специально под это выделенная плата"?
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

Датчик освещенности

Сообщение Labu559 »

bsn писал(а): 10 сен 2018, 16:50Можно попробовать поставить хотя бы один конечник внизу.
bsn писал(а): 10 сен 2018, 16:50можно попробовать заставить логику, при каждом первичном появлении питания двигаться только вниз до срабатывания искомого единственного конечника
bsn писал(а): 10 сен 2018, 16:50Как ему посчитать сколько осталось импульсов до верха?
Я предложил способ как вернуть механизм в начальное положение и считать импульсы до верха с 0.
Уточняю на могучем: в Setup-е в цикле do {
вращать двигатель вниз} while (разомкнётся концевик в нижнем положении);
Сбросить счётчик импульсов.
Все, куда делась ошибка, почему не накапливается?
bsn писал(а): 10 сен 2018, 18:11Рассматривался вариант вообще без конечников
Извините, возможно, что первые две цитаты писал другой bsn.
Naladchik писал(а): 10 сен 2018, 21:13Потому что на Ваше предложение ответ был:
Постарался исправиться и объяснить своё предложение реализации не моей идеи немного выше. Теперь наверное понятно, что проще некуда? А вот сбои електропитания наверное должны отслеживать не устройство закрывания штор или включения вентилятора в туалете, как считаете? Может дешевле применить супервизор ценой 9 центов? "Умный дом" наверное не то, что по разным мелочам шлёт СМС? Хотя, у каждого своё мнение и аргументы.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Датчик освещенности

Сообщение Naladchik »

Beer100 писал(а): 10 сен 2018, 22:18А что значит "специально под это выделенная плата"?
Это значит что:
1. на какой то плате (желательно первой) вы прописываете всю логику, согласно которой Ваша система устанавливается в исходное состояние.
2. в переменных объявляете переменную с типом boolean и начальным состоянием True
[spoiler]
111.png
[/spoiler]
3. в настройках платы включаете "выполнение по условию" и прописываете переменную.
[spoiler]
222.png
[/spoiler]
4. Описываете логику, устанавливающую систему в исходное состояние, изменяете состояние переменной
[spoiler]
333.png
[/spoiler]
5. На остальных платах описываете логику работы системы в нормальных условиях.
В итоге получаете участок логики, который выполняется однократно, при первом запуске.
Так же, в случае каких то сбоев в процессе выполнения основной программы данный участок можно выполнить просто задав значение True этой переменной.
Labu559 писал(а): 11 сен 2018, 01:16и объяснить своё предложение
Если я правильно понял, то топик стартер не знаком с Си.
[spoiler]и такие слова как Setup, do, while ему ни чем не говорят. поправьте если ошибаюсь [/spoiler]
Ну и в завершение. Вот вывели Вы логику начальной установки в секцию Setup, в процессе работы произошел сбой (ошибка там накопилась) и как без рестарта контроллера вернуть в исходное состояние?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64. FLProg Portable.
Изображение
Аватара пользователя
bsn
Лейтенант
Сообщения: 411
Зарегистрирован: 22 июл 2018, 07:24
Откуда: Новошахтинск
Имя: Сергей
Благодарил (а): 95 раз
Поблагодарили: 23 раза

Датчик освещенности

Сообщение bsn »

Labu559 писал(а): 11 сен 2018, 01:16 bsn писал(а): ↑
Вчера{, 18:11}
Рассматривался вариант вообще без конечников

Извините, возможно, что первые две цитаты писал другой bsn.
Не, это bsn писал. Причём перечислял по пунктам возможные проблемные варианты.
Пункт 1, как раз, был про вариант без конечников:
bsn писал(а): 10 сен 2018, 16:501.... При повторном появлении питания, сможет ли контроллер понять, в каком месте штора, и сколько шагов нужно ещё сделать? Были бы конечники - всё было бы просто
А вот выдёргивал фразы, меняя при этом смысловой контент могучего русского, уже labu559.
И далее:
Labu559 писал(а): 11 сен 2018, 01:16 указанные Вами проблемы устраняются програмным путём.
Раз уважаемый labu559 не указывает какие именно проблемные пункты устраняются программным путём - значит выходит всё устраняется програмно. Увы, пункт 1-й не устраняется. На что я, в посте №37, очень вежливо, с применением волшебного слова пожалуйста, и указал уважаемому Labu559.
Делай как должно, и пусть всё будет как будет.
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

Датчик освещенности

Сообщение Labu559 »

Naladchik писал(а): 11 сен 2018, 07:01как без рестарта контроллера вернуть в исходное состояние?
Beer100 писал(а): 10 сен 2018, 18:27А на случай такого критичного сбоя по питанию, система должна блокироваться и выдавать ошибку, пока ее не приведет в чувства
Рестарт должен делать предназначенный для этого контроллер питания (supervisor) ценой уже 10 центов (или подобные, коих обилие).
Уважаемый [ref]bsn[/ref], прошу Вас, перечитайте ещё раз сообщение №45. Мне импонирует позиция Уважаемого [ref]Naladchik[/ref], который предложил свою концепцию и грамотно и последовательно её развивает. Не нравится Вам Ваша собственная концепция с концевиком, (зачем было её предлагать)- хорошо оставим её в покое. Я больше не буду пытаться после Ваших
bsn писал(а): 10 сен 2018, 16:50всё равно не айс
сделать из неё Айс. О "могучем" слова касаются кода на Wiring, для не знающих таковых(Си-подобных) и английского, сомневаюсь, что ниже более понятно.
void setup()
{
do {
digitalWrite(leftDir, HIGH);
delay(10);
} while (digitalRead(limitSwitch);
digitalWrite(leftDir, LOW);
counter= 0;
}
или пожалуй лучше так:
void setup()
{
digitalWrite(leftDir, HIGH);
do { delay(10);
} while (digitalRead(limitSwitch);
digitalWrite(leftDir, LOW);
counter= 0;
}
bsn писал(а): 11 сен 2018, 07:45в посте №37, очень вежливо, с применением волшебного слова пожалуйста
- ???
Попытку с технического обсуждения перейти на личностное принимаю как вежливое предложение уйти. Повинуюсь. Всём Удачи!
Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02 сен 2018, 20:41
Имя: Serg

Датчик освещенности

Сообщение Beer100 »

Naladchik писал(а): 11 сен 2018, 07:01Это значит что:
1. на какой то плате (желательно первой)
Логика понравилась, спасибо!
А первая плата, вторая и т.д.... это условность? Все работает на одном контроллере?
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Датчик освещенности

Сообщение Naladchik »

Beer100 писал(а): 11 сен 2018, 12:00А первая плата, вторая и т.д.... это условность? Все работает на одном контроллере?
Контроллер один, Алгоритм один и использование плат позволяет этот алгоритм разбить на блоки, где каждый блок решает одну или несколько определенных задач. В любом случае все платы выполняются последовательно (если не включены условия их обхода).
Разбивка на платы облегчает понимание всего алгоритма в целом. Связь между платами через переменные. (Мини ликбез :) ).
Win10-64. FLProg Portable.
Изображение
Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02 сен 2018, 20:41
Имя: Serg

Датчик освещенности

Сообщение Beer100 »

Натолкните на мысль!
На вход компаратора подключены два фоторезистора. Один смотрит в комнату, другой на улицу. Все работает.
Как сделать, что бы в момент, когда освещенность почти сравнялась, не происходило переключения компаратора туда-сюда. Например, из-за облаков.
Т.е. надо, что бы 0 или1 пропускались с выхода с задержкой, к примеру, 10 мин. Когда уже надежно стемнеет.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Датчик освещенности

Сообщение Naladchik »

Beer100 писал(а): 11 сен 2018, 15:02надо, что бы 0 или1 пропускались с выхода с задержкой
Ну так в вопросе уже и ответ - таймер TON
Win10-64. FLProg Portable.
Изображение
Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02 сен 2018, 20:41
Имя: Serg

Датчик освещенности

Сообщение Beer100 »

Таймер только спадом запускается. А надо и фронт тоже отсрочить на 10 мин.
Ведь вечером фронт, а утром спад.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Датчик освещенности

Сообщение Naladchik »

Beer100 писал(а): 11 сен 2018, 18:22Таймер только спадом запускается. А надо и фронт тоже отсрочить на 10 мин.
тогда 2 таймера, TON и TOF последовательно первый задержит фронт, второй задержит спад.
1.png
Только ерунда это, тут надо гистерезис организовать.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64. FLProg Portable.
Изображение
Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02 сен 2018, 20:41
Имя: Serg

Датчик освещенности

Сообщение Beer100 »

Naladchik писал(а): 11 сен 2018, 19:58тогда 2 таймера, TON и TOF последовательно первый задержит фронт, второй задержит спад.
Нет, не пойдет. На выходе компаратора 0 или 1 задают направления включения двигателей. А тут эта логика налушается.
А гистерезис на уровне работы фоторезисторов?
Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18 дек 2017, 03:16
Откуда: Питер

Датчик освещенности

Сообщение Rishelie »

Все таки концевики ставить нужно. И именно по питанию. Защита есть защита.
Я таким макаром делал подъемник бельевых перекладин под потолок, на базе старого редуктора от медицинской кровати. Принцип выше уже упомянули - винтовая штанга, по ней бегает гайка, которая упирается в два концевика. Схема стара как мир и надежна. Ну а кнопки, помимо блокировки движения в одну сторону, можно параллельно и на контроллер выводить.
А уж программой можно делать в этих рамках что угодно.
Аватара пользователя
bsn
Лейтенант
Сообщения: 411
Зарегистрирован: 22 июл 2018, 07:24
Откуда: Новошахтинск
Имя: Сергей
Благодарил (а): 95 раз
Поблагодарили: 23 раза

Датчик освещенности

Сообщение bsn »

Naladchik писал(а): 11 сен 2018, 19:58тут надо гистерезис организовать.
Совершенно верно. Час назад прочёл про таймер, писать некогда было. Сейчас сел написать про гистерезис. Вы всё уже озвучили.
Вот мой гистерезис (приводил в посту №10 свой гистерезис в LAD), в FBD так должно получиться:
Гистерезис.png
Может кто сможет проще гистерезис организовать. Самое главное работает более 2-х лет. Никакие тучи никаких мерцаний никогда не вызывали. Сбоев не зафиксировано.
Beer100 писал(а): 11 сен 2018, 15:02На вход компаратора подключены два фоторезистора. Один смотрит в комнату, другой на улицу. Все работает.
Как я понял - всё уже работает. Но видимо иногда передёргивается выход компаратора из за туч.
А только ли из за них? Есть у меня сомнения насчёт второго комнатного фотодатчика. Вы подойдёте в белой рубашке посмотреть в окно - что там на улице? Внутренний фотодатчик получит дополнительную порцию освещения (от светлой одежы) - и штора закроется у вас перед носом . Действительно ли нужен внутренний фотодатчик?
И что там с окном - в какую сторону света смотрит? При худшем сценарии окно смотрит на север. В полдень, из открытой двери, попали в комнату блики света с южной стороны. Комнатный фотодатчик почувствует это - и опять закроет штору.
Ваш проект, вам решать. Но я для себя засомневался бы - нужен ли внутренний фотодатчик.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось bsn 11 сен 2018, 23:19, всего редактировалось 2 раза.
Делай как должно, и пусть всё будет как будет.
Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02 сен 2018, 20:41
Имя: Serg

Датчик освещенности

Сообщение Beer100 »

bsn писал(а): 11 сен 2018, 21:12Как я понял - всё уже работает.
Работает только механика. От кнопки. А фоторезисторы пока только на столе с ардуиной.

На счет "белой рубашки" не совсем так. У меня как раз и цель вся в этом: если внутри комнаты включили свет, то шторы закрылись, так как руками бежать закрывать мало кому охота. Но надо, что бы они закрылись надолго. До утра.
Аватара пользователя
bsn
Лейтенант
Сообщения: 411
Зарегистрирован: 22 июл 2018, 07:24
Откуда: Новошахтинск
Имя: Сергей
Благодарил (а): 95 раз
Поблагодарили: 23 раза

Датчик освещенности

Сообщение bsn »

Beer100 писал(а): 11 сен 2018, 21:20На счет "белой рубашки" не совсем так. У меня как раз и цель вся в этом
Тогда можно попробовать так:
Гистерезис2.png
В блоке суммирования на входе I2 будете подбирать величину гистерезиса. Предполагаю, что делать гистерезис по обеим фотодатчикам нет смысла. Но если есть желание поэкспериментировать - можно добавить такую же цепочку и в нижний фотодатчик. Тогда на управляющий вход S второго нижнего Switch нужно будет подавать сигнал с выхода проинвентированого OR (который идёт к Дв1).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Делай как должно, и пусть всё будет как будет.
Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02 сен 2018, 20:41
Имя: Serg

Датчик освещенности

Сообщение Beer100 »

Да, красиво! Спасибо. Вполне достаточно для одного фотодатчика.
Только ресурсов на это уходит многовато. Или нет?

Отправлено спустя 8 минут 13 секунд:
Naladchik писал(а): 11 сен 2018, 07:013. в настройках платы включаете "выполнение по условию" и прописываете переменную.
Не могу найти, где "настройки платы"?
Ответить

Вернуться в «Прочие датчики и энкодеры»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость