Управление реле.
- Войдите на сайт для отправки комментариев
Чт, 14/11/2019 - 21:11
Необходимо управлять несколькими реле,нажатием на одну кнопку.Пример,нажимаем кнопку один,включилось реле 2,3,4,кнопку два включились реле 2,3,4,5 и т.д.Кнопок 9, реле 12,для одной платы управления и такое же количество для другой.Ардуинка Мега,платы реле на 5 вольт две по 16 штук есть.Написал прогу,одна плата работает,при добавлении других реле на другой плате,начинает работать не корректно!!!
В программировании не получилось - в новички? Описание совершенно непонятно. Что нажать , что включить?
Валекс, давайте спокойно.
Во-первых - я вас не троллю
Во-вторых - неужели так трудно прочитать одну страничку. чтобы узнать, как правильно вставлять код? - без кода ваш вопрос никакого смысла не имеет
В третьих, собственно то что вы написали - это не вопрос, это заказ: "Необходимо написать..."
Повторяю - давайте мирно и спокойно. Если у вас есть вопрос по вашему коду - вставляйте код. Если вы хотите. чтобы код кто-то написал за вас - есть раздел "Ищу исполнителя"
Код Вы видели в разделе "программирование",какой смысл его сюда сейчас скидывать,если кроме тех,кто его видел в том разделе,других нет,никто не попросил его.Если Вы,можете чем то помочь,то посмотрите код в том разделе,если будут вопросы по коду то отвечу.Спасибо.
похоже пациент безнадежен.
Ну-ну, желаю удачи...
у вас проблема в логике программы. Следите по строчкам:
Вот смотрите, допустим вы нажали кнопку A0 - Сработало условие в строчке 105, в строчке 106 включилось реле 2.
Но программа не останавливается. Она идет к условию строки 122, кнопка А1 не нажата - поэтому идем в ветвь else строчка 129 и в строке 131 выключаем реле.
И так практически с каждым реле - оно у вас включается в одном условии и тут же мгновенно выключается в других условиях.
чет мы с псами напилися и решил поумничать :) o_O
не проверял, жена все ардуины спрятала...
Понимаешь,все работало хорошо,пока не добавил еще одну плату с 16-ю реле,для работы с другой группой кнопок.Т.е. добавил адрес А8 и А9.Я читал,что задержка "делэй",это плохой оператор,от него лучше избавиться и перейти на другую задержку,но у меня не получается это сделать.тем более именно тогда происходит сбой,когда нажимается одна кнопка для реле одной группы и тут же нажимается кнопка для другой группы!!Тогда реле одной из плат начинает щелкать.Если пользоваться только одной любой кнопкой любой группы реле,то все будет работать,а вот при нажатии двух кнопок с разных пар программа дает сбой!Я понял,что процессору "не нравиться",когда к одной группе реле и другой группе обращаются одним и тем же оператором,поэтому процессор начинает "путаться".Тогда я изменил оператор по адресам А8,9 на delayMicroseconds(100),вроде начала работать,но реле не дожимает контакты,хотя светодиод реле показывает его включение.
Спасибо,проверю обязательно,а вдруг заработает!!Жаль конечно,что жена спрятала ардуинки,наверное перестал обращать внимание жене))Мне это не грозит,мне седьмой десяток уже пошел,уже даже пенсию получаю,а поэтому времени для того,чтобы что-то паять достаточно,а вот чтобы стать программистом,то кже не потяну,сложно очень.Ну спасибо за прогу,сейчас запущу,проверю!!!Если что,то дам знать!!
ну так может просто питания не хватает?
С питанием все хорошо.Мощный блок питания стоит.Мало того,я когда писал свою прогу,то сначала намучился с этим.Короче не было в проге оператора делэй,все реле срабатывают,но не дотягивают контакты,а вот когда добавил оератор делэй,то все стало работать,реле замыкаются.Понимаешь,если бы в мою прогу добавить подпрограмму на включение другой группы реле,то может стало работать хорошо,я смотрел другие проги,там много раз пользуются оператором "войд",я не знаю как его добавить себе,чтобы проверить,а добавить его именно для включения второй группы реле.
void это не оператор, это тип или спецификатор типа (меня поправят).
и поверь, твоя проблема не в нем.
Извини за наглость,напиши пожалуйста форму записи в строке 8 и 28(может глядя на мою прогу выше,а может тебе это и не нужно).Я потом сам соображу,что делать в других строках
xDriver - сдается мне, что в твоем коде после отпускания кнопки реле выключатся не будут - нет такой логической связи у тебя в алгоритме.
xDriver - сдается мне, что в твоем коде после отпускания кнопки реле выключатся не будут - нет такого логической связи у тебя в алгоритме.
То есть проблема родственная той, что была у ТС - дело в том, что в этой программе нужно отслеживать не состояния "кнопка включена" и "кнопка выключена" - а "кнопка включается" и "выключается"
Да именно так,все кнопки без фиксации,т.е. пока держишь кнопку реле включено,отпустил,оно выключилось,но нажатие кнопки включает адрес на который привязано сразу три и более реле и т.д.
xDriver - сдается мне, что в твоем коде после отпускания кнопки реле выключатся не будут - нет такой логической связи у тебя в алгоритме.
так и есть, такой задачи не стояло, мож я не прально понял.
ну пару строк добавить если не че не нажато, то все в OFF.
так и есть, такой задачи не стояло, мож я не прально понял.
судя по словам ТС - нужно чтобы выключалось:
пока держишь кнопку реле включено,отпустил,оно выключилось
но вообще в твоем лгоритме это можно поправить одной строчкой :)
Понимаете,я сейчас напишу самое интересное.Я с этим кодом обращался в другие чаты,там везде все подняли меня на УРА!Это прога очень простая,не стоит и выеденного яйца,даже пару человек в общих фразах написали как мне написать скетч.Имено на словах и все такие программисты,такие асы,гуру.Но никто даже двух трех сток строк скетча не подсказал.А то,что товарищ мне скинул только что скутч,может правильный,а может нет,за это ему большой респект и мое уважение.Это первый человек,который попытался мне реально помочь делом а не болтовней!Спасибо Ему!!!
но вообще в твоем лгоритме это можно поправить одной строчкой :)
знаешь, а ты был прав (#4) :)
Понимаете,я сейчас напишу самое интересное.
ну тогда и я вам напишу "самое интересное". То, что xDriver вам скинул готовый код - это реально ваше невероятное везение, потому что такое ни на этом, ни на других программистких форумах не принято.
Направить, подсказать, ответить на вопросы - это всегда пожалуйста. А делать за новичка, давать готовый код - такое не практикуется Если спрашивающий толковый - он разберется сам, а если нет - туда ему и дорога, значит не очень и надо
Понимаете,я сейчас напишу самое интересное.
ну тогда и я вам напишу "самое интересное". То, что xDriver вам скинул готовый код - это реально ваше невероятное везение, потому что такое ни на этом, ни на других программистких форумах не принято.
Направить, подсказать, ответить на вопросы - это всегда пожалуйста. А делать за новичка, давать готовый код - такое не практикуется Если спрашивающий толковый - он разберется сам, а если нет - туда ему и дорога, значит не очень и надо
Толковый,может и разберется,но если я в программировании совершенно ничего не знаю,мало того такой скетч,который мне скинул выше товарищ мне никогда не написать,хоть убейте меня.Прогаммист,это талант как музыкантам,писателям,поэтам и т.д.Ты говоришь так принято никому ничего,это у нас у славян.У меня товарищ,тоже что-то хотел сделать и тоже получил такой же ответ.А когда обратился за помощью на зарубежные сайты,то помогли без всяких "так принято,так нельзя" и бесплатно.Чисто по человечески.
А когда обратился за помощью на зарубежные сайты,то помогли без всяких "так принято,так нельзя" и бесплатно.Чисто по человечески.
ну на это могу сказать две вещи
- первое, если вы уверены, что на импортных форумах так здорово - почему вы не написали туда? Заодно и проверили бы, так ли там все хорошо...
Ну а второе - на самом деле вы ошибаетесь. Халявщиков не любят нигде. Если вы придете на форум arduino.cc и попросите написать вам код - вас с вероятностью 99% пошлют. На форумах отвечают на вопросы, когда человек что-то делает сам и у него возникли проблемы. Если же человек ничего не знает - ему надо читать руководства и документацию, а не постить вопросы в форумах
Аналогия простая - если вы пойдете на сайт, посвещенный ремонту квартиры - вам подскажут, как клеить обои и класть плитку. Но именно подскажут - не думаете же вы. что кто-то "чисто по человечески" придете и сделает вам ремонт бесплатно?
Так вот, когда вам подсказывают, как исправить ошибки в скетче - это как подсказка про обои, а если вы просите код - это как просить постороннего человека оклеить вам кухню.
только из уважению к возрасту:
вы не можете четко сформулировать задачу, выстроить алгоритм.
от этого все беды, для программиста очевидны два состояния, стоит не стоит... тьфууу, ДА-НЕТ, ну или условие ЕСЛИ-ТО-ИНАЧЕ.
и доносить надо так, есть 9 кнопок и 16 реле, изначально то-то, нажимаю на кнопку один происходит то-то, отпускаю то-то и так для каждой кнопки и их комбинаций.
А когда обратился за помощью на зарубежные сайты,то помогли без всяких "так принято,так нельзя" и бесплатно.Чисто по человечески.
ну на это могу сказать две вещи
- первое, если вы уверены, что на импортных форумах так здорово - почему вы не написали туда? Заодно и проверили бы, так ли там все хорошо...
Ну а второе - на самом деле вы ошибаетесь. Халявщиков не любят нигде. Если вы придете на форум arduino.cc и попросите написать вам код - вас с вероятностью 99% пошлют. На форумах отвечают на вопросы, когда человек что-то делает сам и у него возникли проблемы. Если же человек ничего не знает - ему надо читать руководства и документацию, а не постить вопросы в форумах
Не обратился к зарубежным сайтам,потому что проблема с английским,а читать руководство,то это уже мне не поможет,слишком поздно.Насчет халявы,то что я хочу сделать управление на реле это первое мое знакомство с ардуино.Ты написал,что на форумах отвечают на вопросы,когда человек что-то делает сам.Я же скинул свой скетч и объяснил проблемы.И к тебе просьба,если нет у тебя ничего по существу,по скетчу,то лучше ничего не пиши уже.Я такого уже начитался и наслушался,ты в этом не одинок.Видать xdRiver не туда попал.
к тебе просьба,если нет у тебя ничего по существу,по скетчу,то лучше ничего не пиши уже.Я такого уже начитался и наслушался,ты в этом не одинок.Видать xdRiver не туда попал.
так, понятно, значит четкое обьяснение твоих ошибок в сообщении #6 - это "не по существу", по существу - это только когда код готовый? :)
только из уважению к возрасту:
вы не можете четко сформулировать задачу, выстроить алгоритм.
от этого все беды, для программиста очевидны два состояния, стоит не стоит... тьфууу, ДА-НЕТ, ну или условие ЕСЛИ-ТО-ИНАЧЕ.
и доносить надо так, есть 9 кнопок и 16 реле, изначально то-то, нажимаю на кнопку один происходит то-то, отпускаю то-то и так для каждой кнопки и их комбинаций.
Да согласен,что я не написал алгоритм,я думал,что по моему скетчу будет видно как работает программа,скетч то действительно мой простой.А алгоритм,что его писать,зачем?После всего прочитанного от от другого участника чата,так Вы поступили неправильно,что написали мне скетч,если даже сделали это из уважения к возрасту.Хотя для Вас я алгоритм напишу в двух словах.Есть ардуино Мега(чтобы было много адресных входов),ессть две платы по 16 реле и 18 кнопок,по 9 на каждую.Рабочих реле будет по 12 в каждой плате.Необходимо,чтобы при нажатии на кнопку и ее удержания включилось несколько реле на одной плате,при нажатии и удержании другой кнопки включились другие реле на другой плате.Т.е.,когда отпустил енопки и нажал на другие,включаются снова реле среди которых могут быть те,что были при нажатии ранее,но к ним добявятся и другие реле.Вот такой алгоритм.
к тебе просьба,если нет у тебя ничего по существу,по скетчу,то лучше ничего не пиши уже.Я такого уже начитался и наслушался,ты в этом не одинок.Видать xdRiver не туда попал.
так, понятно, значит четкое обьяснение твоих ошибок в сообщении #6 - это "не по существу", по существу - это только когда код готовый? :)
Извини,но если бы я действительно был программистом со стажем,то твою подсказку #6 я бы понял и начал действовать,а на данный момент это действительно не по существу.Я прекрасно понимаю,как я выгляжу среди вас,мне стыдно и обидно,что это так,но это печальный факт.
ну хорошо, я так понял будет 24 реле и 18 кнопок.
я готов дописать свой код, но мне нужно четкое понимание на каких выводах висят кнопки и на каких реле.
и еще алгоритм включения реле от кнопок.
допустим, нажали кнопку один, включились реле 1,2,3..., они включены пока кнопка нажата? или включились и все, если в купе с кнопкой один нажали кнопку два, что в этом случае? включились еще реле 5,6,7... а 1,2,3 выключились?
ну так далее, а еще лучше конечную задачу "человеческим языком", нажал 1 полетели ракеты на..., отпустил - команда на самоуничтожение и т.д.
ну хорошо, я так понял будет 24 реле и 18 кнопок.
я готов дописать свой код, но мне нужно четкое понимание на каких выводах висят кнопки и на каких реле.
и еще алгоритм включения реле от кнопок.
допустим, нажали кнопку один, включились реле 1,2,3..., они включены пока кнопка нажата? или включились и все, если в купе с кнопкой один нажали кнопку два, что в этом случае? включились еще реле 5,6,7... а 1,2,3 выключились?
ну так далее, а еще лучше конечную задачу "человеческим языком", нажал 1 полетели ракеты на..., отпустил - команда на самоуничтожение и т.д.
СПАСИБО!!!Сейчас для Вас напишу,что и зачем!!Так,вот две строки цифр,ниже!!
7,8,9,10,11,12
1,2,3,4,5,6 это порядок реле на одной плате реле и такой же на другой плате реле!!
Кнопка "0" при нажатии замыкает реле 2,3,12 на плате номер один
Вторая кнопка "0" из другой группы кнопок тоже нажимает реле 2,3,12,которые на другой плате реле(плата номер 2
отпускаем кнопки,реле выключились,переходим на другую кнопку
Кнопка "1",замкнула реле 2,3,6,7 на плате с реле номер один
Кнопка "1" из другой группы кнопок замкнула реле 2,3,6,7,10 плата номер 2
отпустили кнопки,все выключилось перешли на следующую
Кнопка "2" замкнула 3,6,7,9,10 на плате номер 1
Кнопка "2" замкнула реле 3,6,7,9,10,11 на плате номер 2
Только здесь нужно учесть,что эти кнопки во всех случаях могут работать синхронно,но могут и отдельно!!Т.е.на нажиматься сразу вместе!
И так далее,если нужно могу написать,но это может завтра,уже ночь,пора Вам спать или продолжить??
Кнопка "0" при нажатии замыкает реле 2,3,12 на плате номер один
Вторая кнопка "0" из другой группы кнопок
нееее..
сегодня я это не переварю.
да,из другой пары!!!Короче две пары кнопок и две платы с реле.Одна группа кнопок работает с одной платой реле,другая с другой.При этом кнопки могут нажиматься синхронно ,а могут отдельно друг от друга!!Все кнопки без фиксации,реле замкнуто пока держишь кнопку.Нажатие двух кнопок и более на любой из пар невозможно.У нас постоянно переход из одной кнопки к другой при этом от которой уходим она выключается сразу без задержек по времени!!
я спать...
но напомню об этом
ну хорошо, я так понял будет 24 реле и 18 кнопок.
я готов дописать свой код, но мне нужно четкое понимание на каких выводах висят кнопки и на каких реле.
Спокойной ночи!!До завтра!!
Никаво этот пенсионер не напоминает?
Добрый день!
Да согласен,что я не написал алгоритм,я думал,что по моему скетчу будет видно как работает программа,скетч то действительно мой простой.А алгоритм,что его писать,зачем?
Видите ли, программа ВСЕГДА работает так, как ее написали. Правда, это не всегда совпадает с тем, как ее ХОТЕЛИ написать.
По коду можно судить о том, что Вы написали, но код никак не может подсказать, что же Вы на самом деле хотели написать.
Вот для этого и нужна запись алгоритма, чтобы сравнить его с кодом и понять, чем одно отличается от другого.
PS. Если я правильно понял, всю логику работы можно реализовать только на диодах без Ардуино. Если это так, подтвердите, это существенно облегчит понимание написанного Вами, т.к. пока это написанное допускает еще слишком широкий спектр вариантов интерпретации. Вам же советовали, что описывать алгоритм лучше по форме: кнопка №Х нажата - происходит это, отпущена - это, и так со всеми кнопками. Опять же, сильно затрудняет понимание упоминание Вами двух групп кнопок и двух плат реле, для чего это нужно?
Да согласен,что я не написал алгоритм,я думал,что по моему скетчу будет видно как работает программа,скетч то действительно мой простой.А алгоритм,что его писать,зачем?
Видите ли, программа ВСЕГДА работает так, как ее написали. Правда, это не всегда совпадает с тем, как ее ХОТЕЛИ написать.
По коду можно судить о том, что Вы написали, но код никак не может подсказать, что же Вы на самом деле хотели написать.
Вот для этого и нужна запись алгоритма, чтобы сравнить его с кодом и понять, чем одно отличается от другого.
PS. Если я правильно понял, всю логику работы можно реализовать только на диодах без Ардуино. Если это так, подтвердите, это существенно облегчит понимание написанного Вами, т.к. пока это написанное допускает еще слишком широкий спектр вариантов интерпретации. Вам же советовали, что описывать алгоритм лучше по форме: кнопка №Х нажата - происходит это, отпущена - это, и так со всеми кнопками. Опять же, сильно затрудняет понимание упоминание Вами двух групп кнопок и двух плат реле, для чего это нужно?
Опять же, сильно затрудняет понимание упоминание Вами двух групп кнопок и двух плат реле, для чего это нужно?
А Вам зачем??Хотите написать код или что-то посоветовать???Но,если Вы внимательно прочитали страницу,то в ней ясно написано,что коды здесь не пишут,а в советах я не нуждаюсь.А во-вторых мне пообещали написать код,так что вроде вопрос уже почти решен,осталось дождаться.
...а в советах я не нуждаюсь.
я их уже наслушался до Вас именно на форуме.
Гонористый новичок.(
Вы можете внятно написать, например:
реле1.плата1=Pin1(ардуино);
реле2.плата1=Pin2 и т.д
кнопка1.плата1=Pin5;
кнопка2.плата1=Pin6 и т.д.
кнопка1.плата1=реле1.плата1+реле2.плата2+...+релеN.платаN
и так все кнопки и реле, а то тут экстрасенсов нету, а троллей много.
Вы можете внятно написать, например:
реле1.плата1=Pin1(ардуино);
реле2.плата1=Pin2 и т.д
кнопка1.плата1=Pin5;
кнопка2.плата1=Pin6 и т.д.
кнопка1.плата1=реле1.плата1+реле2.плата2+...+релеN.платаN
и так все кнопки и реле, а то тут экстрасенсов нету, а троллей много.
Сейчас напишу для первой группы реле,затем для второй.
Кнопка 0 реле 2,3,12
Кнопка 1 реле 2,3,6,7
2 - 3,6,7,9,10
3 - 3,6,7,9,10,11
4 - 3,6,7,8,9,10,11
5 - 1,2,3,6,10
6 -1,2,6,8,9,10,11
7 - 1,4,5,6,8,9,11
Для второй платы реле(реле я обозначил тоже от 1 до 12 и кнопки тоже от 0 до 8, но чтобы было ясно, кнопки и реле первые и кнопки вторые и реле,между собой не имеют связи,т.е. работают отдельно)
0 - 2,3,12
1 -2,3,6,7,10
2 - 3,6,7,9,10,11
3 - 3,6,7,8,9,10,11
4-2,3,12
5 - 2,3,12
6 - 1,2,3,6,10
7 - 1,2,6,10
8 - 1,4,5,6,8,9,11
Все кнопки без фиксации,т.е.работает кнопка пока ее держишь.Второе две кнопки сразу в любой из групп нажиматься не будут,т.е.происходит переход с одной на другую.Но кнопка в одной и кнопка в другой группе могут быть нажаты одновременно.Вот вроде написал.Тот код,что я написал,он работает,если убрать вторую группу реле,т.е.адреса А8 и А9.С самого начала я все это делал на ардуине уно,но мне не хватало адресов для второй группы реле,я купил ардуино мега,теперь адресов достаточно,Но при подключении второй группы реле происходит сбой работы реле.Дело в том,что при работе может быть нажата кнопка с одной группы и нажата кнопка с другой группы,когда это происходит,то реле в одной группе не замыкаются,а начинают щелкать.А поэтому мой код не работает.Я так понимаю,что когда происходит обращение к двум адресам сразу,а у них одинаковые операторы,допустим задержка "делэй",то процессор начинает "путаться".Хотел заменить оператор "делэй" на другой в другой группе,заменил его на делэй микросекнунд,это не спасло.Ребята,мне кажется,что даже другой код будет давать сбой.Конечно интересно проверить,так ли это.Но выход всегда есть,так что если другой код не будет работать,то я им воспользуюсь.И теперь самое главное!!Ребята,не нужно писать код,для тех кому это в тягость,не нужно мучиться и тратить свое драгоценное время.Но очень конечно интересно,что код всего лишь для одних реле,без всяких связей на андроид,видео и т.д. может быть таким сложным для профессионалов.
Сейчас напишу для первой группы реле,затем для второй.
Кнопка 0 реле 2,3,12
Кнопка 1 реле 2,3,6,7
2 - 3,6,7,9,10
3 - 3,6,7,9,10,11
4 - 3,6,7,8,9,10,11
5 - 1,2,3,6,10
6 -1,2,6,8,9,10,11
7 - 1,4,5,6,8,9,11
Даже в чипедипе диоды идут по 2 рубля за штуку, а у братьев - 50 рублей за сотню (с доставкой).
Пенсионер, ты бы начал разбираца со светлодиода, одной кнопки и одного реле.
Пенсионер, ты бы начал разбираца со светлодиода, одной кнопки и одного реле.
Читай внимательно,мой код работает,но есть проблема при дополнении второй платы реле.А вот получится ли у тебя в реале,а не на словах,это еще вопрос.И даже,если написать код,его нужно проверить в работе,а поэтому писать здесь можно что угодно,все это пустое,болтологие на уровне программирования!!
P.S.Слышь,умник,выучи сначала русский язык,а то у тебя в слове х.. пять ошибок.
Второе две кнопки сразу в любой из групп нажиматься не будут,т.е.происходит переход с одной на другую.Но кнопка в одной и кнопка в другой группе могут быть нажаты одновременно.
Т.е. как следует реагировать программе на одновременное нажатие тех кнопок, одновременное нажатмие которых запрещено?
Тот код,что я написал,он работает,если убрать вторую группу реле... Но при подключении второй группы реле происходит сбой работы реле.
При описанных симптомах одна из наиболее вероятных причин - нехватка питания.
Второе две кнопки сразу в любой из групп нажиматься не будут,т.е.происходит переход с одной на другую.Но кнопка в одной и кнопка в другой группе могут быть нажаты одновременно.
Т.е. как следует реагировать программе на одновременное нажатие тех кнопок, одновременное нажатмие которых запрещено?
Тот код,что я написал,он работает,если убрать вторую группу реле... Но при подключении второй группы реле происходит сбой работы реле.
При описанных симптомах одна из наиболее вероятных причин - нехватка питания.
НЕТ,по питанию все хорошо!Блок питания мощный,и даже у меня их два,но причина сбоя не исчезает при любом блоке питания.Мало того,смотри,есть моменты,когда при нажатии кнопки,срабатывают сразу семь штук реле,я проверял неоднократно,все реле срабатывают.когда добавил вторую плату реле,то при нажатии нулевой кнопки первой платы,там где три реле (2,3,12) и такой же кнопка по адресу А8,второй платы реле (2,3,12) тоже работает все четко,контакты замыкаются везде,Но когда добавил второе реле во вторую группу по адресу А9 реле (2,3,6,7,10), То происходит сбой,т.е. теперь даже когда нажму кнопки для (2,3,12) там и там,реле начинают щелкать на одной из плат!!
Xdriver - ну что, как тебе нравится твой ученик? Обрати внимание, как он ободрился обещанием получить код и все больше наглеет. Понимаешь теперь, почему подобных персонажей посылают на всех форумах?
И ведь даже если ты ему напишешь код - вряд ли это решит его проблему. Мало написать код - надо ведь суметь его использовать , собрать схему.... А в том что тс это сможет никакой уверенности нет.