Управление бесколлекторным двигателем с помощью датчиков Холла и Arduino Uno

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем Azret, 7 июл 2018.

  1. Azret

    Azret Нуб

    Добрый день! Стоит задача, на основе Ардуино Уно написать программу управления бесколлекторным двигателем с помощью датчиков холла...
    На гивке виден цикл работы бесколлекторного двигателя на основе сигналов датчика Холла.

    Может кто сталкивался? Ну или подскажет примерно с чего начать.

    цикл работы бесколлекторного двигателя.gif
     
  2. parovoZZ

    parovoZZ Гуру

    На сайте атмела (микрочипа) лежит целый апноут по этому делу. И вроде как не один. Можно ещё поискать на gaw.ru - там были какие-то переводы.
    Датчики холла - вчерашний день. На сегодняшний день есть драйвера, которые управляются по сигналам противоЭДС с обмоток.
     
  3. Azret

    Azret Нуб

    Спасибо большое за информацию. Много полезного увидел в будущем. Просто под руками есть плата Ардуино,
    И хотелось бы узнать, возможна ли реализация этой задачи на платах Arduino?
     
  4. Azret

    Azret Нуб

    Уважаемые форумчане. Как реализовать аппаратные прерывания от датчиков холла? ((
     
  5. parovoZZ

    parovoZZ Гуру

    датчик холла какой?
     
  6. Azret

    Azret Нуб

    Цифровой
     
  7. Azret

    Azret Нуб

    Я должен создать для каждого пина и способа прерывания отдельные функции?
    attachInterrupt(0, functuin1, RISING) // 0 аргумент соответствующий пину 2
    attachInterrupt(1, functuin2, RISING)
    attachInterrupt(2, functuin3, RISING)
    attachInterrupt(3, functuin4, FALLING)
    attachInterrupt(4, functuin5, FALLING)
    attachInterrupt(5, functuin6, FALLING)
    Где каждому аргументу соответствует свой пин.

    В дальнейшем в скейтче вызывать
    Setup function1()
    // здесь будет подача шим сигнала на один выходной пин


    Setup function2()
    // здесь будет подача шим сигнала на другой выходной пин
    ......
    Setup function6()
    ......


    Правильна ли вообще такая логика? Или я пишу полную ересь на ваш взгляд
     
  8. AlexU

    AlexU Гуру

    С Ардуино УНО так не получится. Там всего два прерывания, которые поддерживают RISING/FALLING. Если нужно больше прерываний, то смотрите в сторону PCINT. Но эти прерывания могут отслеживать только факт изменения состояния пина, а вот что за изменение (RISING/FALLING) придётся вычислять в обработчике самому.
     
    parovoZZ нравится это.
  9. Azret

    Azret Нуб

    У меня ардуино мега 2650, в котором 6 пинов для прерывания