Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "ESP32 - все о железе", создана пользователем gorek77, 7 фев 2019.

  1. gorek77

    gorek77 Новичок

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

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

    Заранее благодарен!
     
  2. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.022
    Симпатии:
    221
    @gorek77 ну вы и формулируете. Еле понял что надо.
    Датчик тока поставить на каждый мотор не вариант?
     
  3. gorek77

    gorek77 Новичок

    Сообщения:
    3
    Симпатии:
    0
    Думал об этом...
    Предположим я даю команду на шилд для движения одного из моторов в "прямом" направлении m.motor(1,FORWARD,255). Пока эта команда выполняется, ток в цепи мотора есть.
    Но если я перейду к выполнению считыванию данных с датчика тока, то разве не окажется что предыдущая команда уже отработала и в цепи мотора тока нет?
    Или я не правильно понимаю?
     
  4. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.022
    Симпатии:
    221
    Эээээ. Это вы на чём писать собрались, что команда у вас так выполняется?
     
    gorek77 нравится это.
  5. nikolz

    nikolz Гуру

    Сообщения:
    3.626
    Симпатии:
    397
    на каждый двигатель поставить
    датчик вибрации
    или микрофон
    или датчик холла
    или датчик тока
    или оптрон
    Выключать по таймеру с некоторым запасом
     
    gorek77 нравится это.
  6. gorek77

    gorek77 Новичок

    Сообщения:
    3
    Симпатии:
    0
    Спасибо за помощь!

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

Поделиться этой страницей