Arduino и трехфазные асинхронные двигатели

Тема в разделе "Силовая электроника", создана пользователем ristarh3, 12 дек 2014.

  1. Mestniy

    Mestniy Гуру

    В каком смысле долгое время срабатывания? Вам сколько надо? Оно мгновенно срабатывает!
    Я подключал 43 реле к Меге. И через софт ПК управлял каждым реле!
     
  2. Mestniy

    Mestniy Гуру

    А для какой цели симистр, простите!?
     
    Последнее редактирование: 16 ноя 2015
  3. Они должны включаться по очереди и при частоте включания более 20Hz начинают зависать в воздухе не успевая переключиться
     
  4. Mestniy

    Mestniy Гуру

    Дык паузу сделайте!
     
  5. Дык пропадает смысл частотного регулирования, ибо смысл сделать из постоянки три фазы переменки со смещением в 120 градусов
     
  6. Aleksahek

    Aleksahek Нуб

    Через сдвиговый регистр с регулировкой оборотов.
    ВНИМАНИЕ! КОД НЕ ПРОВЕРЯЛСЯ НА ДВИГАТЕЛЕ!

    Код (C++):
    #define SHIFTPWM_USE_TIMER2
    //#define SHIFTPWM_NOSPI
    const int ShiftPWM_latchPin = 2; //
    //const int ShiftPWM_dataPin = 11; //14 pin shift
    //const int ShiftPWM_clockPin = 13;  //11 pin shift
    const bool ShiftPWM_invertOutputs = false;
    const bool ShiftPWM_balanceLoad = false;

    #include <ShiftPWM.h>
    unsigned char maxBrightness = 255;
    unsigned char pwmFrequency = 350;
    unsigned int numRegisters = 6;
    unsigned int fadingMode = 0; //start with all LED's off.
    unsigned long startTime = 0; // start time for the chosen fading mode

    void setup() {
    #define t2 1000 // задержка постоянная в mks
      ShiftPWM.SetAmountOfRegisters(numRegisters);
      ShiftPWM.SetPinGrouping(1); //This is the default, but I added here to demonstrate how to use the funtion

      ShiftPWM.Start(pwmFrequency, maxBrightness);
    }

    void loop() {
      startTime = micros();
      int val = analogRead(A0); //считывание с потенциометра
      int n = map(val, 0, 1024, 255, 165); //конвертер диапозона потенциометра в диапозон напряжения 220-310 В
      int t1 = map(val, 0, 1024, 3000, 15000)-map(val, 0, 1024, 3000, 15000)%3; //регулировка частоты, кратное 3
      unsigned long time = micros() - startTime;
      delayMicroseconds(t2 - (micros() - startTime));
      ShiftPWM.SetOne(1, n);
      delayMicroseconds(t1 / 3 - t2);
      ShiftPWM.SetOne(3, 0);
      delayMicroseconds(t2);
      ShiftPWM.SetOne(6, n);
      delayMicroseconds(t1 / 3 - t2);
      ShiftPWM.SetOne(5, 0);
      delayMicroseconds(t2);
      ShiftPWM.SetOne(2, n);
      delayMicroseconds(t1 / 3 - t2);
      ShiftPWM.SetOne(1, 0);
      delayMicroseconds(t2);
      ShiftPWM.SetOne(4, n);
      delayMicroseconds(t1 / 3 - t2);
      ShiftPWM.SetOne(6, 0);
      delayMicroseconds(t2);
      ShiftPWM.SetOne(3, n);
      delayMicroseconds(t1 / 3 - t2);
      ShiftPWM.SetOne(2, 0);
      delayMicroseconds(t2);
      ShiftPWM.SetOne(5, n);
      delayMicroseconds(t1 / 3 - t2);
      ShiftPWM.SetOne(4, 0);
    }
    1 и 4 - это фаза a
    2 и 5 - это фаза b
    3 и 6 - это фаза c
    Хотел сделать синусоиду и код универсальный для любого количества фаз, но чего то мозгов не хватает - в этой теме новенький, может позже соображу.

    Есть у кого нибудь предложения как улучшить, уменьшить время выполнения кода?
     
    Последнее редактирование: 24 дек 2015
  7. Aleksahek

    Aleksahek Нуб

    На лампочках вроде работает. Частота до 80 гц где-то, может ошибаюсь.
    Без сдвигового на много выше.
    Как проверишь, отпишись, пож-та, хорошо бы видео посмотреть
     
    Последнее редактирование: 23 дек 2015
  8. Sanchogus

    Sanchogus Нерд

    А к чему МК будет подключюен?
    Драйвера любят ШИМ, многие.
    Ибо напрямую к транзисторам верхнего моста не прокатит. Они не откроются. Код не смотрел, ибо другие вопросы интересют.
     
  9. Aleksahek

    Aleksahek Нуб

    ШИМ организовано на сдвиговом регистре, специально искал библиотеку. На светодиодах все красиво. Драйвер IR2130 подойдет?
     
    Последнее редактирование: 22 дек 2015
  10. Sanchogus

    Sanchogus Нерд

    Возможно, я сам сейчас шишки набиваю на IR2132.
    2шт сжег. :D
    3й был успешно протестирован используя только 2 полумоста из трех на ДПТ :cool: маломощном
    Скоро будет сборка и тест на асинхроннике, наверное...
     
  11. Aleksahek

    Aleksahek Нуб

    Вот и я закрепляю теорию, чтобы не спалить сразу партию из 2х шт. IR2130, которая сейчас в пути. А как спалили, что НЕ нужно делать или что нужно чтобы работала?
     
  12. Sanchogus

    Sanchogus Нерд

    Прозванивайте все соединения - запуск без нагрузки, скорее всего убьет драйвер.
    Обязательно резисторы в цепи затвора - без них может быть беда, от защелкивания драйвера.
    Семь раз проверить, потом включать.
    А по какой сх собираете?
     
    Aleksahek нравится это.
  13. Aleksahek

    Aleksahek Нуб

    Схему собирает батя, я лишь программист и помогаю ему с его заморочкой, хотя в двигателях дуб, но тема заинтересовала. Схема называется "авось заработает", батя уже долго пытался собрать без МК, но спалил транзистор irg4ph50ud, причину не нашел. Заказали теперь еще и Spw47n60c, вроде как они лучше, с драйвером 2130, Если все таки заработает, планирую оптимизировать код на ассемблере
     
  14. Схему в студию))
     
  15. Aleksahek

    Aleksahek Нуб

    схема похерена, как нарисует заново, тогда скину
     
  16. Onkel

    Onkel Гуру

    на сайте atmel есть даташит по управлению зф мотором микроконтроллерами атмел.
     
  17. Aleksahek

    Aleksahek Нуб

    Какой смысл? если уже есть UNO , которая в теории может с ним работать.
     
    Последнее редактирование: 24 дек 2015
  18. Onkel

    Onkel Гуру

    а какой смысл в даташитах вообще? Вот такой же смысл и в даташите по управлению 3ф двигателями - там схемы, коды, ошибки, примеры.
     
  19. Aleksahek

    Aleksahek Нуб

    вчера сделал через транзистор диод и конденсатор регулятор напряжения для регулировки оборотов вентилятора 12 в, 0,36 ампер, ништяк получилось, должно и для трехфазника сработать, единственное при низком заполнении импульса сильно греется транзистор, но это поправимо радиатором
     
  20. Aleksahek

    Aleksahek Нуб

    если честно, то не смог найти подходящую инфу на сайте атмел, если не трудно, то ссылку скинте, плиз