• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

gorek77

New member
Здравствуйте! Имеется ESPDUINO-32. К ней подключен обычный китайский шилд Motor control shield for Arduino v.1 на LD239D (109.75 руб. |Бесплатная доставка L293D управления двигателем щит моторного привода Плата расширения для Arduino motor shield купить на AliExpress) и к нему четыре DC-електромоторчика, которые открывают/закрывают заслонки. Для всех моторов подается отдельное питание 12В, которое подключено на шилде к разъему EXT_PWR. Каждый моторчик имеет микровыключатель, который размыкает цепь, когда заслонки полностью открыты или закрыты.

Вопрос: Как можно сообщить микроконтроллеру, что микровыключатель уже сработал? Что можно сделать, чтобы не пытаться "крутить" электромотор, когда достигнуто крайнее положение и цепь на нем "разорвана"? Хотябы для ситуации, когда все електромоторы "доехали" до края. Вариант подключения к контактам микровыключателя внутри электромотора невозможен.

Заранее благодарен!
 

Сергей_Ф

Moderator
Команда форума
@gorek77 ну вы и формулируете. Еле понял что надо.
Датчик тока поставить на каждый мотор не вариант?
 

gorek77

New member
@gorek77 ну вы и формулируете. Еле понял что надо.
Датчик тока поставить на каждый мотор не вариант?
Думал об этом...
Предположим я даю команду на шилд для движения одного из моторов в "прямом" направлении m.motor(1,FORWARD,255). Пока эта команда выполняется, ток в цепи мотора есть.
Но если я перейду к выполнению считыванию данных с датчика тока, то разве не окажется что предыдущая команда уже отработала и в цепи мотора тока нет?
Или я не правильно понимаю?
 

Сергей_Ф

Moderator
Команда форума
m.motor(1,FORWARD,255). Пока эта команда выполняется, ток в цепи мотора есть.
Но если я перейду к выполнению считыванию данных с датчика тока, то разве не окажется что предыдущая команда уже отработала и в цепи мотора тока нет?
Эээээ. Это вы на чём писать собрались, что команда у вас так выполняется?
 

nikolz

Well-known member
Думал об этом...
Предположим я даю команду на шилд для движения одного из моторов в "прямом" направлении m.motor(1,FORWARD,255). Пока эта команда выполняется, ток в цепи мотора есть.
Но если я перейду к выполнению считыванию данных с датчика тока, то разве не окажется что предыдущая команда уже отработала и в цепи мотора тока нет?
Или я не правильно понимаю?
на каждый двигатель поставить
датчик вибрации
или микрофон
или датчик холла
или датчик тока
или оптрон
Выключать по таймеру с некоторым запасом
 

gorek77

New member
Эээээ. Это вы на чём писать собрались, что команда у вас так выполняется?
Спасибо за помощь!

Вы правы. Действительно, команда из библиотеки Adafruit на запуск мотора включает его постоянно. Выключение происходит только по команде RELEASE. Поэтому, включенный в цепь питания моторов датчик тока, реально показывает текущую ситуацию: есть потребление - значит еще крутится, нет - сработал микрик. Вопрос решился гораздо проще, чем я его сформулировал... :confused:
 
Сверху Снизу