Управление электроклапаном

Smith2007
Offline
Зарегистрирован: 30.10.2017

Добрый день формумчанам!

Вливаюсь в ряды фанатов arduino.

Необходимо осуществить управление электроклапаном (12В, 0,5А).

Во избежании различных глюков, электроклапан будет управлятся по схеме "И": от кнопки управления и от блока управления.

Со стороны блока управления (на основе arduino) клапан управляется подачей земли.

Таких клапанов будет два. Т.е. необходимо два аналогичных канала.

BT_BLOCK - это кнопка содержащая внутри два светодиода. 

Какой элемент (или лучше сборку) добавить между выходом arduino и катушкой клапана?

Как защитить схему от КЗ?

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

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

Smith2007
Offline
Зарегистрирован: 30.10.2017

Я это прекрассно понимаю, что 2А на выход контроллера не подключить.
Вопрос как раз в этом и заключается....
Какой элемент использовать?
А лучше законченный элемент с защитой от КЗ.
Можно конечно использовать мосфет + набор резисторов, конденсаторов и диодов.
Но лучше использовать какой либо законченный драйвер.

Upd. Питание от бортовой сети авто 12В

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Подпишусь-ка, почитаю тему.

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

тогда китайское реле с оптроном на входе. 

Smith2007
Offline
Зарегистрирован: 30.10.2017

Хотелось бы обойтись без реле.
Неужели полупроводниковых элементов не хватит?

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

тогда я не понимаю вопрос.  Рассыпуху паять ты не хочешь, готовое тоже не так. Я нинаю тогда, чонада.  Может, твердотельное реле падёть?

Smith2007
Offline
Зарегистрирован: 30.10.2017

Попробую по другому вопрос задать:
Посоветуйте полупроводниковый драйвер нижнего плеча для упрпвления электроклапаном.
Предпочтительно двух или более каналов и с защитой от КЗ.
Существуют такие элементы?

Зы. Возможно мои вопросы покажутся наивными..
Электроникой занимался очень давно. Во времена z80.

Smith2007
Offline
Зарегистрирован: 30.10.2017

Подойдет для этих целей IX3120G?
https://e-components.ru/item/ix-3120-g

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ЕвгенийП пишет:

Подпишусь-ка, почитаю тему.


Злой человек! ^_^ Чисто повысить настроение в Шабат?

evgta
Offline
Зарегистрирован: 02.09.2016

uln2003a использовать по 2-3 канала на клапан, защиты от кз нет

bizzon
Offline
Зарегистрирован: 29.03.2016

Сильно принципиально управление массой? Есть же миллион специализированных микросхем для автомобилей. Вот например. И контроль тока,и защита-красота.. И канала два.

Smith2007
Offline
Зарегистрирован: 30.10.2017

evgta пишет:

uln2003a использовать по 2-3 канала на клапан, защиты от кз нет

Смотрел на этот элемент, но нет защиты от КЗ. А хочется защиты "от дурака"

 

Smith2007
Offline
Зарегистрирован: 30.10.2017

bizzon пишет:

Сильно принципиально управление массой? Есть же миллион специализированных микросхем для автомобилей. Вот например. И контроль тока,и защита-красота.. И канала два.

Управление массой важно. 

Не смог найти пример подключения этой схемы к адруино.

solver
solver аватар
Offline
Зарегистрирован: 04.11.2017

А что у вас там коротнуть то может? Я тоже параноик, но не настолько!

https://ru.aliexpress.com/store/product/MOSFET-5-DC-24/1950989_326718295...

такой модуль чем не устраивает?

Smith2007
Offline
Зарегистрирован: 30.10.2017

solver пишет:

А что у вас там коротнуть то может? Я тоже параноик, но не настолько!

https://ru.aliexpress.com/store/product/MOSFET-5-DC-24/1950989_326718295...

такой модуль чем не устраивает?

Провод перетерся, перебил провод, во время монтажа коротнул при включенном аккумуляторе.

Лишней защита не будет.

Модуль думаю устроит. С алиэкспресса он месяц идти будет. Остается найти в рунете.

solver
solver аватар
Offline
Зарегистрирован: 04.11.2017

Smith2007 пишет:

solver пишет:

А что у вас там коротнуть то может? Я тоже параноик, но не настолько!

https://ru.aliexpress.com/store/product/MOSFET-5-DC-24/1950989_326718295...

такой модуль чем не устраивает?

Провод перетерся, перебил провод, во время монтажа коротнул при включенном аккумуляторе.

Лишней защита не будет.

Модуль думаю устроит. С алиэкспресса он месяц идти будет. Остается найти в рунете.

