Полушаг на L298N

Тема в разделе "Arduino & Shields", создана пользователем Artclonic, 23 авг 2018.

  1. L297 может и поддерживает, в связки L298 нет
    что сделать и зачем?
    я его не изобретаю, эт вы тут непойми что развели.
     
  2. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Пардон. Я вроде бы не вам отвечаю, а ТС-у.
     
  3. [​IMG]

    внизапно схема включения L297 для униполярного движка.
     
  4. Ariadna-on-Line

    Ariadna-on-Line Гуру

    И что, вместо четырех Дарлингтонов, четыре полумоста из L298 использовать религия не позволяет ?
    При таком включении работают только нижние плечи полумостов. А с верхних и питание можно отключить при желании, там отдельный вывод.
     
  5. уже так делали? )
     
  6. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Я приборы с шаговиками по работе обслуживал и ремонтировал. Униполярники и биполярники одинаковыми схемами управлялись - спарка L297+L298.
     
  7. мда, видно инверсия выходов не парит.
     
  8. Artclonic

    Artclonic Гик

    Сходил на радиорынок купил новый L298n все пересобрал, перепаял...Перепроверил, сами модуля, выход управляющих сигналов с ардуинки - все в исправном состоянии - все работатет.
    Итог... при включении первого ШД - он крутится, второй - крутится, но не понятно как с дерганьем...Третий (уже биболярник) - сначала крутился потом встал и повторно начал дымится его модуль управления L298n, привключении четвертого, вообще не происходит, кроме мигания лампочек на всех модулях включая блок питания... -может уже не хватает мощей... (т.к. по коду и библиотеки Stepper двигатели всегда остаются включенными (в тормозном режиме) после отработки я так понимаю..
    Я просто незнаю, что я не так сделал????
    upload_2018-8-27_10-45-48.png
    Код (C++):
    #include <Stepper.h>

    Stepper motor1(200, 2,4,6,8);  // объект motor, 48 шагов на оборот
    Stepper motor2(200, 3,5,7,9);  // объект motor, 48 шагов на оборот
    Stepper motor3(200, 10,12,14,16);  // объект motor, 48 шагов на оборот
    Stepper motor4(200, 11,13,15,17);  // объект motor, 48 шагов на оборот
    void setup() {
      motor1.setSpeed(10);  // скорость 60 об. в мин.
      motor2.setSpeed(10);  // скорость 60 об. в мин
    motor3.setSpeed(10);  // скорость 60 об. в мин
    motor4.setSpeed(10);  // скорость 60 об. в мин
    }

    void loop() {
      motor1.step(200);  // 5 оборотов (240 шагов) по часовой стрелке
    delay(1000);
    motor1.step(-200);  // 5 оборотов (240 шагов) против часовой стрелке
      delay(1000);

       motor2.step(50);  // 5 оборотов (240 шагов) по часовой стрелке
      delay(1000);
      motor2.step(-50);  // 5 оборотов (240 шагов) против часовой стрелке
      delay(1000);

       motor3.step(200);  // 5 оборотов (240 шагов) по часовой стрелке
      delay(1000);
      motor3.step(-200);  // 5 оборотов (240 шагов) против часовой стрелке
      delay(1000);

       motor4.step(200);  // 5 оборотов (240 шагов) по часовой стрелке
      delay(1000);
      motor4.step(-200);  // 5 оборотов (240 шагов) против часовой стрелке
      delay(1000);

    //Обороты, скоростя изменены...

    }
     
    Последнее редактирование: 27 авг 2018
  9. parovoZZ

    parovoZZ Гуру

    Так а драйвер этот за током следит? У шаговиков обмотки целы?
     
  10. Artclonic

    Artclonic Гик

    Драйвер за током не следит... Обмотки? Прозванивал мультиметом - пока прозваниваются...)))))
    Чего делать то??? У меня есть БП от зарядника АКБ, я его применял успешно в предыдущих проектах, так вот там есть регулировка тока - я им подстраивал,так...шоб не грелось Попробывать его?
    Вообще чем больше обмоток, включено тем ток должен быть меньше, правильно? Или Это БП все время поддерживает 5 А???
     
  11. AlexU

    AlexU Гуру

    Схему собирать нормальную. С контролем тока. У L298 есть для этого специальные выходы, но нужны низкоомные мощные сопротивления.
    Использовать другие драйверы ШД, а не L298N. L298 -- это не самый лучший выбор. Может тянуть не более 2A на канал, но при этом обязателен радиатор. Без радиатора не более 0.5A. При чём в любом случае нужен контроль тока. Иначе замучаетесь бегать в магазин за новыми драйверами.
     
  12. parovoZZ

    parovoZZ Гуру

    Движки, поди, пожег уже все.
    Ставить нормальный драйвер для ШД с ограничением по току.
    межвиткового достаточно, чтобы движок отнести на помойку.
     
  13. parovoZZ

    parovoZZ Гуру

    Что, куда включено?
     
  14. Artclonic

    Artclonic Гик

    Модуля все с радиатороами...
    Я не просто звонил...Я мерил сопротивление.. - оно равно)))) Пока равно....
    Мне нужен драйвер, который управляет не степ дир, а фазным управлением. Это обязательный пункт в моем проекте.. КАКОЙ ДРАЙВЕР С САМОРЕГУЛИРОВКОЙ ТОКА ПОДОЙДЕТ?
    Ну если в цепи с источником питания 12в и 5А включить 2 обмотки и включить 4 обмотки сразу - ток в цепи изменится? Или его поддержит мой БП? И спалит все нафиг...


    Повторюсь у меня есть контроллер на 4 ШД на тв-6560, его можно приспособить? для фазного управления УНИПОЛЯРНОГО ШД (не stp/dir). через библиотеку Stepper
    вот такой У него есть регулировка тока...вроде..
    http://www.duxe.ru/load/red TB6560HQT 4V3.pdf
     
    Последнее редактирование: 27 авг 2018
  15. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Устройство для зарядки аккумуляторов - это источник тока, то есть он будет "пытаться впендюрить" тебе заданный ток. А не "захочешь" - будет задирать напряжение питания. При зарядке аккумулятора он задирает напряжение почти до 20 вольт. А это чревато повреждением полупроводников. А если вы слишком много "кушаете" - он будет понижать напряжение, вплоть до нуля. Даже не пытайтесь это использовать. Вам в идеале нужен стабилизатор напряжения с регулируемым ограничителем тока.
    ПС. Насчет виткового замыкания - это катастрофа для движка (и реле) переменного тока, но совсем не обязательно, проблема для реле постоянного тока, например. К какой категории ближе шаговые движки - я даже и не знаю.
     
    Последнее редактирование: 28 авг 2018
  16. parovoZZ

    parovoZZ Гуру

    А к чемута такая упертость та?

    Я эта, значица, посмотрела даташита. И тама та есть, значица, та, картинка. И в картинке этой указана та схема. На схема та стоит, значит, ШУНТ, йопта. И если, значица, с этого та шунта с конденсатора да через резистар та значит ца, снять напряжение. Да подать та его та на АЦПей, то, значит, эта та, и ШИМам та порегулировать та токата. Вот такта.
     
  17. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Примем за основу предыдущий пост от паровоза. Работаем в полно-шаговом режиме. Резистором и АЦП меряем средний ток.
    Попробуем считать: У ТС (выше) - индуктивность движка - 4,1мГн. Возьмем - 4мГн. По определению - индуктивность L = U / (di/dt) ==> di/dt = U / L . При U=12v di/dt = 3000 а/сек. То есть ток до 3 ампер растет за 1мСек. Будем считать, что и спадает он (сам) за те же 1мСек. Получается, что за 2мСек средний ток - 1,5А. А номинальный ток движка возьмем 0,5А. Получается период цикла - 6мСек, скважность 1/6. То есть нужен ШИМ с частотой F = 1 / 6мСек = 166Гц и с скважностью 1/6 (1вкл + 5выкл). Можно ли так задать аппаратный ШИМ Ардуиной - не знаю, не делал. Это мои "теории", прошу не пинать, а высказываться.
    По-нормальному - все делается аппаратно в микросхемах на основе токоизмерительных резисторов и компараторов и не "грузит" процессор.
     
    Последнее редактирование: 28 авг 2018
  18. Artclonic

    Artclonic Гик

    Т.е. модуль у меня сгорел (он на биполярный ЩД), из-за большого тока? ПРавильно?
     
  19. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Если вы меня спрашиваете - не знаю, я не экстрасенс. Мультиметр, в режиме измерения сопротивлений, служит для таких ответов.
     
  20. Artclonic

    Artclonic Гик

    Можно еще вопрос... Раскурочил я значится библиотеку Stepper и вижу что для 4 пинов - полу шаг , про дварианта с двумя пинами - тоже все ясно, а вот что значит для 5 пинов?
    Код (C++):
    * L293 H-bridge connects to only 2 microcontroler pins, inverts the signals
    * received, and delivers the 4 (2 plus 2 inverted ones) output signals
    * required for driving a stepper motor. Similarly the Arduino motor shields
    * 2 direction pins may be used.
    *
    * The sequence of control signals for 5 phase, 5 control wires is as follows:
    *
    * Step C0 C1 C2 C3 C4
    *    1  0  1  1  0  1
    *    2  0  1  0  0  1
    *    3  0  1  0  1  1
    *    4  0  1  0  1  0
    *    5  1  1  0  1  0
    *    6  1  0  0  1  0
    *    7  1  0  1  1  0
    *    8  1  0  1  0  0
    *    9  1  0  1  0  1
    *   10  0  0  1  0  1
    *
    * The sequence of control signals for 4 control wires is as follows:
    *
    * Step C0 C1 C2 C3
    *    1  1  0  1  0
    *    2  0  1  1  0
    *    3  0  1  0  1
    *    4  1  0  0  1
    *
    * The sequence of controls signals for 2 control wires is as follows
    * (columns C1 and C2 from above):
    *
    * Step C0 C1
    *    1  0  1
    *    2  1  1
    *    3  1  0
    *    4  0  0
    *
    * The circuits can be found at
    *
    * http://www.arduino.cc/en/Reference/Stepper
    */

    // ensure this library description is only included once
    #ifndef Stepper_h
    #define Stepper_h

    // library interface description
    class Stepper {
      public:
        // constructors:
        Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2);
        Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2,
                                     int motor_pin_3, int motor_pin_4);
        Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2,
                                     int motor_pin_3, int motor_pin_4,
                                     int motor_pin_5);

        // speed setter method:
        void setSpeed(long whatSpeed);

        // mover method:
        void step(int number_of_steps);

        int version(void);

      private:
        void stepMotor(int this_step);

        int direction;            // Direction of rotation
        unsigned long step_delay; // delay between steps, in ms, based on speed
        int number_of_steps;      // total number of steps this motor can take
        int pin_count;            // how many pins are in use.
        int step_number;          // which step the motor is on

        // motor pin numbers:
        int motor_pin_1;
        int motor_pin_2;
        int motor_pin_3;
        int motor_pin_4;
        int motor_pin_5;          // Only 5 phase motor

        unsigned long last_step_time; // time stamp in us of when the last step was taken
    };

    #endif
     
     
    Последнее редактирование: 28 авг 2018