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

Использование прочих датчиков и энкодеров и пользовательских блоков к ним
Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

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

#41

Сообщение Naladchik » 10.09.2018{, 19:57}

Labu559 писал(а):
10.09.2018{, 17:14}
и помещается в секцию SETUP и программа в Loop работает с "чистого листа
Стандартными средствами FLProg в секцию setup что либо просто так не записать.
А вот в настройках специально под это выделенной платы (лучше всего подходит первая) включить настройку "Выполнение по условию" и в эту плату прописать стартовый алгоритм предустановки значений и положений- вот это уже реально.
Win10-64. FLProg Portable.
Изображение

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

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

#42

Сообщение Labu559 » 10.09.2018{, 21:03}

Naladchik писал(а):
10.09.2018{, 19:57}
Стандартными средствами FLProg в секцию setup что либо просто так не записать
А пользовательский блок с функцией, которая вызывается в Setup- это нестандартное средство?

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

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

#43

Сообщение Naladchik » 10.09.2018{, 21:13}

В этой фразе ключевое слово
Naladchik писал(а):
10.09.2018{, 19:57}
...просто так...
Потому что на Ваше предложение ответ был:
Beer100 писал(а):
10.09.2018{, 17:32}
Мысль, наверное, интересная, но "сходу" понять о чем она - не могу.
Потому и была упомянута настройка "Выполнение по условию".
Win10-64. FLProg Portable.
Изображение

Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02.09.2018{, 20:41}
Репутация: 0
Имя: Serg

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

#44

Сообщение Beer100 » 10.09.2018{, 22:18}

Ой, как то это очень много для меня слазу и не понятно.
А что значит "специально под это выделенная плата"?

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

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

#45

Сообщение Labu559 » 11.09.2018{, 01:16}

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

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

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

#46

Сообщение Naladchik » 11.09.2018{, 07:01}

Beer100 писал(а):
10.09.2018{, 22:18}
А что значит "специально под это выделенная плата"?
Это значит что:
1. на какой то плате (желательно первой) вы прописываете всю логику, согласно которой Ваша система устанавливается в исходное состояние.
2. в переменных объявляете переменную с типом boolean и начальным состоянием True
СпойлерПоказать
111.png
3. в настройках платы включаете "выполнение по условию" и прописываете переменную.
СпойлерПоказать
222.png
4. Описываете логику, устанавливающую систему в исходное состояние, изменяете состояние переменной
СпойлерПоказать
333.png
333.png (14.07 КБ) 1710 просмотров
5. На остальных платах описываете логику работы системы в нормальных условиях.
В итоге получаете участок логики, который выполняется однократно, при первом запуске.
Так же, в случае каких то сбоев в процессе выполнения основной программы данный участок можно выполнить просто задав значение True этой переменной.
Labu559 писал(а):
11.09.2018{, 01:16}
и объяснить своё предложение
Если я правильно понял, то топик стартер не знаком с Си.
СпойлерПоказать
и такие слова как Setup, do, while ему ни чем не говорят. поправьте если ошибаюсь
Ну и в завершение. Вот вывели Вы логику начальной установки в секцию Setup, в процессе работы произошел сбой (ошибка там накопилась) и как без рестарта контроллера вернуть в исходное состояние?
Win10-64. FLProg Portable.
Изображение

Аватара пользователя
bsn
Лейтенант
Сообщения: 347
Зарегистрирован: 22.07.2018{, 07:24}
Репутация: 90
Откуда: Ростовская обл.
Имя: Сергей

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

#47

Сообщение bsn » 11.09.2018{, 07:45}

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

Извините, возможно, что первые две цитаты писал другой bsn.
Не, это bsn писал. Причём перечислял по пунктам возможные проблемные варианты.
Пункт 1, как раз, был про вариант без конечников:
bsn писал(а):
10.09.2018{, 16:50}
1.... При повторном появлении питания, сможет ли контроллер понять, в каком месте штора, и сколько шагов нужно ещё сделать? Были бы конечники - всё было бы просто
А вот выдёргивал фразы, меняя при этом смысловой контент могучего русского, уже labu559.
И далее:
Labu559 писал(а):
11.09.2018{, 01:16}
указанные Вами проблемы устраняются програмным путём.
Раз уважаемый labu559 не указывает какие именно проблемные пункты устраняются программным путём - значит выходит всё устраняется програмно. Увы, пункт 1-й не устраняется. На что я, в посте №37, очень вежливо, с применением волшебного слова пожалуйста, и указал уважаемому Labu559.

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

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

#48

Сообщение Labu559 » 11.09.2018{, 08:53}

Naladchik писал(а):
11.09.2018{, 07:01}
как без рестарта контроллера вернуть в исходное состояние?
Beer100 писал(а):
10.09.2018{, 18:27}
А на случай такого критичного сбоя по питанию, система должна блокироваться и выдавать ошибку, пока ее не приведет в чувства
Рестарт должен делать предназначенный для этого контроллер питания (supervisor) ценой уже 10 центов (или подобные, коих обилие).
Уважаемый bsn, прошу Вас, перечитайте ещё раз сообщение №45. Мне импонирует позиция Уважаемого Naladchik, который предложил свою концепцию и грамотно и последовательно её развивает. Не нравится Вам Ваша собственная концепция с концевиком, (зачем было её предлагать)- хорошо оставим её в покое. Я больше не буду пытаться после Ваших
bsn писал(а):
10.09.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.09.2018{, 07:45}
в посте №37, очень вежливо, с применением волшебного слова пожалуйста
- ???
Попытку с технического обсуждения перейти на личностное принимаю как вежливое предложение уйти. Повинуюсь. Всём Удачи!

Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02.09.2018{, 20:41}
Репутация: 0
Имя: Serg

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