В рунете стоить будет как вагон чугуния :-)

Но можно рассыпухой купить и спаять на макетке.

evgta
Offline
Зарегистрирован: 02.09.2016

в этом модуле нет защиты от КЗ. кстати если использовать мосфет то надо диод паралельно клапану ставить а то помрет он от индуктивной нагрузки. 

 

Smith2007
Offline
Зарегистрирован: 30.10.2017

Вот что примерно получилось....

 

зы. Возможно не по теме вопрос: Что из бесплатного ПО использовать для черчения схем, анализа (типа симулятора) и разводки плат?

Сейчас использую sPlan, но он не позволяет анализ произвести и уж тем более плату развести

evgta
Offline
Зарегистрирован: 02.09.2016

proteus может(но платный, но на других ресурсах бесплатен), мосфет Т1 какой? резистор К4 не меньше 250 Ом, VD1 наверно лучше паралельно катушке поставить, вместо R2 лучше стабилитрон на 4V7 поставить

Smith2007
Offline
Зарегистрирован: 30.10.2017

evgta пишет:

proteus может(но платный, но на других ресурсах бесплатен), мосфет Т1 какой? резистор К4 не меньше 250 Ом, VD1 наверно лучше паралельно катушке поставить, вместо R2 лучше стабилитрон на 4V7 поставить

С Протеусом уже поимел печальный опыт :(

Скачал с какого-то сайта торрентом, начал устанавливать и понял, что "подцепил". Поисковая система в хроме зафиксировалась на какую-то фигню из которой как из рога изобилия черви лезут.

Удалил протеус, а от вируса окончательно так и не избавился. Весь день искал как истребить... похоже только переустановка системы поможет.

Пришлось сам хром прибить. Перешел на Яндекс.браузер.

По поводу элементов: По правде говоря еще не знаю какие ставить (T1, VD1, VD2). Клапан 0,5А. При включении я думаю около 1,5А скачек. Т.е. нужен ключ на 2 - 2,5А минимум.

Если вместо R2 поставить стабилитрон, то не будет подтяжки к земле т.е. делитель не понятно как будет работать. Или я не прав? 

Посоветуйте какие элементы можно использовать в качестве T1, VD1, VD2?

evgta
Offline
Зарегистрирован: 02.09.2016

все там и без R2 нормально будет, на таких токах вообще бы полевик не использовал, TIP122, TIP142 дешево сердито и надежно, VD1 любой больше 2А и больше 100B, стабилитрон любой от 3В до 5В

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

Smith2007 пишет:

.......Клапан 0,5А. При включении я думаю около 1,5А скачек.

Вы так думаете? А попробуйте-ка объяснить.

Я, например, думаю что там будет плавное нарастание тока до 0,5А.........
Без всяких "скачков"

Из разводчиков попробуйте Eagle.
Он бесплатен до плат размером 100х100 мм
Правда очень странный  интерфейс и масса неудобств.
Хотя справится можно если очень надо.

Ну а для вашей платы SprintLayout - самое то

Smith2007
Offline
Зарегистрирован: 30.10.2017

Электромагнитный клапан это конечно индуктивность и ток должен нарастать постепенно. Тут объяснений внятных нет. Читал, что рекомендуется 3-х кратный запас по току применять.

Единственно, что трудно поддается анализу - питание от бортовой сети автомобиля. 

Попробовал https://easyeda.com

ООтсутствует симуляция. Прежде чем на плату компоненты устанавливать, хотело сь бы на симуляторе прогнать. Не всю целиком но достаточно выходные/входные цепи.

Pyotr
Offline
Зарегистрирован: 12.03.2014

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

Smith2007
Offline
Зарегистрирован: 30.10.2017

Если не затруднит, сюда скиньте схему.

Pyotr
Offline
Зарегистрирован: 12.03.2014

Вот схема транзисторного ключа с защитой от КЗ из какого-то документа или журнала. Я не собирал.
Работает так:
Чтоб открыть Q1, нужно подать короткий импульс "1" с МК. Сразу переводим пин МК в режим входа без подтяжки. 
Q1 открылся, через диод оптрона пошёл ток и транзистор оптрона тоже открылся, пропуская ток через базу Q1, удерживая его в открытом состоянии. Получается ПОС.
В точке "А" будет 4.7 В.
При КЗ в нагрузке или при даже кратковременном откл. питания ток через диод оптрона прекратится и Q1 закроется. 
В точке "А" будет 0 В. 
Всё это время читая состояние вывода МК, будем знать открыт Q1 или закрылся.

Недостаток в том что защита сработает только при снижении напряжения на нагрузке ниже где-то 2-3 В. От перегрузки не спасёт.

R1 и D1 защитные элементы.

Pyotr
Offline
Зарегистрирован: 12.03.2014

Это моя схема нижнего ключа на биполярнике с защитой от КЗ и перегрузок.
Работа кратко. При подаче "1" с МК короткий импульс тока через С1 - R1 - БЭ VT2 открывает VT2. Если нет КЗ и перегрузки по току, напряжение на К VT2 устанавливается близко к 0.2-0.5 В.  VT1 открывается и пропускает ток с МК и БЭ VT2, удерживая его в открытом состоянии.
При КЗ или перегрузке напряжение на К VT2 повышается, VT1 закрывается, разрывая цепь МК-VT2.

С1 = сотни пФ-десятки нФ.
R1 зависит от коммутируемого тока и усиления VT2. 
R4 = 4.7-22 кОм
R3 = единицы кОм подобрать по току срабатывания защиты и питания МК.
VD1 кремний маломощный.

Чтоб схема востанавливалась после КЗ (устранения КЗ), нужно параллельно С1 поставить резистор на десятки кОм.

Smith2007
Offline
Зарегистрирован: 30.10.2017

Спасибо. Примерно так и представлял. Только заменит vt1 на оптоэлектронный элемент.
И вот сразу вопрос возник... Ситуация типичная для подключения нагрузки. Существуют ли готовые элементы имеющие все это в одном корпусе?

evgta
Offline
Зарегистрирован: 02.09.2016

IR2214

evgta
Offline
Зарегистрирован: 02.09.2016

http://www.electrik.org/forum/index.php?act=Attach&type=post&id=9128

только мазохизм это 

еще в некоторых драйверах шаговиков есть защита от КЗ

А вообще сделай транзистор съемный TIP122, R4 3KOm, и ногу МК прикрой супрессором(стабилитроном) на 5V1, ну коротнешь, возъмешь новый TIP122 за 5-10 руб )) 

