Прошу помочь с кодом
- Войдите на сайт для отправки комментариев
Чт, 25/06/2020 - 21:31
Помогите пожалуйста!
Подключил через Ардуино уно датчик препятствия к реле. Скетч нашел в сети. Установил продолжительность включения реле. Столкнулся с тем, что реле выключается через 2 сек после того как пропадает сигнал о препятствии с датчика. А необходимо чтобы выключался не зависимо от того пропало препятствие или нет.
Вставьте код по правилам форума, пожалуйста.
Извиняюсь, не освоился еще! Да и не доступна эта функция с телефона.
Маладец.
теперь плз внятно распиши(те) что и в зависимости от чего должно происходить.
желательно алгоритм
желательно блок-схемой (пример)
словестное изложение некатет и даже не гипотенуза
при этом раскладе зачем каждый раз обьявлять переменную.
не прощще ли делать иф(дигиталрид...)
а где ващще второй пин обьявлен как инпут? И почему бы его не подтянуть к плюсу когда ему посчстливится стать объявленным ?
а что имеено за датчик препятствия и как он подключен?
а как обеспечивается питание всего этаго блахалепия ?
и почему delay(500) это секунда ?
В 12 строке например : включаем реле- посылаем низкий уровень сигнала- HIGH мне кажется или Вы сами себя путаете ?
и не ищите «скетч» в сети. Скетч вообще слово малоприличное. Типа написал тут я всякую хрень, которую то и кодом назвать нельзя...
Пишите КОД сами , с пониманием того что Вам надо и что именно Вы САМИ пишете. В сети много помоев, не все эти ёгурты полезны.
Если бы я ещё разбирался в написании! Второй день как начал с этим заморачиваться.
Датчик инфракрасный вроде. Два как бы диода стоят. Передатчик и приемник. Не знаю как по умному называется. Руку подносишь сигнал на д2 пин идет. С д4 сигнал на реле подается, реле замыкается. Запитал от платы, вроде работает. Но куда задержку прописать пока не представляю. Отсчет 2 сек начинается только когда руку уберешь, а надо чтобы сразу отсчитал и отключился до следующего срабатывания датчика.
Возможно через несколько дней уже разберусь с написанием кода (скетчем много кто называет), читаю пока.
Если не сложно, а тебе (вам) не сложно, помогите.
Если желания такового не возникло, благодарю за внимание.
Код наверное не весь скопировал. Реально пин 2 не объяален!)))
Переставьте delay(2000) в ветку где включается реле и добавьте выключение реле перед delay(500). Если нужно что то более серьезное, то сразу начинайте читать."millis вместо delay" и про конечные автоматы пока не наступит понимание, без этого будете спотыкаться на всех процессах, которые происходят параллельно (конкретно тут оно не надо, но хороший пример чтобы с него начать что то делать без delay).
и сразу на форум "ПАМАГИТИ!!!"
Тебе хочется код или научиться?
в сетапе вы реле включили (хотя в комментариях пишите, что выключили)
а в лупе где у вас включение после пропадания сигнала и выключения? видимо в строке между 15 и 16 должно быть включение....
и про пин2 ничего не обьявлено (как уже было отмечено)
Не так "ПАМАГИТИ!!!" Просто помогите, если есть время и желание.
Ну и код нужен срочно, т.к. механическая часть устройства уже готова, а управление еще не работает как надо.
Да работаю конечно, не сдаюсь. Потому спрашиваю, что не так и анализирую. Мне для самодельных устройств, коды примитивные для максимум 4 реле. Совсем углубляться в изучение кодирования особого смысла нет. Более чем за 50 лет жизни особой нужды не было.
Осваиваю потихоньку, понимание придет со временем. Также хотелось наладить контакт с адекватным прогером, на будущее. Чтобы обЬяснял, а не давил эрудицией.)))
Был бы код посложней, предложил бы денег.
Полная версия кода скачанного из сети. Странно, но работает вроде.
Bravlad - а вы вообще читаете, что вам пишут? - столько обсуждали и опять вы выложили какую-то хрень!
разберитесь наконец с тем, что у вас реально делается в строках 16, 20, 23, 25 и 28. Приведите строчки и комментарии к ним в соответствие. Обьявите пин 2, наконец.
Это. в конце концов, неуважение к сообществу - выкладывать код, где напротив строчки delay(500) написано "задержка 1 секунда".
А поступать так дважды - я расцениваю как издевательство
Комментарии остались от прежних настроек. Не обратил внимания. Извиняюсь, если невольно оскорбил чувства верующих!
Немного сложно осваивать кодинг держа в одной руке паяльник, в другой гаечный ключ и ногой пытаясь сваривать два куска металла (чем еще заниматься на карантине?). Реально извиняюсь!
Немного сложно осваивать кодинг держа в одной руке паяльник, в другой гаечный ключ и ногой пытаясь сваривать два куска металла (чем еще заниматься на карантине?). Реально извиняюсь!
карантин, вроде, давно кончился уже.... да и не особо он и был.
Что касается кода - самая большая проблема с комментами к строкам 16. 23 и 25. Они противоречат друг другу. Реально непонятно, как именно должно работать реле.
Morroc можно Ваш E-mail для связи?
Немного сложно осваивать кодинг держа в одной руке паяльник, в другой гаечный ключ и ногой пытаясь сваривать два куска металла (чем еще заниматься на карантине?). Реально извиняюсь!
карантин, вроде, давно кончился уже.... да и не особо он и был.
Что касается кода - самая большая проблема с комментами к строкам 16. 23 и 25. Они противоречат друг другу. Реально непонятно, как именно должно работать реле.
Я в Казахстане. Карантин по второму кругу пошел. Комменты остались без изменений из скачанного скетча (я правильно называю?). Моя ошибка конечно.
Немного сложно осваивать кодинг держа в одной руке паяльник, в другой гаечный ключ и ногой пытаясь сваривать два куска металла (чем еще заниматься на карантине?). Реально извиняюсь!
карантин, вроде, давно кончился уже.... да и не особо он и был.
Что касается кода - самая большая проблема с комментами к строкам 16. 23 и 25. Они противоречат друг другу. Реально непонятно, как именно должно работать реле.
Я в Казахстане. Карантин по второму кругу пошел. Комменты остались без изменений из скачанного скетча (я правильно называю?). Моя ошибка конечно.
Вот в Ардублоке собрал. Все равно не так как надо. Необходимо чтобы реле открылось при появлении препятствия, отработало заданное количество сек независимо от того пропал сигнал датчика или нет и закрылось до следующего срабатывания датчика.И еще, реле срабатывает при подаче минуса, а не плюса (это важно?)
И еще, реле срабатывает при подаче минуса, а не плюса (это важно?)
так зачем же вы в коде пишете так, как будто реле открывается плюсом? - может потому у вас и не работает? :)
если у вас деньги отнимут. когда должны были дать - это важно? :)
И еще, реле срабатывает при подаче минуса, а не плюса (это важно?)
так зачем же вы в коде пишете так, как будто реле открывается плюсом? - может потому у вас и не работает? :)
если у вас деньги отнимут. когда должны были дать - это важно? :)
В том то и дело, что работает, но не так )))
Что сделать? HIGH на LOW поменять?
Что сделать? HIGH на LOW поменять?
ну вообще-то да. И наоборот тоже - где было LOW, поменять на HIGH
Вообще, подобные вопросы пугают... Вы вообще ничего-ничего не понимаете в этом коде? Может тогда сначала книжку почитать7
Что сделать? HIGH на LOW поменять?
ну вообще-то да. И наоборот тоже - где было LOW, поменять на HIGH
Вообще, подобные вопросы пугают... Вы вообще ничего-ничего не понимаете в этом коде? Может тогда сначала книжку почитать7
Вы в Песочнице ожидали других вопросов? Была бы ясельная группа туда бы пошел :)
Я же написал выше. В коде как свинья в апельсинах! Для примитивного, нужного в данный момент скетча, смысла углубляться в изучение нет. Код нужен для управления самодельным устройством. Механика готова, аппаратная часть готова, управление не работает как надо.
Для примитивного, нужного в данный момент скетча, смысла углубляться в изучение нет.
Вы. простите, зачем это пишете? Если вам, даже ради нужного лично вам скетча "нет смысла углубляться" в свою задачу - то что вы ждете от совсем посторонних людей? Что они будут тратить время. помогая тому. кому "нет смысла углубляться"?
Менял уже HIGH на LOW и наоборот. Реле начинает работать зеркально, задержки остаются по прежнему. Перед включением реле задержка есть, перед выключеним нет. И пока препятствие не уберешь реакции ноль.
Для примитивного, нужного в данный момент скетча, смысла углубляться в изучение нет.
Вы. простите, зачем это пишете? Если вам, даже ради нужного лично вам скетча "нет смысла углубляться" в свою задачу - то что вы ждете от совсем посторонних людей?
Да чтобы посоветовали куда перенести задержку в коде
Если следовать вашей логике - девайс сработает только один раз. Вы действительно этого хотите?
Спроси лучше у автора кода.
Спроси лучше у автора кода.
Вот, кстати, на тему реформы образования... Разница с автором соседней темы наверно лет в 50, а психология одинаковая - учиться не буду. дайте готовое...
а ты говоришь реформа
Да, правильно, один раз при появлении сигнала с датчика, отработал заданный период (не зависимо пропал сигнал или нет) и отключился до следующего появления сигнала.
А если сигнал не исчезал за все время задержки - тогда как? Это новый сигнал или старый? Надо на него реагировать или нет?
а если сигнал исчез, но появился в вмомент окончания задержки7
вы сначала продумайте логику. учтите все возможные варианты - а уж только потом садитесь за код
Спроси лучше у автора кода.
Вот, кстати, на тему реформы образования... Разница с автором соседней темы наверно лет в 50, а психология одинаковая - учиться не буду. дайте готовое...
а ты говоришь реформа
Да буду, буду учиться!))) Скетч просто нужен срочно!
Оно уже так и работает, как задумывалось - если препятствие не убирать, то после истечения периода сигнал появится снова, все пойдет по кругу.
Так что исправлять тут нечего.
А если сигнал не исчезал за все время задержки - тогда как? Это новый сигнал или старый? Надо на него реагировать или нет?
а если сигнал исчез, но появился в вмомент окончания задержки7
вы сначала продумайте логику. учтите все возможные варианты - а уж только потом садитесь за код
Если сигнал не исчезал, то считается старым. Реагировать не надо. Появился в момент окончания задержки, не засчитывать. Какой-то таймаут надо установить?
Спроси лучше у автора кода.
Не актуально уже. Немного ниже новый код. Более корректный.
Спроси лучше у автора кода.
Вот, кстати, на тему реформы образования... Разница с автором соседней темы наверно лет в 50, а психология одинаковая - учиться не буду. дайте готовое...
а ты говоришь реформа
Для того чтобы понять смысл четверостишия на незнакомом языке надо ли учить весь язык?
Не спорю, выучить язык лучше. Но если это, допустим, суахили? И нужен он раз в 10 лет? :)))
И корректно ли кидаться тапками в человека который не знает языка на котором вы свободно общаетесь?
И тему я создал Прошу помочь с кодом, а не посоветуйте что мне ещё изучить или давайте обсудим мои достоинства и недостатки.
В общем-то все просто! Есть время и желание помочь, помогите! Нет, пройдите мимо!
За редким исключением большинство комментариев бесполезны.
Куда-то переносить задержки бессмысленно. Нужно заводить переменную-флаг. Появился сигнал с датчика - если флаг опущен (false), то поднимать его (присваивать true) и включать реле, через две секунды реле выключить, флаг не трогать, если флаг уже поднят, значит реле уже срабатывало - ничего не делать. Если сигнал с датчика пропал - опустить флаг (присвоить ему false) для следующего раза.
Куда-то переносить задержки бессмысленно. Нужно заводить переменную-флаг. Появился сигнал с датчика - если флаг опущен (false), то поднимать его (присваивать true) и включать реле, через две секунды реле выключить, флаг не трогать, если флаг уже поднят, значит реле уже срабатывало - ничего не делать. Если сигнал с датчика пропал - опустить флаг (присвоить ему false) для следующего раза.
С флагами я ещё сутки разбираться буду!)))
Код для линейки из 4 реле сможете написать? На возмездной основе? E-mail укажите
Уже 4 реле? А датчик по-прежнему один?
Уже 4 реле? А датчик по-прежнему один?
Да, датчик один. Нужна возможность регулировки задержки включения каждого реле с момента срабатывания датчика, изменения продолжительности работы каждого реле, до завершения цикла игнорировать сигнал или сигналы с датчика (ваше предложение с флагами?) По завершении цикла таймаут.
Т.е. чтобы не все реле запускались сразу, а с заданной задержкой.
Ну и исключить дребезг или мы уже исключили?
Не, ну я щитаю - нормальное развитие событий. Через пару часов появится дисплей 320x200 с тачем и датчик, работающий по модбасу.
Дребезг чего?
Это точно все?
Не, ну я щитаю - нормальное развитие событий. Через пару часов появится дисплей 320x200 с тачем и датчик, работающий по модбасу.
)))
Дребезг чего?
Это точно все?
В данном случае многочисленные срабатывания датчика во время исполнения цикла. Или не правильное название? Мы же это исключили флагами и таймаутом?
Вроде все.
Что я не учёл, подскажите
А если сигнал не исчезал за все время задержки - тогда как? Это новый сигнал или старый? Надо на него реагировать или нет?
а если сигнал исчез, но появился в вмомент окончания задержки7
вы сначала продумайте логику. учтите все возможные варианты - а уж только потом садитесь за код
Огромное спасибо за вопросы по существу!
Уже 4 реле? А датчик по-прежнему один?
Да, датчик один. Нужна возможность регулировки задержки включения каждого реле с момента срабатывания датчика, изменения продолжительности работы каждого реле, до завершения цикла игнорировать сигнал или сигналы с датчика (ваше предложение с флагами?) По завершении цикла таймаут.
Т.е. чтобы не все реле запускались сразу, а с заданной задержкой.
Ну и исключить дребезг или мы уже исключили?
Для таких случаев требуется миллис вместо делай?