#49

Сообщение Beer100 » 11.09.2018{, 12:00}

Naladchik писал(а):
11.09.2018{, 07:01}
Это значит что:
1. на какой то плате (желательно первой)
Логика понравилась, спасибо!
А первая плата, вторая и т.д.... это условность? Все работает на одном контроллере?

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

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

#50

Сообщение Naladchik » 11.09.2018{, 12:11}

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

Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02.09.2018{, 20:41}
Репутация: 0
Имя: Serg

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

#51

Сообщение Beer100 » 11.09.2018{, 15:02}

Натолкните на мысль!
На вход компаратора подключены два фоторезистора. Один смотрит в комнату, другой на улицу. Все работает.
Как сделать, что бы в момент, когда освещенность почти сравнялась, не происходило переключения компаратора туда-сюда. Например, из-за облаков.
Т.е. надо, что бы 0 или1 пропускались с выхода с задержкой, к примеру, 10 мин. Когда уже надежно стемнеет.
Вложения
Безымянный.png

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

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

#52

Сообщение Naladchik » 11.09.2018{, 16:53}

Beer100 писал(а):
11.09.2018{, 15:02}
надо, что бы 0 или1 пропускались с выхода с задержкой
Ну так в вопросе уже и ответ - таймер TON
Win10-64. FLProg Portable.
Изображение

Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02.09.2018{, 20:41}
Репутация: 0
Имя: Serg

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

#53

Сообщение Beer100 » 11.09.2018{, 18:22}

Таймер только спадом запускается. А надо и фронт тоже отсрочить на 10 мин.
Ведь вечером фронт, а утром спад.

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

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

#54

Сообщение Naladchik » 11.09.2018{, 19:58}

Beer100 писал(а):
11.09.2018{, 18:22}
Таймер только спадом запускается. А надо и фронт тоже отсрочить на 10 мин.
тогда 2 таймера, TON и TOF последовательно первый задержит фронт, второй задержит спад.
1.png
1.png (1.7 КБ) 1650 просмотров
Только ерунда это, тут надо гистерезис организовать.
Win10-64. FLProg Portable.
Изображение

Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02.09.2018{, 20:41}
Репутация: 0
Имя: Serg

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

#55

Сообщение Beer100 » 11.09.2018{, 20:35}

Naladchik писал(а):
11.09.2018{, 19:58}
тогда 2 таймера, TON и TOF последовательно первый задержит фронт, второй задержит спад.
Нет, не пойдет. На выходе компаратора 0 или 1 задают направления включения двигателей. А тут эта логика налушается.
А гистерезис на уровне работы фоторезисторов?

Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18.12.2017{, 03:16}
Репутация: 6
Откуда: Питер

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

#56

Сообщение Rishelie » 11.09.2018{, 21:00}

Все таки концевики ставить нужно. И именно по питанию. Защита есть защита.
Я таким макаром делал подъемник бельевых перекладин под потолок, на базе старого редуктора от медицинской кровати. Принцип выше уже упомянули - винтовая штанга, по ней бегает гайка, которая упирается в два концевика. Схема стара как мир и надежна. Ну а кнопки, помимо блокировки движения в одну сторону, можно параллельно и на контроллер выводить.
А уж программой можно делать в этих рамках что угодно.

Аватара пользователя
bsn
Лейтенант
Сообщения: 347
Зарегистрирован: 22.07.2018{, 07:24}
Репутация: 90
Откуда: Ростовская обл.
Имя: Сергей

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

#57

Сообщение bsn » 11.09.2018{, 21:12}

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

Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02.09.2018{, 20:41}
Репутация: 0
Имя: Serg

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

#58

Сообщение Beer100 » 11.09.2018{, 21:20}

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

На счет "белой рубашки" не совсем так. У меня как раз и цель вся в этом: если внутри комнаты включили свет, то шторы закрылись, так как руками бежать закрывать мало кому охота. Но надо, что бы они закрылись надолго. До утра.

Аватара пользователя
bsn
Лейтенант
Сообщения: 347
Зарегистрирован: 22.07.2018{, 07:24}
Репутация: 90
Откуда: Ростовская обл.
Имя: Сергей

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

#59

Сообщение bsn » 11.09.2018{, 22:41}

Beer100 писал(а):
11.09.2018{, 21:20}
На счет "белой рубашки" не совсем так. У меня как раз и цель вся в этом
Тогда можно попробовать так:
Гистерезис2.png
Гистерезис2.png (6.3 КБ) 1629 просмотров
В блоке суммирования на входе I2 будете подбирать величину гистерезиса. Предполагаю, что делать гистерезис по обеим фотодатчикам нет смысла. Но если есть желание поэкспериментировать - можно добавить такую же цепочку и в нижний фотодатчик. Тогда на управляющий вход S второго нижнего Switch нужно будет подавать сигнал с выхода проинвентированого OR (который идёт к Дв1).

Beer100
Рядовой
Сообщения: 33
Зарегистрирован: 02.09.2018{, 20:41}
Репутация: 0
Имя: Serg

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

#60

Сообщение Beer100 » 11.09.2018{, 23:08}

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

Отправлено спустя 8 минут 13 секунд:
Naladchik писал(а):
11.09.2018{, 07:01}
3. в настройках платы включаете "выполнение по условию" и прописываете переменную.
Не могу найти, где "настройки платы"?

Ответить

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