Pyotr
Offline
Зарегистрирован: 12.03.2014
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

evgta пишет:

ну коротнешь, возъмешь новый TIP122 за 5-10 руб )) 

На корпусе (изнутри) присобачить держалку для запасных :)))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Pyotr пишет:

Я позволю себе небольшое добавление,если можно?

Чтобы не только КЗ, но и перегрузку точно отслеживать, я бы добавил резистор 0.1-1 Ом 5-10Вт (зависит от транзистора и нагрузки) в цепь эмиттера VT2.

 

solver
solver аватар
Offline
Зарегистрирован: 04.11.2017

Smith2007 пишет:

Провод перетерся, перебил провод, во время монтажа коротнул при включенном аккумуляторе.

Лишней защита не будет.

Модуль думаю устроит. С алиэкспресса он месяц идти будет. Остается найти в рунете.

То есть вы не собираетесь смотреть статистику срабатываний защиты и делать на этом какойто анализ.
Поясню, делал ворота на приводах, чтоб открывались с пульта. Ставил датчик тока ASC712 на двигатели, мониторил ток двигателя, при перегрузке выключал. Ошибку и время писал в EEPROM. Так как воротами пользуюсь не я один потом смотрел статистику срабатываний защиты двигателя. Время ошибок позволяет смотреть в камерх конкретный момент и понимать почему перегружался двигатель. Чето я увлекся.
Итак если анализа не надо по КЗ то почему бы не поставить такую штуку? - https://www.chipdip.ru/catalog/resettable-fuses?from=suggest_group

Самосвостанавливающийся предохранитель самое то. Замкнуло - сработал. Ну и про китайцев вы зря так месяц у меня сейчас максимум. Обычно 10-15 дней. 

По схемам, если рисовать онлайни то https://easyeda.com/ru рулит но есть там некоторые проблемы, если оффлайн то DipTrace в обоих есть платы различных ардуин и масса компонентов. Рисовал всего пару которых не нашел.

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

Pyotr
Offline
Зарегистрирован: 12.03.2014

wdrakula пишет:

Я позволю себе небольшое добавление,если можно?

Чтобы не только КЗ, но и перегрузку точно отслеживать, я бы добавил резистор 0.1-1 Ом 5-10Вт (зависит от транзистора и нагрузки) в цепь эмиттера VT2.

Конечно можно))
В этой схеме я как раз и ушёл от шунта. Его роль выполняет сам транзистор.
R1 такого номинала, чтоб на К VT2 при вкл. нагрузке было около 0.4 В (чтоб не был в глубоком насыщении). При 0.5 А   Р=0.2Вт.
При увеличении тока, напряжение на К VT2 увеличится например до 0.7В, и VT1 закроется. На уровень отсечки влияет R3.

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

