• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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:
 
Сверху Снизу