Управление реле

DooDllez
Offline
Зарегистрирован: 04.10.2018

Всем Привет!

Нужна помощь в реализации вроде не сложной идеи :)

Условно будет 7 кнопок при нажатии на которые будет приходить минус на ардуинку. А она должна будет включать реле с определенным алгоритмом. Всего реле будет 4.

Если верно понимаю кнопки нужно цеплять на аналоговые входы.  Тобишь их нужно 7 шт.  Ближайшим решением с питанием от 12в это Arduino Leonardo, вроде так. Ну и понадобится 4 реле, скорее всего будет 2 модуля по 2 реле.

Верно ли я все понял?

MaksVV
Offline
Зарегистрирован: 06.08.2015

кнопки лучше на цифровые входы

DooDllez
Offline
Зарегистрирован: 04.10.2018

О даже на цифровые лучше подключать. тогда точно подойдет. Спасибо, буду значит покупать.

DooDllez
Offline
Зарегистрирован: 04.10.2018

И самое главное, кто сможет помочь в написании скетча?

Принцип работы условно можно разделить на 2 группы "зеленую" и "красную".

Логика процесса:
 
Кнопка 1 включает "реле 1". Когда на концевике появляется минус то "реле 1" отключается на 5 сек. После цикл повторяется пока включена кнопка.
После отключения кнопки, реле остается включенным до появление минуса на концевике.
 
Кнопка 2 включает "реле 1". 
После отключения кнопки, реле остается включенным до появление минуса на концевике.
 
Кнопка 3 включает "реле 2".
После отключения кнопки, реле остается включенным до появление минуса на концевике.
 
Кнопка 4 включает "реле 3". Реле 3 циклично включается на 1сек и отключается на 1сек пока включена кнопка.
 
Кнопка 5 включает "реле 4". Реле 4 циклично включается на 1сек и отключается на 1сек пока включена кнопка.
 
Кнопка 6 включает "реле 3 и 4". Реле 3 и 4 циклично включаются на 1сек и отключается на 1сек пока включена кнопка.
 
Если включены кнопки 4-6 или 5-6 в месте то выполняется алгоритм по кнопке 6. Ну и соответственно к примеру если включены кнопки 2 и 5 или 3 и 6 и тд. то должно всё работать согласно своему назначению. Одна группа не должна мешать работе другой. 
 
Для понимания процесса. Реле 1 и 2 запускают мотор который вращает шестеренку. У этой шестерни есть "нулевое" положение, в момент нахождение в "нулевом" положении всегда срабатывает концевик который подает минус. При отключении кнопок 1-2-3 шестерня всегда должна возвращаться в "нулевое" положение.
Реле 3 и 4 просто циклично включаются и отключаются. Никак не относятся к реле 1 и 2.
Ну вот и все.
 
astwo
Offline
Зарегистрирован: 10.07.2019

Ну это к исполнителям за деньги. Деньги за написание скетча и натаскивание вас на понимание его работы. Скорее больше на последнее, так как с программированием у вас никак.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

примерно, $100

DooDllez
Offline
Зарегистрирован: 04.10.2018

astwo пишет:
Ну это к исполнителям за деньги. Деньги за написание скетча и натаскивание вас на понимание его работы. Скорее больше на последнее, так как с программированием у вас никак.

Хорошо, спасибо. Частично понимаю как оно работает, как-то воевал со скетчем на 100+ rgb модулей. Сейчас нет особо времени. Но если цена такого скетча 100$ то я его найду :) Только мне кажется это космическая цена для скетча который почти состоит из "нажал кнопку и реле включилось, копи-паст,копи-паст и тд".

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

дак и скетч космический.  Ну, хорошо, $80. 

А если разместить в правильном разделе, например, "Ищу исполнителя", дак там и за пицот рублей Скиф сделает. 

astwo
Offline
Зарегистрирован: 10.07.2019

