матплата с него убрана(ее попросту не было), нужно оживить сие чудо, к каждому двигателю приходит + и -, и больше ничего, данный микрик стоит на каждом движке. - вот в чём недоступность.
Что бы тема не оборвалась ничем не закончившись, продолжаю рассказывать о своём видении решения задачи топикстартера. Выкладываю свою схему, которая позволяет управлять включением/выключением мотора М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 градусов - зависит от механизма). Иначе будет ложное срабатывание при возврате контакта "С" и иное устойчивое положение.
Стоимость трёх резисторов и одного транзистора и составляют стоимость электроники на один канал (мотор). Надо отметить, что не так всё радужно, как кажется поначалу. Если продумать дальнейшее применение этой схемы в конкретном устройстве, то выявляется ещё как минимум один ньюанс, который надо реализовать аппаратно/программно. Но это позже, если кому-то будет интересен вышеприведённый вариант управления мотором.
Нужно отдать должное разработчику платы, за такой придуманный способ с помощью микрика информировать микропроцессор о заданном положении вала механизма.
Нужно отдать должное разработчику платы, за такой придуманный способ с помощью микрика информировать микропроцессор о заданном положении вала механизма.
я - не отдам ! должное принадлежит Томасу Эдисону :)
добрый вечер, сейчас ознакамливаюсь с вышеописанным, завтра хочу приступить к опытам, последние пару тройку дней не было возможности по причине ухода из жизни одного из родственников(((((
Вы слишком долго описываете работу R-S триггера. Всё что вы нарисовали легко решается на оптроне и двух резисторах (посмотрите мою схему) или просто на двух резисторах и входе прерывания Ардуины. Плюс резистор и ключ для подачи питания
При способе испльзования низкоомного резистора и ОУ нужно на один канал "отдать" два вывода МК. Т.о. всего получается 72 входа/выхода. Значит без регистров сдвига не обойтись --> растёт аппаратная часть.
ТС. При экспериментах с моим вариантом будьте внимательны. НЕ ЗАКЛИНЬТЕ МЕХАНИКУ.
Вы слишком долго описываете работу R-S триггера. Всё что вы нарисовали легко решается на оптроне и двух резисторах (посмотрите мою схему) или просто на двух резисторах и входе прерывания Ардуины. Плюс резистор и ключ для подачи питания
Мне было интересно придумать схему при минимуме используемых выводов Ардуины. На 36 каналов получил 38 выводов. А ещё и про входы нужно подумать. Может в Arduino Mega уместится.
Схема на резисторах, как опртрон для надёжности добавить гляньте мой пост вверху. Нужна ещё Ардуина с входом прерывания и выходом на ключ. Можно ещё добавить 1000 пик параллельно R2, но не больше.
Ну и программа простейшая. Типа держим мотор включённым пока не пришло прерывание и отключаем.
Могу на двух 2И-НЕ или Д триггере схемку набросать, но там вообще процессор лишний, а это ведь не интересно.....
Схема на резисторах, как опртрон для надёжности добавить гляньте мой пост вверху. Нужна ещё Ардуина с входом прерывания и выходом на ключ. Можно ещё добавить 1000 пик параллельно R2, но не больше.
Ну и программа простейшая. Типа держим мотор включённым пока не пришло прерывание и отключаем.
Могу на двух 2И-НЕ или Д триггере схемку набросать, но там вообще процессор лишний, а это ведь не интересно.....
А я как раз о триггере и думаю сейчас, запустили мотор, он сам остановится где надо, и пошлёт в МК прерывание, что уже отработал оборот. Самый лучший (по мне) вариант.
Остановка моторов подобным образом требует внутри какой-то " ячейки" памяти- например реле с парой контактов- одна для нагрузки, вторая для подхвата- эащёлкивания. Плюс пару диодов для логики работы. И напряжение на питании можно держать сколько угодно- пока оно есть- реле сработало и никуда мотор не пойдёт. Чтобы снова включить его надо на короткое время снять питание, реле отпадает и включает мотор опять до срабатывания концевика.
Желая выложить все имеющиеся соображения по данной теме, предствляю схему, которая должна работать по принципу "запустил и забыл". Подав на вывод IO кратковременно логическую единицу включаем мотор. Затем вывод IO перевести в состояние "вход". Когда мотор сделает оборот, мотор обесточится и остановится, на выводе IO установится логический ноль.
Есть ещё соображения по поводу защиты транзисторов в случае заклинивания механики, но это по запросу ТС.
Что бы не затерялась схема, выложу её. Это токовая защита для схемы в посте #129. В случае заклинивания механики увеличивается ток протекающий через плату мотора. На резисторе R6 15 Ом увеличивается напряжение. Оно выключает напряжение +24 В на всех каналах. Программым способом можно вычислить неисправный канал и не использовать его до ремонта.
Под переключателями S1 и S52 понимаются выводы контроллера. S1 настроен на выход, S52 выход/вход. При срабатывании защиты на нём появляется логическая единица. Сбрасывается перегрузка коротким логическим нулём.
матплата с него убрана(ее попросту не было), нужно оживить сие чудо, к каждому двигателю приходит + и -, и больше ничего, данный микрик стоит на каждом движке. - вот в чём недоступность.
#49
Завтра продолжу тему. Сейчас экспериментирую с симулятором Multisim 12.0.1. Забавная штука (хоть и не люблю я эти "резиновые бабы" в электронике).
Что бы тема не оборвалась ничем не закончившись, продолжаю рассказывать о своём видении решения задачи топикстартера. Выкладываю свою схему, которая позволяет управлять включением/выключением мотора М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 градусов - зависит от механизма). Иначе будет ложное срабатывание при возврате контакта "С" и иное устойчивое положение.
Стоимость трёх резисторов и одного транзистора и составляют стоимость электроники на один канал (мотор). Надо отметить, что не так всё радужно, как кажется поначалу. Если продумать дальнейшее применение этой схемы в конкретном устройстве, то выявляется ещё как минимум один ньюанс, который надо реализовать аппаратно/программно. Но это позже, если кому-то будет интересен вышеприведённый вариант управления мотором.
Нужно отдать должное разработчику платы, за такой придуманный способ с помощью микрика информировать микропроцессор о заданном положении вала механизма.
с R3 на аналоговый вход - ловим пропадание тока на десяток миллисекунд, цифровым выходом управляем подачей питания 24 V....
только правильнее R3 поставить 0,1 ... 0,5 Om и операционник, чтобы не влиять на работу платы.
рабочий инструмент - ток, как его анализировать - дело ТС :)
Нужно отдать должное разработчику платы, за такой придуманный способ с помощью микрика информировать микропроцессор о заданном положении вала механизма.
я - не отдам ! должное принадлежит Томасу Эдисону :)
добрый вечер, сейчас ознакамливаюсь с вышеописанным, завтра хочу приступить к опытам, последние пару тройку дней не было возможности по причине ухода из жизни одного из родственников(((((
:(
To: gena
Вы слишком долго описываете работу R-S триггера. Всё что вы нарисовали легко решается на оптроне и двух резисторах (посмотрите мою схему) или просто на двух резисторах и входе прерывания Ардуины. Плюс резистор и ключ для подачи питания
При способе испльзования низкоомного резистора и ОУ нужно на один канал "отдать" два вывода МК. Т.о. всего получается 72 входа/выхода. Значит без регистров сдвига не обойтись --> растёт аппаратная часть.
ТС. При экспериментах с моим вариантом будьте внимательны. НЕ ЗАКЛИНЬТЕ МЕХАНИКУ.
в цепь питания мотора вы внесли добавочные 24 Om - а это снижение крутящего момента :(
To: gena
Вы слишком долго описываете работу R-S триггера. Всё что вы нарисовали легко решается на оптроне и двух резисторах (посмотрите мою схему) или просто на двух резисторах и входе прерывания Ардуины. Плюс резистор и ключ для подачи питания
Мне было интересно придумать схему при минимуме используемых выводов Ардуины. На 36 каналов получил 38 выводов. А ещё и про входы нужно подумать. Может в Arduino Mega уместится.
в цепь питания мотора вы внесли добавочные 24 Om - а это снижение крутящего момента :(
Делаем питание +26 В, если момент "недоедает".
при быстром нажатии на кнопку оно равно 56,3 , а далее это значение 1 или 2 цикла равно 0. Как избавиться от нулевого значения?
нулевое значение - это и есть признак СТОП :)
в первом посте всё и решено, только не правильно применено.
в цепь питания мотора вы внесли добавочные 24 Om - а это снижение крутящего момента :(
Делаем питание +26 В, если момент "недоедает".
если один человек что-то сделал, второй завсегда это может сломать :) граф Калиостро :)
по задаче - два провода и ничего изменять нельзя
Схема на резисторах, как опртрон для надёжности добавить гляньте мой пост вверху. Нужна ещё Ардуина с входом прерывания и выходом на ключ. Можно ещё добавить 1000 пик параллельно R2, но не больше.
Ну и программа простейшая. Типа держим мотор включённым пока не пришло прерывание и отключаем.
Могу на двух 2И-НЕ или Д триггере схемку набросать, но там вообще процессор лишний, а это ведь не интересно.....
не знаю, как ТС думает... , НО нужен третий провод от NC/NO к делителю R1R2 - вмешательство в схему ТС запретил :)
Схема на резисторах, как опртрон для надёжности добавить гляньте мой пост вверху. Нужна ещё Ардуина с входом прерывания и выходом на ключ. Можно ещё добавить 1000 пик параллельно R2, но не больше.
Ну и программа простейшая. Типа держим мотор включённым пока не пришло прерывание и отключаем.
Могу на двух 2И-НЕ или Д триггере схемку набросать, но там вообще процессор лишний, а это ведь не интересно.....
А я как раз о триггере и думаю сейчас, запустили мотор, он сам остановится где надо, и пошлёт в МК прерывание, что уже отработал оборот. Самый лучший (по мне) вариант.
запустили мотор, он сам остановится где надо, и пошлёт в МК прерывание
какой-то умный мотор получается...... если он это умеет - то зачем "пошлёт в МК прерывание" ?
Тогда резистор небольшой на землю( 0.5 Вольта пусть падает от тока ) - его на вход АЦП сверху резистора эмиттер НПН транзистора
запустили мотор, он сам остановится где надо, и пошлёт в МК прерывание
какой-то умный мотор получается...... если он это умеет - то зачем "пошлёт в МК прерывание" ?
Затем что-бы МК знал, что ячейка номер N свою функцию выполнила и готова к следующему действию.
Тогда резистор небольшой на землю( 0.5 Вольта пусть падает от тока ) - его на вход АЦП сверху резистора эмиттер НПН транзистора
Сколько же АЦП нужно иметь ТС в МК? А сколько их реально есть?
при постоянно поданном питании ( с пропаданием на 50 mS ) - мотор никогда не остановится :(
при постоянно поданном питании ( с пропаданием на 50 mS ) - мотор никогда не остановится :(
Сам, никогда. А радиодетальки (триггер) - думаю остановят.
Сколько же АЦП нужно иметь ТС в МК?
столько же - сколько в матплате отсутствующей :)
и не факт, что там был МК.... это и дискретными, и К155 можно было решить
на один моторчик нужно - аттини13, операционник, шунт 0,1 Om
прикольная тема - но моя устал и буду только читать.... удачи ТС-у :)
Остановка моторов подобным образом требует внутри какой-то " ячейки" памяти- например реле с парой контактов- одна для нагрузки, вторая для подхвата- эащёлкивания. Плюс пару диодов для логики работы. И напряжение на питании можно держать сколько угодно- пока оно есть- реле сработало и никуда мотор не пойдёт. Чтобы снова включить его надо на короткое время снять питание, реле отпадает и включает мотор опять до срабатывания концевика.
only trembo :)
реле с самоблокировкой - ячейка памяти на 1 бит :)
Так оно и есть, даже термин есть специальный- 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
Желая выложить все имеющиеся соображения по данной теме, предствляю схему, которая должна работать по принципу "запустил и забыл". Подав на вывод IO кратковременно логическую единицу включаем мотор. Затем вывод IO перевести в состояние "вход". Когда мотор сделает оборот, мотор обесточится и остановится, на выводе IO установится логический ноль.
Есть ещё соображения по поводу защиты транзисторов в случае заклинивания механики, но это по запросу ТС.
Добрый день, собрал небольшой компаратор, сегодня постараюсь проверить(т.к. маленько подпалил ардуинку)
Что бы не затерялась схема, выложу её. Это токовая защита для схемы в посте #129. В случае заклинивания механики увеличивается ток протекающий через плату мотора. На резисторе R6 15 Ом увеличивается напряжение. Оно выключает напряжение +24 В на всех каналах. Программым способом можно вычислить неисправный канал и не использовать его до ремонта.
Под переключателями S1 и S52 понимаются выводы контроллера. S1 настроен на выход, S52 выход/вход. При срабатывании защиты на нём появляется логическая единица. Сбрасывается перегрузка коротким логическим нулём.