acs712 ловим скачек тока

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

матплата с него убрана(ее попросту не было), нужно оживить сие чудо, к каждому двигателю приходит + и -, и больше ничего, данный микрик стоит на каждом движке. - вот в чём недоступность.

#49

gena
Offline
Зарегистрирован: 04.11.2012

  Завтра продолжу тему. Сейчас экспериментирую с симулятором Multisim 12.0.1. Забавная штука (хоть и не люблю я эти "резиновые бабы" в электронике).

gena
Offline
Зарегистрирован: 04.11.2012

 

  Что бы тема не оборвалась ничем не закончившись, продолжаю рассказывать о своём видении решения задачи топикстартера. Выкладываю свою схему, которая позволяет управлять включением/выключением мотора М1. Другие элементы платы пока не показываю, т.к. уточнений от ТС не имею. 

  Такую схему платы я использую как модель реальной.

При подаче питания на микроконтроллер, он настраивает свой вывод I/O как выход и устанавливает на нём логический ноль ("0"). Т.о. транзистор VT1 заперт, мотор обесточен. Когда возникает необходимость провернуть вал механизма на один оборот, вывод микроконтроллера I/O настраивается как вход. Это значит, что его (входа) сопротивление велико, и на работу схемы не влияет. От источник +5 V ток через резисторы R1, R2 отпирает транзистор VT1. Мотор подключается через резистор R3 к общему проводу и начинает вращаться. Вывод I/O настраивается не просто как вход, а на формирование прерывания "при изменении уровня". Сопротивление резистора R3 таково, что при номинальном токе через мотор, напряжение на нём составляет около двух Вольт. При этом напряжение на входе I/O около 3,2 Вольта, что равно логичесой "1". Когда вал механизма сделает полный оборот и надавит на рычаг микропереключателя S1, контакт "С" переключится из устойчивого положения "NC" в другое устойчивое положение "NO". Это переключение НЕ мгновенно. Как правило оно занимает десяток миллисекунд и сопровождается явлением, именуемым "дребезг контактов". Значит на это же время переключения коллектор транзистора VT1 будет лишён питающего напряжения, а значит потеряет свойтство усиливать ток и будет превращаться в диод (переход база - эмиттер). Распределение потенциалов в схеме будет изменяться. Красным цветом показаны потенциалы при замкнытух контактах переключателя S1, а синим - в период времени, когда контакт "С" находится между контактов "NC" и "NO". Видно, что уровень изменений напряжения на входе I/O достаточный, что бы сработала внутренняя схема микроконтроллера, и сформировала сигнал прерывания.
Микроконтроллер, отрабатывая программу прерывания, настраивает вывод I/O как выход, устанавливает на нём "0", мотор останавливается.
Необходимо учесть, что при включении мотора, настраивать вывод I/O на срабатывание по прерыванию нужно не сразу же, а по истечении времени, достаточного для проворота оси на некоторый угол (10...30 градусов - зависит от механизма). Иначе будет ложное срабатывание при возврате контакта "С" и иное устойчивое положение.

Стоимость трёх резисторов и одного транзистора и составляют стоимость электроники на один канал (мотор). Надо отметить, что не так всё радужно, как кажется поначалу. Если продумать дальнейшее применение этой схемы в конкретном устройстве, то выявляется ещё как минимум один ньюанс, который надо реализовать аппаратно/программно. Но это позже, если кому-то будет интересен вышеприведённый вариант управления мотором.

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

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

с R3 на аналоговый вход - ловим пропадание тока на десяток миллисекунд, цифровым выходом управляем подачей питания 24 V....

только правильнее R3 поставить 0,1 ... 0,5 Om и операционник, чтобы не влиять на работу платы.

рабочий инструмент - ток, как его анализировать - дело ТС :)

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

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

я - не отдам ! должное принадлежит Томасу Эдисону :)

Grigory
Offline
Зарегистрирован: 29.03.2014