100₴ это для вас. Если вы умели программировать то было бы 0. А программирование копипаст и в результате херняпаст. И такой дряни полный интернет.

b707
Offline
Зарегистрирован: 26.05.2017

DooDllez пишет:

Если верно понимаю кнопки нужно цеплять на аналоговые входы.  Тобишь их нужно 7 шт.  Ближайшим решением с питанием от 12в это Arduino Leonardo, вроде так.

Уже по ТЗ видно, что вы в предмете ни в зуб ногой. Почему аналоговые входы? Почему именно Леонардо? С какой стати тут 12В?

А вы говорите, 100 баксов много? - да тут два дня уйдет только на то, чтобы обьяснить вам азы. Или вы считаете нормальной зарплатой 10 баксов в день?

DooDllez
Offline
Зарегистрирован: 04.10.2018

Пытался расписать максимально понятно с технической стороны, не затрагивая програмную часть. Чтоб было понятие процесса. Вижу это не приветствуется. Ну ок.

Фактически всего 2 режима работы реле на 6 кнопок. Один из которых написан в "книжке" 100%. Вот и копи-паст.

Честно скажу не разбирался еще куда цепляются кнопки вот и подумал что на аналоговые выходы, т.к. в леонардо их 12 решил что оно мне подходит. Леонардо штатно может питатся от 12в через разъем 2.1мм, вот с этой стати. Поэтому и выбрал его.

Green
Offline
Зарегистрирован: 01.10.2015

Тут 2 дня только нужно что бы ТЗ утрясти.( И ещё схемотехникой с вами заниматься.( А так да, Леонардо звучит красиво.))

DooDllez
Offline
Зарегистрирован: 04.10.2018

Я не говорю что я тут гуру программер или еще что, просто примерно представляю сложность процесса. Не совсем тапок вобщем, но и не долеко ушел. Создал тему в разделе новичков именно поэтому.
Если я не прав в выборе ардуино то напишите: тут ты не прав тебе это не надо, а надо вот это, потому что вот так и вот так.
Ато все умные но по факту никто ответа не дал особо. Ну кроме 80$ и будет работать. Для меня это много, буду или опять сам разбиратся или кто-то сделает всеже.

DooDllez
Offline
Зарегистрирован: 04.10.2018

Green пишет:

Тут 2 дня только нужно что бы ТЗ утрясти.( И ещё схемотехникой с вами заниматься.( А так да, Леонардо звучит красиво.))


Да вроде все понятно обьяснил. Пытался покрайней мере..

nik182
Offline
Зарегистрирован: 04.05.2015

Скажите, а что из оборудования у Вас уже есть в наличии? Дело в том, что программа по вашему ТЗ будет иметь строк 20 - 30. Если железо в наличии, то загружая стандартные примеры из среды из разделов basic и digital и смотря на то что там написано то можно найти достаточно информации для реализации программы для Вашего ТЗ. Начните что то делать. Входы выходы проинициализируйте, с помощью оператора if кнопки опросите на предмет нажатия и в случае нажатия включайте - выключайте реле, подавая LOW или HIGH на выходы процессора. Будет какая нибудь программа - будем обсуждать.

DooDllez
Offline
Зарегистрирован: 04.10.2018

nik182 пишет:

Скажите, а что из оборудования у Вас уже есть в наличии? Дело в том, что программа по вашему ТЗ будет иметь строк 20 - 30. Если железо в наличии, то загружая стандартные примеры из среды из разделов basic и digital и смотря на то что там написано то можно найти достаточно информации для реализации программы для Вашего ТЗ. Начните что то делать. Входы выходы проинициализируйте, с помощью оператора if кнопки опросите на предмет нажатия и в случае нажатия включайте - выключайте реле, подавая LOW или HIGH на выходы процессора. Будет какая нибудь программа - будем обсуждать.

Спасибо за первый дельный комментарий :)

 

В наличии у меня есть mega, но она слишком избыточна для данной задачи. Релейного модуля нет.