Pyotr пишет:

wdrakula пишет:

Я позволю себе небольшое добавление,если можно?

Чтобы не только КЗ, но и перегрузку точно отслеживать, я бы добавил резистор 0.1-1 Ом 5-10Вт (зависит от транзистора и нагрузки) в цепь эмиттера VT2.

Конечно можно))
В этой схеме я как раз и ушёл от шунта. Его роль выполняет сам транзистор.
 

т.е. опять схема с использование крайне нестабильного элемента, сложная в настойке.

вместо нормального шунта в эмиттер силового транзистора.

Pyotr
Offline
Зарегистрирован: 12.03.2014

SLKH пишет:

 т.е. опять схема с использование крайне нестабильного элемента, сложная в настойке.

вместо нормального шунта в эмиттер силового транзистора.

Заявляю официально: тот, кто поставит резистор в цепь эмиттера или коллектора, расстрелен не будет!!

Smith2007
Offline
Зарегистрирован: 30.10.2017

Получил сегодня arduino iskra (Leonardo).

Проделал различные уроки. На первый взгляд ни чего особенно сложного.

Из непонятного - не работает Serial.print("Text"); в секции Setup()

В пути осцилограф, лабораторный источник питания. В процессе выбора настольного мультиметра и лабороторного генератора сигналов)

Пока не приехал ЛБП буду моделировать с простым светодиодом на выходе.

Вопросы практикам:

1. Мне нужно реагировать на фронт и срез сигнала от выключателя. По срезу - команда на включение, по фронту - выключение.

Будет ли правильным использование прерываний? Плюсы и минусы?

2. Правильно ли будет завести сигнал от датчика хола (скорость) на третье прерывание? Считывать испульсы по фронту например.

3. Дискретный вход ардуино может быть настроен на режим подсчета импульсов (выступить аппаратным счетчиком)?

4. Можно ли на ардуино сделать прерывание по таймеру? 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ответы на вопросы №№ 3 и 4 есть вот здесь.

Что касается вопросов №№ 1 и 2, давайте их обсудим после того, как Вы прочитаете документ, на который я сослался

Smith2007
Offline
Зарегистрирован: 30.10.2017

Исходя из своих скромных знаний в английском, на 3 и 4 вопросы ответ утвердительный. Можно, но как это в коде проделать пока мало представляю.

Подумал, что можно сделать не используя аппаратный счетчик. Да и частоты будут очень маленькими.

Выводы, которые сделал на данный момент:

Кнопки (их 2 шт) обрабатывать на прерываниях. Обработка простейшая, много тактов не займет. Установить флаг по срезу, очстить флаг по фронту.

Датчик хола - обрабатывать на прерывании. Обработка так же простая - инкремент счетчика (по срезу или фронту - без разницы).

На плате разведено 5 пинов с прерываниями.

На 1000м приходится 6004 импульса.

При скорости 60 км/ч за час (или 3600 сек) проезжаем 60 км или 360240 импульсов. 

Можно интегрировать счетчик в течении 36 сек и в случае если расчетное значение счетчика (датчик Хола) больше 3602 импульса - сбрасывать флаг.

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

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

   

Smith2007
Offline
Зарегистрирован: 30.10.2017

Дребезг можно аппаратно исключить. Конденсатор например поставить во входной цепи. Примерно так

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Smith2007 пишет:

Поясни, пожалуйста, разве здесь не получится, что сигнал на пин поступает с делителя R1-R2 и, таким образом высокий уровень будет поделен на два?

Smith2007
Offline
Зарегистрирован: 30.10.2017

Датчик Хола запитан от бортовой сети 12В.
На выходе датчика 8-9В.

Smith2007
Offline
Зарегистрирован: 30.10.2017

В приведённом выше фильтре, t=10 ms. При включении питания на вход контроллера будет подаваться 0 в течении 10 мс. При условии, что на вход подан сигнал 10 В

каким образом учесть все переходные процессы? 

Правильно будет если в секции setup() сделать delay(1000) ?

Smith2007
Offline
Зарегистрирован: 30.10.2017

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

В программе обработки прерывания обычный счетчик

count++;

На входе подтяжка включена. Кнопка включена на землю последовательно с резистором 1 кОм. 

Результат count 

вывожу в той же процедуре обработки прерываний.

Жму кнопку и ...... редкий раз, когда 1 импульс проскакивает. Чаще 4-5, а бывает и больше. Т.е. дребезг у таких кнопок жуткий

Поставил парралельно входу конденсатор 10mF. 

