⚙️Управляем двигателем😁 Шаговый двигатель подключение

แชร์
ฝัง

ความคิดเห็น • 93

  • @user-wq4ft4gy2l
    @user-wq4ft4gy2l 4 ปีที่แล้ว +1

    Наконец то благодаря видео начал понимать модули контроллера ,все думал как шим настроить с разной шириной импульса для частотника)))

  • @user-lj9bp7hj3d
    @user-lj9bp7hj3d 3 ปีที่แล้ว +4

    😁смотрел видос 2 раза, с разницей пару недель, когда начал изучать ардунку
    первый просмотр был как просмотр передачи от сверхразума на не пойми каком языке, немного вник и уже понимаю о чем речь, эволюция блеа☝️😂

    • @user-gi1rc2ju5f
      @user-gi1rc2ju5f 8 หลายเดือนก่อน

      Я второй день вникаю, столько слов непонятных голова кругом

  • @ROMANMENCHISH
    @ROMANMENCHISH 2 ปีที่แล้ว +1

    СПАСИБО, УВАЖАЕМЫЙ! ОЧЕНЬ КРУТОЙ УРОК. ПРЯМО КАК У ДОНОВА ИЗ МФТИ)))

  • @user-yr1fs6dt2x
    @user-yr1fs6dt2x 2 ปีที่แล้ว

    Отличное решение

  • @user-xn7nj3rw7d
    @user-xn7nj3rw7d ปีที่แล้ว

    Можно ли по этому принципу подключить два двигателя??

  • @TELO228
    @TELO228 4 ปีที่แล้ว

    а можно добавит клавиатуру и дисплей,,??

  • @annaorlov7640
    @annaorlov7640 4 ปีที่แล้ว +2

    А можно пример с ШД и LCD дисплеем, а то как подключаю дисплей, так ШД начинает жить своей жизнью.

  • @sledleo
    @sledleo 4 ปีที่แล้ว

    На микросеках можно реализовать?
    В справке говорят, что micros() кратен 4 микросекундам. Понятное дело что не риалтайм и нет приоритета

    • @TDMLab
      @TDMLab  4 ปีที่แล้ว

      Можно, на любой задержке, но это команды впустую

  • @user-ny3pj1ft9o
    @user-ny3pj1ft9o 2 ปีที่แล้ว

    Здравствуйте. Спасибо все очень доходчиво. Как на счет посотрудничать на комерческой основе. Мне нужны скечи по моему алгоритму. При чем все вы уже там (судя по ролику) сделали.
    Спасибо.

    • @TDMLab
      @TDMLab  2 ปีที่แล้ว

      У меня сейчас этот проект, не обещаю что могу заняться вашим, но может советом помогу, напишите все мне на почту, есть в разделе "о канале".

  • @user-pz5jr2oh3o
    @user-pz5jr2oh3o ปีที่แล้ว

    Доброго времени суток! Я покупал такие драйвера, вернул деньги за них через спор. Самой микросхемы драйвера TB6600 там нет и ни когда не будет. Там таймер NE555, оптопары и четыре smd-транзистора. На заявленном токе до отказа они работают около 60 минут, после чего ремонт не возможен. При испытаниях советую обвешать вольт и ампер метрами что бы потом доказать продавцу что все правильно было подключено и за заявленные номиналы по току и напряжению не выходили. Плохо что нельзя фото загрузить, я бы показал из чего состоят эти "драйвера".

  • @Aleksander_Shenrok
    @Aleksander_Shenrok 2 ปีที่แล้ว

    Спасибо. Встала задача управлять шаговиком, но немного по другому принципу. Продолжительность высокого сигнала должна быть 10микросекунд а низкий должен регулироваться. И при всём при этом должен работать шим на D10 причём не на стандартной частоте, а выше. Возможно это на одном таймере, или нужно будет шим и двигатель на разные таймеры?

    • @TDMLab
      @TDMLab  2 ปีที่แล้ว

      Для выполнения разных задач конечно должны использоваться отдельные таймеры.

    • @Aleksander_Shenrok
      @Aleksander_Shenrok 2 ปีที่แล้ว

      @@TDMLab Спасибо.

    • @Aleksander_Shenrok
      @Aleksander_Shenrok 2 ปีที่แล้ว

      А что делать если нужно менять скорость в очень большом диапазоне и в OCR1A ставить значение больше 65535 ?

    • @TDMLab
      @TDMLab  2 ปีที่แล้ว

      @@Aleksander_Shenrok Не очень представляю себе задачу в которой не хватает 16-битного разрешения для установки скорости. Но тогда нужно использовать 32 битный таймер, но, к сожалению, у этих AVR таких нет.

    • @Aleksander_Shenrok
      @Aleksander_Shenrok 2 ปีที่แล้ว

      @@TDMLab Например лазерные гравёры при очень слабом лазере. если станок имеет 80 шагов на мм и нужна скорость 100мм в мин (это вполне реально) то на один шаг нужно 120 000 тактов. И даже если использовать ваш способ где высокий и низкий сигнал равны, то это практически на пределе возможностей. Если же использовать стандартный метод , при котором на высокий сигнал даётся только 10 микросекунд (160 тактов) а остальное низкий сигнал, то такая скорость уже выходит за рамки возможностей таймера. Кстати, я немного дополнил ваш скетч и теперь высокий сигнал фиксированный, а низкий можно менять в основном цикле. if (PORTD & 0b00000100)
      {
      PORTD &= 0b11111011;
      OCR1A = sensorValue;
      } // STEP HIGH
      else
      {
      PORTD |= 0b00000100;
      OCR1A = 160;
      } // STEP LOW

  • @alekseiromanov6264
    @alekseiromanov6264 2 ปีที่แล้ว

    Доброго времени суток
    Хотелось уточнить по поводу проекта на А4899 -2шт, vid2905 -щт
    с управлением по steep
    Может доводилось сталкиваться с проектом в качестве спидометр (одометр) и тахометр для автопанели. Сложность в написании скейча для ардуино mega 2560 pro ch340g , . В интернете находил проекты но они не полностью соответствовать моему замыслу,.
    Плиз в помощи если

    • @TDMLab
      @TDMLab  2 ปีที่แล้ว

      Здравствуйте, нет спидометров не делал. По ардуино спрашивайте, может что подскажу.

  • @aerobatics-rus
    @aerobatics-rus 3 ปีที่แล้ว

    помогите заставить вращаться шаговый двигатель на определенный угол в ту или иную сторону в зависимости от температуры. я хочу взять самый дешевый чтобы управлять вращением крана подачи воды.

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว

      Определенный угол это определенное количество шагов ШД. Нужно давать сигнал step нужное количество раз.

    • @aerobatics-rus
      @aerobatics-rus 3 ปีที่แล้ว

      @@TDMLab все верно, а как сделать зависимость от термометра, поможете с программой? :)

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว

      Написать регулятор типа ПИ (пропорционально-интегральный) вход температура выход управляющее воздействие, далее конвертировать его в положение ШД.
      На заказ не пишу, есть форумы.

  • @33021976
    @33021976 3 ปีที่แล้ว

    Не подскажите как управлять таймеров в скетче, например переменным резистором, для уменьшения, увеличения скорости врашения двигателя.

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว

      DC двигатель?
      Таймер настраиваем как выход ШИМ, с помощью anlagread или регистры настраиваем и включаем АЦП, кидаем полученные значения АЦП в регистр сравнения таймера. Все.
      Конечно двигателем управляем не напрямую а через mosfet например.

    • @33021976
      @33021976 3 ปีที่แล้ว

      @@TDMLab шаговый двигатель,. Я имел ввиду как модифицировать ваш скетч, чтобы можно было обороты регулировать переменным резистором.

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว

      @@33021976 Аналогично, читаем из АЦП, кидаем в регистр OCR1A.

    • @33021976
      @33021976 3 ปีที่แล้ว

      @@TDMLab OCR1A нужно помещать в loop? OCR1A нужно обявить переменной и ее уже изменять? Я понимаю, что если понимаешь то это элементарно. К сажелению я только начинаю изучать ардуино.

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว

      @@33021976 OCR1A название регистра сравнения таймера 1, объявлять не нужно т.к. он уже по умолчанию объявлен в скрытой от нас части кода.
      Да можно, в loop
      {
      OCR1A = analogread(A0);
      delay(100);
      }
      Такой момент, я рассказываю в основном как использовать напрямую регистры МК, это более сложный путь программирования. Если вы только начинаете рекомендую начать например с канала заметки ардуинщика или похожие, там можно научится базе.

  • @dmitriibannikovasx
    @dmitriibannikovasx 3 ปีที่แล้ว +1

    А на счет не той микросхемы - я бы вообще не удивился, если бы они в этот корпус воткнули модуль для 3д принтеров типа a4988 )

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว +1

      Запросто)))

    • @dmitriibannikovasx
      @dmitriibannikovasx 3 ปีที่แล้ว

      @@TDMLab А ещё скажите пожалуйста, какая минимальная длительность высокого уровня сигнала должна быть, чтобы драйвер успел его воспринять? Достаточно ли просто поднять пин и сразу же его опустить в коде?

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว +1

      @@dmitriibannikovasx Судя по спецификации на микросхему The CLK(H) minimum pulse
      width - 300nS, один такт на 16МГц это 62,5 nS, вроде быстрее чем за 4 такта не получиться поднять опустить, и еще можно пустую команду nop добавить и все ок, но это в теории:)

    • @dmitriibannikovasx
      @dmitriibannikovasx 3 ปีที่แล้ว

      @@TDMLab Ого) Спасибо большое)

  • @user-jq1ml7yx4t
    @user-jq1ml7yx4t 7 หลายเดือนก่อน

    Эх с чего канал начинался!

  • @user-xj2vc2dc1r
    @user-xj2vc2dc1r 4 ปีที่แล้ว

    где брать библиотеки
    #include
    #include

    • @TDMLab
      @TDMLab  4 ปีที่แล้ว

      Нигде, они уже встроены в arduino ide

    • @user-xj2vc2dc1r
      @user-xj2vc2dc1r 4 ปีที่แล้ว

      @@TDMLab а если использовать ардуино DUE? У меня именно DUE.

    • @TDMLab
      @TDMLab  4 ปีที่แล้ว

      @@user-xj2vc2dc1r due это тип платы, ide это среда разработки, мы говорим о разном.

    • @user-xj2vc2dc1r
      @user-xj2vc2dc1r 4 ปีที่แล้ว

      @@TDMLab при загрузке скетча программа не может найти первую библиотеку. Посоветуйте выход из положения.

    • @user-xj2vc2dc1r
      @user-xj2vc2dc1r 4 ปีที่แล้ว

      @@TDMLab может я что-то не правильно делаю или не делаю того что необходимо?

  • @dmitriibannikovasx
    @dmitriibannikovasx 3 ปีที่แล้ว +1

    На счет кода в векторе прерывания скажу. Понятно, что видео уже 2 года назад вышло и может быть неактуально. Вы задаете значения выводов сразу для всего порта! То есть по сути, мы занимаем весь порт D ради одного пина! Гораздо лучше использовать такой код:
    if ( PIND&(1

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว +1

      Да, совершенно верный код. Конечно весь порт дергать это глупость)

    • @ciklomat
      @ciklomat 3 ปีที่แล้ว

      Если говорить о том какой код лучше ,то условие вообще использовать не нужно. Просто пишем PORTD ^= 0b00001000; и получаем каждый заход в прерывание инверсию одного бита не трогая ни чего другого А вообще я бы не заходил в прерывание вовсе , просто установить COM в режим 01 и на выходе сразу будет сигнал TOGGLE что значит изменение уровня на противоположный при совпадении.

    • @dmitriibannikovasx
      @dmitriibannikovasx 3 ปีที่แล้ว

      @@ciklomat ваш код тоже трогает ВЕСЬ порт. Я свой код предложил не для ускорения, а для экономии пинов мк для других задач) А вообще, если бы сработала такая конструкция PORTD ^= (1

    • @ciklomat
      @ciklomat 3 ปีที่แล้ว

      @@dmitriibannikovasx Похоже что ты далек от программирования, к твоему сожалению после компиляции эти два варианта на ассемблере будут одинаковы.

    • @dmitriibannikovasx
      @dmitriibannikovasx 3 ปีที่แล้ว

      @@ciklomat ну уж простите, я просто любитель, а не проф разработчик)

  • @user-lj9bp7hj3d
    @user-lj9bp7hj3d 3 ปีที่แล้ว

    установка битов порта D, это пины м.к? если так заполнять , то 7 пинов выкидываются для других задачь? а все увидел в коментах😅

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว +1

      Да. Есть строгое соответствие между пинами и портами images.prismic.io/circuito/e57c56f68189f03145726786306d6a8ca7168571_arduino-uno-pinout-digital-pins-pwm-1.png?auto=compress,format
      Нет, не выкидываются, написанные команды не изменяют состояние остальных выводов кроме одного, хотя более универсально будет
      PORTD |= (1

    • @user-lj9bp7hj3d
      @user-lj9bp7hj3d 3 ปีที่แล้ว

      @@TDMLab да, работает, попробовал рулить светодиодом на 13 пине😁, только на меге2560 немного больше регистров для настройки таймера,
      не понятно только, почему в сетапе нужно объявлять пин выходной, если состояние меняется непосредственно установкой бита🤔

    • @TDMLab
      @TDMLab  3 ปีที่แล้ว +1

      @@user-lj9bp7hj3d если пин установлен на вход, а мы пишем в порт то будет меняться установка внутреннего подтягивающего резистора. То есть функция регистра portx меняется от конфигурации в сетапе вход/выход.

    • @user-lj9bp7hj3d
      @user-lj9bp7hj3d 3 ปีที่แล้ว

      @@TDMLab значит не важно что мы делаем установкой бита в isr, пытаемся включить выключить, если порт не объявлен, то и работать не будет

  • @germanigortsev4848
    @germanigortsev4848 3 ปีที่แล้ว

    Но а со скоростью решили ? Драйвер 200 герц , ардунино только через прерывание, и не берите эти драйвера, они г , аналоговые , берите dm 542/556, двигатели будут плавнее и тише работать

  • @varen9562
    @varen9562 2 ปีที่แล้ว

    57х78

  • @user-wz6ur9rr1g
    @user-wz6ur9rr1g 5 ปีที่แล้ว

    почему управление за минусовал а не по плюсу пустил ?

    • @TDMLab
      @TDMLab  5 ปีที่แล้ว

      "Заминусовал управление" это катоды опторазвязки управления с общим проводом соединил?

    • @user-wz6ur9rr1g
      @user-wz6ur9rr1g 5 ปีที่แล้ว

      @@TDMLab все плюсовые опторазвязки на прямую подал на 5 в а минуса на управление я так понял

    • @TDMLab
      @TDMLab  5 ปีที่แล้ว

      @@user-wz6ur9rr1g нет. Все минусовые опторазвязки (катоды) на общий а все плюсовые к ногам контроллера

    • @user-wz6ur9rr1g
      @user-wz6ur9rr1g 5 ปีที่แล้ว

      @@TDMLab а я думаю чего не работает

    • @user-wz6ur9rr1g
      @user-wz6ur9rr1g 5 ปีที่แล้ว

      @@TDMLab думаю не спалил хотя если светодиод не правильно подключить то он просто не будет гореть правильно это ж опто развязка

  • @user-bs7pz6qz8u
    @user-bs7pz6qz8u 4 ปีที่แล้ว

    идея хорошая, конечно надо напрягать мозги. У меня проблема с английским, а так докопаться можно.

  • @DreamTeam-yk2ff
    @DreamTeam-yk2ff 3 ปีที่แล้ว

    ааа мои уши ( канал интересный подписка ) лучше бы собрал микрофон себе )