Если верно понял то мне подойдет и uno, т.к. у меня 7 входных сигналов и 4 выхода на управление реле. 

Правильно же я понимаю? завтра планирую покупать.

 

 

nik182
Offline
Зарегистрирован: 04.05.2015

Да. Уны достаточно. Релейный модуль лучше покупать с опторазвязкой. Паять умеете?

DooDllez
Offline
Зарегистрирован: 04.10.2018

nik182 пишет:
Да. Уны достаточно. Релейный модуль лучше покупать с опторазвязкой. Паять умеете?

Понял, спасибо.

Паять умею и все для этого есть.

gfx125
Offline
Зарегистрирован: 27.05.2017

DooDllez пишет:
то мне подойдет и uno,

и даже Nano с Pro mini

Green
Offline
Зарегистрирован: 01.10.2015

nik182 пишет:
Релейный модуль лучше покупать с опторазвязкой.

Ну да, а реле само по себе не развязка?
Вы бы лучше 12в реле посоветовали. А то накупит человек 5-ти вольтовых и будет к +5в Ардуино подключать, пока не спалит.

nik182
Offline
Зарегистрирован: 04.05.2015

Не. Про мини не пойдёт. К ней usb-ttl нужен и пляски с бубнами. Её рекомендуют для продвинутых. А вот нано самое оно.

nik182
Offline
Зарегистрирован: 04.05.2015

Мой опыт говорит, что в силовых цепях реле недостаточно что бы наводки от силы изолировать одним реле.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Вскрытие покажет. Если у чела есть руки и мозги и куча времени то чего-то достигнет, или не достигнет. От провалов никто не застрахован. Провалится в этом, начнет другой.

DooDllez
Offline
Зарегистрирован: 04.10.2018

Green пишет:

Ну да, а реле само по себе не развязка?

Вы бы лучше 12в реле посоветовали. А то накупит человек 5-ти вольтовых и будет к +5в Ардуино подключать, пока не спалит.

Спасибо. Реле сразу планировал брать на 12в чтоб использовать внешний источник питания для модуля, как и для ардуино. 

Все-же остановлюсь на uno, мало-ли еще что понадобится когданить.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

nik182 пишет:
Не. Про мини не пойдёт. К ней usb-ttl нужен и пляски с бубнами. Её рекомендуют для продвинутых. А вот нано самое оно.

Ну миллиметры же, а гемора вагон. Это я про про-мини...

Гриша
Offline
Зарегистрирован: 27.04.2014

Вот классный пример человеческого упорства, жаль он о результате не отписал... Ваша задача аналогичного уровня, а может и еще проще. Так что дерзайте, и совет: берите уно или нано - это одно и тоже (для вас, только размеры разные) и желательно на atmega328 - самый ходовой товар.   

UPD  перечитал алгоритм... А вы уверены, что у вас описан алгоритм для кнопок? может там все таки переключатели? 

UUPD нашим гуру: вроде алгоритм не сложный, если его не модернизировать в перспективе там и контроллер не нужен, со всем справятся реле и релейный мультивибратор...  Кому интересно, можно мозг размять как так сделать. А если старые релейщики  есть так им и думать не нужно... :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

да вапще ПЛМ поставить. 

Green
Offline
Зарегистрирован: 01.10.2015

PL/M? Тогда лучше PL/1.)

nik182
Offline
Зарегистрирован: 04.05.2015

Гриша пишет:

UUPD нашим гуру: вроде алгоритм не сложный, если его не модернизировать в перспективе там и контроллер не нужен, со всем справятся реле и релейный мультивибратор...  Кому интересно, можно мозг размять как так сделать. А если старые релейщики  есть так им и думать не нужно... :)


Ну так МК вроде как и задумывался в том числе релейные схемы на один чип заменить?

SLKH
Offline
Зарегистрирован: 17.08.2015

DetSimen пишет:

да вапще ПЛМ поставить. 

556РТ4... 