Кнопка стала работаь четко. Ни каких ложных срабатываний.

Smith2007
Offline
Зарегистрирован: 30.10.2017

В ожидании генератора (для имитации частоты вращения коленвала) поднял на 13 пине генератор сигналов. Частоту задаю дискретно при помощи Serial.read()

Выход генератора подключил на вход пина обработчика прерывания. 

В принципе основную часть алгоритма можно сказать протестировал. Ни чего тут сложного нет.

#define pin_gen  13

// входы кнопок управления
#define pin_bt1  3
#define pin_bt2  2



// выходы управления клапанами
#define pin_out1  4
#define pin_out2  5

int t_scan = 5; // время интеграции
long count1 = 0;
long count2 = 0;
static boolean start = true;
long t_current = 0;
long t_old = 0;
int t_freq = 1000/3; // t периода в мс
boolean flag = false;


void setup() {
  // put your setup code here, to run once:
  //pinMode(pin_bt1, INPUT);
  attachInterrupt(0, click_bt1, FALLING);
  attachInterrupt(1, click_bt2, FALLING);
    //pinMode(pin_bt2, INPUT);
  digitalWrite(pin_bt1,HIGH);
  digitalWrite(pin_bt2,HIGH);
  pinMode(pin_out1, OUTPUT);
  pinMode(pin_out2, OUTPUT);
  pinMode(pin_gen, OUTPUT);
  Serial.begin(9600);
};

void Startup() {
  if (start) {
    start = false;
    delay(4000);
    Serial.println("Starting...");
    Serial.print("count1=");
    Serial.print(count1);
    Serial.print(" count2=");
    Serial.println(count2);
  };
};

void click_bt1() {
  count1++;
  Serial.print("count1=");
  Serial.println(count1);
};

void click_bt2() {
  if (count1 > 10 ) {
    Serial.println("Block_off");
    count1 = 0;
  } else {
    Serial.println("Block_on");
    count1 = 0;
  };
  int x = digitalRead(pin_bt2);
  Serial.println(x);
};

// Генератор частоты 
// Часто та в герцах задается с терминала
void generator() {
  t_current = millis();
  if (t_current - t_old > t_freq) {
    t_old = t_current;
    digitalWrite(pin_gen,!digitalRead(pin_gen));
  };
  int a = Serial.available();
  if ( a > 0) {  //если есть доступные данные
        // считываем байт
         char x = Serial.read();
         Serial.println(x);
         switch (x) {
          case '0':
            t_freq = 1000/1;
            Serial.println(t_freq);
            break;
          case '1':
            t_freq = 1000/2;
            Serial.println(t_freq);
            break;
          case '2':
            t_freq = 1000/4;
            Serial.println(t_freq);
            break;
          case '3':
            t_freq = 1000/8;
            Serial.println(t_freq);
            break;
          case '4':
            t_freq = 1000/16;
            Serial.println(t_freq);
            break;
          case '5':
            t_freq = 1000/32;
            Serial.println(t_freq);
            break;
         };
         
    };
};

void loop() {
  int bt1;
  int bt2;
  // put your main code here, to run repeatedly:
  Startup();
  bt1=digitalRead(pin_bt1);
  bt2=digitalRead(pin_bt2);
  digitalWrite(pin_out1, bt1);
  digitalWrite(pin_out2, bt2);
  generator();
  //delay(100);
  //Serial.print("bt1=");
  //Serial.print(bt1);
  //Serial.print(" bt2=");
  //Serial.println(bt2);
};

На излишний код внимание не обращайте. Это отладочный вариант.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Smith2007 пишет:

Поставил парралельно входу конденсатор 10mF. 

Постоянная времени 2,2 миллисекунды, если я не ошибся - там процесс не быстрее? Если нет, то хорошо, а если да - то съедать будет.

Smith2007
Offline
Зарегистрирован: 30.10.2017

На рисунке первый вариант с резистором 220 ом. Позже поставил 1 к.

частота импульсов с датчика холла при скорости 60 км/ч  100 Гц. 

Да, согласен, что нужно уменьшить постоянную времени. Увеличить сопротивление до 4,7 к и снизить емкость до 0,1 mF. Получим постоянную 0,5 ms. При скорости авто 180 км/ч максимальная частота импульсов 300 Гц или 3,3 мс, что на мой взгляд достаточно. Не знаю как отреагирует на это штатная электроника, но входное сопротивление хотелось бы ещё увеличить. Какое входное сопротивление у входа ардуинки?

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

Smith2007 пишет:

Какое входное сопротивление у входа ардуинки?

30-40 ком, если с подтяжкой.