добрый вечер, сейчас ознакамливаюсь с вышеописанным, завтра хочу приступить к опытам, последние пару тройку дней не было возможности по причине ухода из жизни одного из родственников(((((

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

:(

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

To: gena

Вы слишком долго описываете работу R-S триггера. Всё что вы нарисовали легко решается  на оптроне и двух резисторах (посмотрите мою схему) или просто на двух резисторах и входе прерывания Ардуины. Плюс резистор и ключ для подачи питания

gena
Offline
Зарегистрирован: 04.11.2012

   При способе испльзования низкоомного резистора и ОУ нужно на один канал "отдать" два вывода МК. Т.о. всего получается 72 входа/выхода. Значит без регистров сдвига не обойтись --> растёт аппаратная часть.

 

ТС. При экспериментах с моим вариантом будьте внимательны. НЕ ЗАКЛИНЬТЕ МЕХАНИКУ.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

в цепь питания мотора вы внесли добавочные 24 Om - а это снижение крутящего момента :(

gena
Offline
Зарегистрирован: 04.11.2012

trembo пишет:

To: gena

Вы слишком долго описываете работу R-S триггера. Всё что вы нарисовали легко решается  на оптроне и двух резисторах (посмотрите мою схему) или просто на двух резисторах и входе прерывания Ардуины. Плюс резистор и ключ для подачи питания

 

Мне было интересно придумать схему при минимуме используемых выводов Ардуины. На 36 каналов получил 38 выводов. А ещё и про входы нужно подумать. Может в Arduino Mega уместится.

gena
Offline
Зарегистрирован: 04.11.2012

SU-27-16 пишет:

в цепь питания мотора вы внесли добавочные 24 Om - а это снижение крутящего момента :(

 

Делаем питание +26 В, если момент "недоедает".

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

при быстром  нажатии на кнопку оно равно 56,3 , а далее это значение 1 или 2 цикла равно 0. Как избавиться от нулевого значения?

нулевое значение - это и есть признак СТОП :)

в первом посте всё и решено, только не правильно применено.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

gena пишет:

SU-27-16 пишет:

в цепь питания мотора вы внесли добавочные 24 Om - а это снижение крутящего момента :(

 

Делаем питание +26 В, если момент "недоедает".

если один человек что-то сделал, второй завсегда это может сломать :) граф Калиостро :)

по задаче - два провода и ничего изменять нельзя

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

Схема на резисторах, как опртрон для надёжности добавить гляньте мой пост вверху. Нужна ещё Ардуина с входом прерывания и выходом на ключ. Можно ещё добавить 1000 пик параллельно R2, но не больше.

Ну и программа простейшая. Типа держим мотор включённым пока не пришло прерывание и отключаем.

Могу на двух 2И-НЕ или Д триггере схемку набросать, но там вообще процессор лишний, а это ведь не интересно.....

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

не знаю, как ТС думает... , НО нужен третий провод от NC/NO к делителю R1R2 - вмешательство в схему ТС запретил :)

gena
Offline
Зарегистрирован: 04.11.2012

trembo пишет:

Схема на резисторах, как опртрон для надёжности добавить гляньте мой пост вверху. Нужна ещё Ардуина с входом прерывания и выходом на ключ. Можно ещё добавить 1000 пик параллельно R2, но не больше.

Ну и программа простейшая. Типа держим мотор включённым пока не пришло прерывание и отключаем.

Могу на двух 2И-НЕ или Д триггере схемку набросать, но там вообще процессор лишний, а это ведь не интересно.....

 

  А я как раз о триггере и думаю сейчас, запустили мотор, он сам остановится где надо, и пошлёт в МК прерывание, что уже отработал оборот. Самый лучший (по мне) вариант.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

запустили мотор, он сам остановится где надо, и пошлёт в МК прерывание

какой-то умный мотор получается...... если он это умеет - то зачем "пошлёт в МК прерывание" ?

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

Тогда резистор небольшой на землю( 0.5 Вольта пусть падает от тока )  - его на вход АЦП  сверху резистора  эмиттер НПН транзистора

gena
Offline
Зарегистрирован: 04.11.2012

SU-27-16 пишет:

запустили мотор, он сам остановится где надо, и пошлёт в МК прерывание

какой-то умный мотор получается...... если он это умеет - то зачем "пошлёт в МК прерывание" ?

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

gena
Offline
Зарегистрирован: 04.11.2012

trembo пишет:

Тогда резистор небольшой на землю( 0.5 Вольта пусть падает от тока )  - его на вход АЦП  сверху резистора  эмиттер НПН транзистора

Сколько же АЦП нужно иметь ТС в МК? А сколько их реально есть?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

при постоянно поданном питании ( с пропаданием на 50 mS ) - мотор никогда не остановится :(

gena
Offline
Зарегистрирован: 04.11.2012

SU-27-16 пишет:

при постоянно поданном питании ( с пропаданием на 50 mS ) - мотор никогда не остановится :(

Сам, никогда. А радиодетальки (триггер) - думаю остановят.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Сколько же АЦП нужно иметь ТС в МК?

столько же - сколько в матплате отсутствующей :)

и не факт, что там был МК.... это и дискретными, и К155 можно было решить

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

на один моторчик нужно - аттини13, операционник, шунт 0,1 Om

прикольная тема - но моя устал и буду только читать.... удачи ТС-у :)

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

Остановка моторов подобным образом требует внутри какой-то " ячейки" памяти- например реле с парой контактов- одна для нагрузки, вторая для подхвата- эащёлкивания. Плюс пару диодов для логики работы. И напряжение на питании можно держать сколько угодно- пока оно есть-  реле сработало и никуда мотор не пойдёт. Чтобы снова включить его надо на короткое время снять питание, реле отпадает и включает мотор опять до срабатывания концевика.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

only trembo :)

реле с самоблокировкой - ячейка памяти на 1 бит :)

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

Так оно и есть, даже термин есть специальный- ladder logic и даже софт для разработки.

И где-то видел софт релейной логики с выводом в  HEX для  ATMEGA

https://www.google.ru/search?q=ladder+logic&newwindow=1&biw=1440&bih=785&tbm=isch&tbo=u&source=univ&sa=X&ei=W8jdVLGQMqK_ywOJ5oGwCA&ved=0CDMQsAQ

gena
Offline
Зарегистрирован: 04.11.2012

  Желая выложить все имеющиеся соображения по данной теме, предствляю схему, которая должна работать по принципу "запустил и забыл". Подав на вывод IO кратковременно логическую единицу включаем мотор. Затем вывод IO перевести в состояние "вход". Когда мотор сделает оборот, мотор обесточится и остановится, на выводе IO установится логический  ноль. 

 Есть ещё соображения по поводу защиты транзисторов в случае заклинивания механики, но это по запросу ТС.

 

Grigory
Offline
Зарегистрирован: 29.03.2014

Добрый день, собрал небольшой компаратор, сегодня постараюсь проверить(т.к. маленько подпалил ардуинку)

gena
Offline
Зарегистрирован: 04.11.2012

   Что бы не затерялась схема, выложу её. Это токовая защита для схемы в посте #129. В случае заклинивания механики увеличивается ток протекающий через плату мотора. На резисторе R6 15 Ом увеличивается напряжение. Оно выключает напряжение +24 В на всех каналах. Программым способом можно вычислить неисправный канал и не использовать его до ремонта.

  Под переключателями S1 и S52 понимаются выводы контроллера. S1 настроен на выход, S52   выход/вход. При срабатывании защиты на нём появляется логическая единица. Сбрасывается перегрузка коротким логическим нулём.