DooDllez
Offline
Зарегистрирован: 04.10.2018

Гриша пишет:

Вот классный пример человеческого упорства, жаль он о результате не отписал... Ваша задача аналогичного уровня, а может и еще проще. Так что дерзайте, и совет: берите уно или нано - это одно и тоже (для вас, только размеры разные) и желательно на atmega328 - самый ходовой товар.   

UPD  перечитал алгоритм... А вы уверены, что у вас описан алгоритм для кнопок? может там все таки переключатели? 

UUPD нашим гуру: вроде алгоритм не сложный, если его не модернизировать в перспективе там и контроллер не нужен, со всем справятся реле и релейный мультивибратор...  Кому интересно, можно мозг размять как так сделать. А если старые релейщики  есть так им и думать не нужно... :)

На ATmega328 и буду брать. 

Переключатель это в "зеленой" группе 1-2-3.

4-5-6 это кнопки.

Собрать "зеленую" группу просто на реле наверно не получится. Что-то должно ведь должно держать реле включенным после отключения переключателя. И отрабатывать цикл первой функции. Знаю что это собирали на микроконтроллере ATTiny13, но прошивка не сохранилась. 

А "красную" группу можно свободно собрать на 3х реле.

Чтоб грядку не городить, решил уже все объединить в одно устройство.

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Вы, наверное, по образованию или работе - электрик? Перечитал ещё раз вашу задачу, меня смутило условие «приходит минус», он в принципе приходить не может. Но если это опустить (как сделали все выше) - скажите, пожалуйста, вам знакомо слово - комбинаторика?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

SLKH пишет:

DetSimen пишет:

да вапще ПЛМ поставить. 

556РТ4... 

Тут бы и К155РЕ3 хватило

DooDllez
Offline
Зарегистрирован: 04.10.2018

BOOM пишет:

Вы, наверное, по образованию или работе - электрик? Перечитал ещё раз вашу задачу, меня смутило условие «приходит минус», он в принципе приходить не может. Но если это опустить (как сделали все выше) - скажите, пожалуйста, вам знакомо слово - комбинаторика?

Да я электрик, программированием не занимаюсь и знаком поверхностно. В основном когда с этим сталкиваюсь, то ищу схожий код по моему функционалу и редактирую под свои нужды. Слово комбинаторика мне не знакомо к сожалению.

Купил сегодня ардуину и релейный модуль, начал экспериментировать со скетчами. Пока темный лес конечно, позабыл почти все из немногого что знал =\ Но что-то вспоминается.

Если есть желание у кого-то написать рабочий код под мои нужды на ардуино или на другом надежном микроконтроллере, буду очень рад вашей помощи. Лучше конечно на ардуино т.к. она уже есть. К сожалению много предложить не могу  :( 

Самому интересно позаниматься этим, но пока времени не особо много на это. Но одно реле с кнопки уже включается, хотя еще не совсем как нужно :)

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

12В на Vin надолго не рекомендую запитывать ардуино. Стаб будет греться ацки. Лучше через dc-dc на 5в .  Также почитайте про титановый велосипед. 

nik182
Offline
Зарегистрирован: 04.05.2015

Сделайте 7 кнопок щелкают 4 реле. Типа первая включает, вторая выключает. Выкладывайте программу. Дальше с логикой поможем.

DooDllez
Offline
Зарегистрирован: 04.10.2018

Ардуинка пока питается от usb

А релейный модуль так: VCC взял 5в из ардуино а JD-VCC на 12в с внешнего блока питания, земли объединил. 

Сейчас почитаю.

nik182 пишет:

Сделайте 7 кнопок щелкают 4 реле. Типа первая включает, вторая выключает. Выкладывайте программу. Дальше с логикой поможем.

Так у меня должно быть немного не так, пока кнопка включена действие выполняется. Тоесть они фиксирующиеся и только один концевик "нейтрального положения". 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

DooDllez пишет:

BOOM пишет:

