Подключение реле через сдвиговый регистр 595
- Войдите на сайт для отправки комментариев
Пнд, 28/12/2015 - 21:48
Также случайно во время написания стало интересно возможно ли подключитьь экран через сдвиговый регистр?
Также случайно во время написания стало интересно возможно ли подключитьь экран через сдвиговый регистр?
Вы бы хоть схему привели.
Это к тому, что на реле нет светодиода.
Если у Вас в схеме он есть, значит, что-то там есть и кроме реле. А что именно - мы не знаем.
Через сдвиговый регистр можно подключить и реле, и экран. Только драйверы и для того, и для другого Вам придется писать самостоятельно. Для реле это более-менее просто, для экрана - существенно сложнее.
Причин, по которым реле, подключенное к выходу регистра, не срабатывает, может быть множество, как аппаратных, так и программных. Поэтому, если хотите получить консультацию, необходимо привести схему подключения, номиналы компонентов, программу.
После выхода регистра обязателен транзистор, для обычного реле 943-1C-5DS/12DS (обмока 70 Ом) достаточно "типа КТ315", S8050 или 2N7002 например. Внимательно с 7002, они не любят статику. Вообще, подходит любой дешёвый транзистор, но он обязательно должен быть.
Так же, параллельно обмотке - диод, обычный, причём он смотрит в другую сторону, не как светодиод. То есть хвостом к минусу, перекладиной к плюсу. Если будет глючить, можно ещё параллельно этому диоду конденсатор 0.022-0.1 мкФ.
Раз реле 4 штуки, можно не городить 4 транзитора, 4 реле и 4 диода, а взять одну ULN2803:
Код примерно такой, просто вместо светодиодов будут включаться реле.
Всем привет, действительно как я мог не описать подробнее! Вот: От цифрового выхода сдвигового регистра напрямую к реле-модулю идёт провод:
Напряжение 4,2 В, но причина не в этом, так как когда я подключаю реле модуль напрямую, то этого напряжения достаточно.
Duino A.R
Драйверы для реле модуля и экрана? Ого а где можно почитать про это? Зачем нужен драйвер для реле?
std
А ты давала (или давал) совет исходя из того, что я щяс изобразил на фотках или ты тоже описывала транзисторы на случай применения отдельного реле а не в виде модуля?
И еще что имеется ввиду под обмоткой?:
Tomasina
А вот этот транзистор так и подключать по твоей прям схеме? Там на выходе около 5В будет? Доп элементов не надо будет?
P.S. В интернете когда ищешь инфу о подключении реле на страницах из топа яндекса нигде нет слова о доп транзисторах при применении реле-модуля! Как так! Посоветуйте хорошую книгу по радиоэлектронике (с уклоном в микроконтроллеры), а то все эти обучающие уроки ардуино не до конца раскрывают тему!
напрямую реле к регистру нельзя, у реле ток потребления сильно выше, поэтому надо или транзисторы, или напрямую ту самую ULN2803 (у нее внутри те же самые 8 транзисторов, 8 реле и 8 защитных диодов).
ULN2003APG подойдет или это на другие случаи?
подойдет.
Подключил через ULN2003APG кажется заработало! но странно! Но теперь светодиод на реле-модуле не погасает до конца, а лишь сбавляет яркости! и спустя 20 включений выключения кажде две секунды, реле перестало щелкать!
То есть два реле из 4 щяс работают (но пока не давал нагрузку много циклов, теперь боюсь), а два теперь не работают (одно изначально не стало щелкать, а одно перестало спстя 20 циклов включения выключения)
В чем причина может быть?
может быть что угодно, ведь мы не знаем схему включения и какой код используется ;)
Как регулировать напряжение у этого драйвера? на видео я услышал чот выходное напряжение 50 В! Это что же получается я подал 50В управляющий сигнал?
Передохнув Реле очухалось и стало работать и щелкать, но чотто в этом странное есть, иногда не срабатывает
Подключаю как у тебя на фото в первом твоем посте, крайние ноги - питание, с выхода свдигового резистора в драйвер, и оттуда на вход IN реле-модуля!
проверить все подключения
от чего питаешь силовую часть блока реле ?
схему и код - сюда желательно
вообще-то регистр595 может управлять блоком реле напрямую , как и ардуина ( без 2003 )
входные цепи блока реле - пин-резистор-светодиодИндикаторный-светодиодОптопары-GND
или
входные цепи блока реле - пин-резистор-светодиодИндикаторный-светодиодОптопары-VСС
....смотря какой блок реле
для чего строки 03 , 08 , 17 , 23 , 24 , 27 , 28 ?
строки 23 , 24 , 27 , 28 - нужны !!!!!
но НЕ в том порядке , как у тибя в коде :)
riba , в #5 - твой блок реле ?
запитай на большой колодке GND и VCC от блока питания ( без ардуины ) , джампер на колодке питания - поставить
контрольные светодиоды загораются и реле срабатывают при подаче...
- GND на пин IN ? управляющий уровень = LOW ( где в биты рега595 запишешь 0 - то реле и сработает )
- VCC на пин IN ? управляющий уровень = HIGH ( где в биты рега595 запишешь 1 - то реле и сработает )
общая схема подключения ( блок питания внешний !!!!!! ) :
- GND блока питания - на GND ардуины , на GND блока реле
- VCC блока питания - на VCC ардуины , на VCC блока реле ( на большой колодке , джампер по питанию - поставить )
- рег595 - по штатной схеме
- выходы рег595 - Q0 на IN1 , Q1 на IN2 , Q2 на IN3 , Q3 на IN4
и нужен теперь код....
Да, отдельного. А обмотка - это куда подаётся 5 В, или сколько там.
Сколько напряжение питания релейного модуля? Ещё есть шанс что умерла ULN2003 а не сами релюхи.
Реле и, соответственно, релейные модули выпускаются на разные напряжения: 5В, 9В, 12В...
Обычгно напряжение можно узнать по маркировке самого реле.
Если используется реле, а не релейный модуль, обязательно встречно параллельно включенный диод.
Есть ли у кого скетч для похожих целей , тоже для реле , но на 8 контактов ,
где каждый бит будет переменной которая будет меняться в зависимости
от других переменных , например от времяни или даты , и полный байт будет
отправляться каждый раз после изменения одного или нескольких битов ?
Через Google искал , но не где не нашёл как использовать сдвиговый
регистр для полноценного расширения выходов . Заранее спасибо .
Вроде нашёл https://forum.cxem.net/index.php?/topic/185625-%D1%83%D0%BF%D1%80%D0%B0%...
Но это не точно
а для какого нашли? "неполноценного"?
По-моему, в любом примере написано, как записать байт на сдвиговый регистр. Вот вам и восемь выходов, что еще надо?
Нужно что бы каждый бит был переменной которая будет меняться в зависимости
от других переменных
изучите такие функции Ардуино, как bitSet() и bitWrite()
https://www.arduino.cc/reference/tr/language/functions/bits-and-bytes/bitwrite/
Я ознакомился с этими функциями , но без подходящего примера разобраться тяжело
http://robocraft.ru/blog/arduino/519.html
Там есть схема, скетч и текстовое описание.
А какой нужен пример? Если бит(ы) изменились, производим запись в регистр. Фсё.
Если для вас это так легко , просто напишите скетч
if (oldData != Data) {
писать в регистр
oldData = Data;
}
Я ищу что-то вроде этого :
union{
struct{
unsigned bit_1 :1;
unsigned bit_2 :1;
unsigned bit_3 :1;
unsigned bit_4 :1;
unsigned bit_5 :1;
unsigned bit_6 :1;
unsigned bit_7 :1;
unsigned bit_8 :1;
};
unsigned char bytes[1];
}out_data;
Только начала скетча я не нашёл .
И вопрос , если тут едининици которые
после двоеточия стоят поменять на переменные
будет работать ?
вы сюда пришли, чтобы вам скетч написали? Или научится чему-то?
Если учиться - попробуйте сами написать и выкладывайте сюда - обсудим. что получилось.
А если просто код нужен - это в раздел "Ищу исполнителя". за денежку
а вы попробуйте :)
Исполнитель не сделает то что я хочу , мне нужен пример
чтобы узнать как управлять каждым выходом отдельно ,
а скетч я сам допилю
Я ещё не заказал 595 , мне нужно узнать сможет ли она то
что мне от неё нужно
вы сами путаетесь, что вам нужно. Как управлять каждым выходом отдельно - расписано на каждом заборе. Насколько я вижу, вам нужен не пример, как управлять регистром, а как запаковать 8 отдельных переменных в один байт, к регистру это имеет очень отдаленное отношение...
если даже вы не знаете, нам то откуда знать. сможет ли она то. что нужно именно вам.
Управлять каждым выходом отдельно 595 регистр может легко, но вдруг вы хотите чего-то еще?
Если легко , то как . А если сами не знаете то зачем других запутывать ?
В любом примере описано, например вот тут:
http://arduino.ru/Tutorial/registr_74HC595
еще в сообщении 25 дали пример.
Каждый светик управляется отдельно от других
Вам ведь 707 рассказал про битсет и битрид, они могут менять и проверять любой бит в байте. Потом полученный байт надо отправить в регистр. Чем будет управлять регистр, светодиодом, реле, ядреным реактором etc, на совести разработчика.
И это, в ардуине, даже boolean равен байту. Напуя здесь структура, не пойму.
Нормальных примеров с битсет я не нашёл ,
если в нём можно заместо 0 и 1 использовать
переменную то мне подходит , а тут
http://arduino.ru/Tutorial/registr_74HC595
скетч для герлянды , он не подойдёт
Если в переменной содержится 0 или 1 - то можно, а если число Пи - то нет.
И еще. Вы, простите, пишете, что "скетч напишу сам" - а сами даже даже не можете догадаться. как вызвать bitSet(1) или bitSet(0) в зависимости от значения переменной? :) Оператор IF не проходили? :)
If умею , практикую , а битсет нет . И разве в bitSet не два числа в скобках ?
это был псевдопример :) в код его вставлять не надо
В общем спасибо , буду тогда bitSet ковырять )
Два, два, переменная и номер бита который надо изменить.
bitSet - установить.
bitClear - сбросить.
bitWrite - установить или сбросить. (в ней три параметра)