Вы, наверное, по образованию или работе - электрик? Перечитал ещё раз вашу задачу, меня смутило условие «приходит минус», он в принципе приходить не может. Но если это опустить (как сделали все выше) - скажите, пожалуйста, вам знакомо слово - комбинаторика?

Да я электрик, программированием не занимаюсь и знаком поверхностно. В основном когда с этим сталкиваюсь, то ищу схожий код по моему функционалу и редактирую под свои нужды. Слово комбинаторика мне не знакомо к сожалению.

Купил сегодня ардуину и релейный модуль, начал экспериментировать со скетчами. Пока темный лес конечно, позабыл почти все из немногого что знал =\ Но что-то вспоминается.

Если есть желание у кого-то написать рабочий код под мои нужды на ардуино или на другом надежном микроконтроллере, буду очень рад вашей помощи. Лучше конечно на ардуино т.к. она уже есть. К сожалению много предложить не могу  :( 

Самому интересно позаниматься этим, но пока времени не особо много на это. Но одно реле с кнопки уже включается, хотя еще не совсем как нужно :)

 

Если вы задачу изложите более понятно, не в схемах проводки, а логически. Могу и помочь, заодно и комбинаторику проштудируем. МК тут, конечно же, излишен, но многие и диодом просто мигают с его помощью. Ничего страшного. 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

MaksVV пишет:

12В на Vin надолго не рекомендую запитывать ардуино. Стаб будет греться ацки. Лучше через dc-dc на 5в .  Также почитайте про титановый велосипед. 

Я по наитию думал шилд, что с макеткой идёт должен хорошо работать с 12в, в итоге ардуино спалил. 

azerbot
Offline
Зарегистрирован: 18.05.2019

Реле желательно запитовать отдельно ибо просадка все дела да и ардуинка не вывезет да и ардуино желательно питать от 5 в

nik182
Offline
Зарегистрирован: 04.05.2015

Т.е. концевик принудительно отключает всё? Даже если кнопки нажаты? Если да, программа в точности с Вашим рисунком, только те кнопки которые две к одному реле нефиксированные - одна включает, другая выключает. Если все фиксируемые то ваша логика не может быть реализована в описанных Вами условиях. 


const int buttonPin1 = 2;     
const int buttonPin2 = 3;    
const int buttonPin3 = 4;     
const int buttonPin4 = 5;     
const int buttonPin5 = 6;     
const int buttonPin6 = 7;     
const int buttonPin7 = 8;     
const int rPin1 =  9;      
const int rPin2 =  10;      
const int rPin3 =  11;      
const int rPin4 =  12;      

void setup() {
  pinMode(rPin1, OUTPUT);
  pinMode(rPin2, OUTPUT);
  pinMode(rPin3, OUTPUT);
  pinMode(rPin4, OUTPUT);
}

void loop() {
  if (digitalRead(buttonPin1) == LOW)  { digitalWrite(rPin1, HIGH);digitalWrite(rPin2, HIGH);digitalWrite(rPin3, HIGH);digitalWrite(rPin4, HIGH); exit;};
  if (digitalRead(buttonPin2) == LOW)  digitalWrite(rPin1, LOW);
  if (digitalRead(buttonPin3) == LOW)  digitalWrite(rPin1, HIGH);
  if (digitalRead(buttonPin4) == LOW)  digitalWrite(rPin2, LOW);
  if (digitalRead(buttonPin5) == LOW)  digitalWrite(rPin3, LOW);
  if (digitalRead(buttonPin6) == LOW)  digitalWrite(rPin4, LOW);
  if (digitalRead(buttonPin7) == LOW)  {digitalWrite(rPin3, HIGH); digitalWrite(rPin4, HIGH);};
}

 

DIVGENY
Offline
Зарегистрирован: 23.08.2016

nik182 пишет:

Т.е. концевик принудительно отключает всё? Даже если кнопки нажаты? Если да, программа в точности с Вашим рисунком

так заблудиться можно. концевик назови butt_OF

и еще два таймера нужно для условия в 22 и 27 стоке на 5 сек и 1сек соответственно.

nik182
Offline
Зарегистрирован: 04.05.2015

Ну да делал по рисунку. Логику не использовал. Показал как разными кнопками щелкать. С задержками всё будет хитрее. 

DooDllez
Offline
Зарегистрирован: 04.10.2018

BOOM пишет:

Если вы задачу изложите более понятно, не в схемах проводки, а логически. Могу и помочь, заодно и комбинаторику проштудируем. МК тут, конечно же, излишен, но многие и диодом просто мигают с его помощью. Ничего страшного. 

Ммм... попробую более логически.

1 функция.

Нажимаем фиксирующуюся кнопку, срабатывает реле и начинает вращаться колесо. Когда колесо делает 1 оборот оно останавливается на 5 сек в нейтральном положении и снова делает оборот, останавливается и так далее пока включена кнопка. Как только мы выключили кнопку колесо должно вернутся в свое нейтральное положение.

Нейтральное положение колесо понимает по концевику, который замыкается каждый раз как колесо оказывается в нейтральном положении.

Тоесть когда мы отключили кнопку реле должно быть еще замкнутым до момента срабатывания концевика.

2 функция 

то-же самое что и первая только без паузы

3 функция 

то-же самое без паузы только включает другое реле

DooDllez
Offline
Зарегистрирован: 04.10.2018

Кнопка 1-2-3 не могут включатся в месте. Они идут через переключатель.

nik182
Offline
Зарегистрирован: 04.05.2015

А если нажаты 1 и 2 какой цикл выполнять? У них разное воздействие на одно и то же реле? 

DIVGENY
Offline
Зарегистрирован: 23.08.2016

DooDllez ты пока так собери. тебе помогают вспомнить и понять принцип. еще желательно знать схему твоего реле. есть которые включаются по разному уровню...

 

nik182
Offline
Зарегистрирован: 04.05.2015

Если выполнялся цикл 1 и переключили в 2 когда реле было в паузе 5 сек что делать? 

DooDllez
Offline
Зарегистрирован: 04.10.2018

nik182 пишет:

Если выполнялся цикл 1 и переключили в 2 когда реле было в паузе 5 сек что делать? 

включить цикл 2 сразу или дождаться окончания 5 сек и включить цикл 2, не особо важно.

 

DIVGENY пишет:

DooDllez ты пока так собери. тебе помогают вспомнить и понять принцип. еще желательно знать схему твоего реле. есть которые включаются по разному уровню...

 

Сейчас найду по реле

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Сама ошибочная идея. ТС утверждает что он не программист. А программа пишется и для программиста тоже...тут много объяснений... Итог нужна программа для не программиста. И чем меньше ТС не программист тем дебильнее нужна программа. 

ПС: где там писатели "на очень честном Си" :)

DooDllez
Offline
Зарегистрирован: 04.10.2018

qwone пишет:

Сама ошибочная идея. ТС утверждает что он не программист. А программа пишется и для программиста тоже...тут много объяснений... Итог нужна программа для не программиста. И чем меньше ТС не программист тем дебильнее нужна программа. 

ПС: где там писатели "на очень честном Си" :)

Честно не особо вас понял. Я электрик. А программа нужна точно та что и в начале.

Если визуально не понятно чего хочу добиться на примере колеса. То представьте как работают дворники на авто. Есть 3 режима: прерывистый, постоянный и быстрый. Где бы вы не отключили дворники они вернутся в изначальное положение. Ровно то-же самое.

digitalWrite(PIN_RELAY, LOW); // Включаем реле - посылаем низкий уровень сигнала
  delay(5000);
  digitalWrite(PIN_RELAY, HIGH); // Отключаем реле - посылаем высокий уровень сигнала
  delay(1000);

Реле работает по этому принципу. Если вы об этом.