Страница 2 из 3

Re: Мотор от стиральной машины + arduino

Добавлено: 14 сен 2014, 18:25
Predator
Алексс писал(а):а сейчас для микропроцессора можно писать программы на, язык не поворачивается, бейсике... тьфу, мерзость
Да, это не то, что раньше - в машинных кодах Изображение

Re: Мотор от стиральной машины + arduino

Добавлено: 14 сен 2014, 18:26
Maxekb77
aftaev,
Конечно страшный он же не наш ))))
Наш "Дракон" куда симпатишнее и буран на нем летал ))))
Predator,
Угу как сейчас помню русифицировали мсдос 6.22 в hex редакторе - ужас :)

Re: Мотор от стиральной машины + arduino

Добавлено: 14 сен 2014, 19:42
Serg
Алексс писал(а):плюс датчик фазы на транзисторе работал не стабильно (с транзисторами дружу плохо, может я ему мяса недокладывал - не знаю) и в последствии был заменен на оптотранзистор.
Надо было просто C3 выкинуть. :)

Re: Мотор от стиральной машины + arduino

Добавлено: 14 сен 2014, 20:00
Алексс
UAVpilot писал(а):C3 выкинуть.
без него было тоже плохо - проблема не в пропуске периодов а наоборот - "лишние" появлялись. как следствие, дуня думала что оборотов мало и добавляла. что опять усугубляло и тп.

Re: Мотор от стиральной машины + arduino

Добавлено: 11 янв 2015, 12:55
il76
Алексей, добрый день!
Очень заинтересовала ваша идея.
Помогите новичку в осознании :)
Почему в схеме используется 24v? случайность?
и как мне повторить вашу идею ничего не попалив :hehehe:

Re: Мотор от стиральной машины + arduino

Добавлено: 11 янв 2015, 22:41
Алексс
Привет!

совсем не обязательно должно быть 24В - мне такой трансформатор продался. важно на дуне подключить +питания к VIN входу и тогда никто не пострадает.

а в остальном все очень просто. однако хочу предупредить, что схема и прошивка сделаны лишьбы как-то ожило. дальше допиливать придется самостоятельно :)

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

Re: Мотор от стиральной машины + arduino

Добавлено: 16 апр 2016, 11:46
switch
Алексс писал(а):Пару дней занимался интеллектуальным ананизмом трудом, результат которого вам и представлю. Возможно кому-то пригодится.
Алексс, день добрый!
Спасибо за схему, за исходники. Я пытаюсь повторить и не выходит аленький цветочек. В коде маловато комментариев. Не появляется у меня на тиристорном выходе SSR какое-либо напряжение. Схема такая же, только трансформатор на 12 вольт. Подозрения на сигнал с ZERO, он у меня такой:
3wZIBzi[1].png (2414 просмотров) <a class='original' href='./download/file.php?id=77883&mode=view' target=_blank>Загрузить оригинал (1.45 МБ)</a>
Не подскажете куда смотреть?
Собственно занялся этим потому что мне нужно регулировать частоту вращения вентилятора по шине 1-wire

Re: Мотор от стиральной машины + arduino

Добавлено: 16 апр 2016, 18:05
Алексс
приветствую
сигнал выглядит странновато. проверить просто - в прерывании zero cross менять какой-то пин и смотреть осцилографом. я так искал проблему в другой схеме, где по какой-то причине прерывание генерилось несколько раз.
ну а дальше выводить нужные значения в последовательный порт и смотреть как оно работает.

если нет обратной связи от вентилятора, то 90% кода можно выбросить (ПИД часть).

pc814 неплохой вариант для zero cross детектора

Re: Мотор от стиральной машины + arduino

Добавлено: 17 апр 2016, 09:49
switch
Алексс, спасибо за ответ!

В общем плюнул и начал собирать на TDA1085, но тоже не срослось - не вытравил плату, не купил детали... А занять себя чем-то надо, вернулся к ардуине ;)
Удалось побороть сигнал ZEROCROSS: шумел диодный мост, поставил параллельно конденсатор на полмикрофарада. Подобрал режим работы оптотранзистора 4N25: вместо одного резистора на +питания подключил через делитель из подстроечного на 5 кОм и заставил работать. Еще в исходниках перепутаны были номера прерываний - поправил. В общем теперь сигналы от таходатчика и пересечения нуля ловятся. Причем если отключить от USB то форма сигнала сильно искажается и вообще перестает определяться ноль. На выходе симистора появился какой-то хитрый сигнал. Но у вас по осциллограмме он величиной 5 вольт, а у меня после резистора на 470к он1.2 вольта. Видимо оптосимистор не открывается из-за этого. Пока встало все на этом...

Re: Мотор от стиральной машины + arduino

Добавлено: 17 апр 2016, 10:15
Алексс
470к??

Re: Мотор от стиральной машины + arduino

Добавлено: 17 апр 2016, 10:26
Алексс
Еще один момент - на схеме не правильно подключен симистор. Оптопара должна быть между 2й и 3й ногой.

Re: Мотор от стиральной машины + arduino

Добавлено: 17 апр 2016, 15:46
switch
Алексс писал(а):470к??
ошибся, 470 Ом.
По поводу симистора, так ?
Изображение

Re: Мотор от стиральной машины + arduino

Добавлено: 17 апр 2016, 17:11
Алексс
Да, так.
Как успехи?

Re: Мотор от стиральной машины + arduino

Добавлено: 17 апр 2016, 20:28
switch
Да вот только с дачи приехал. Завелся девайс! Видимо действительно проблема в неправильном подключении тиристора.

Работает правда фигово. Импульсно. Слышно что на малых оборотах он что-то пытается ШИМить, но раз в секунду примерно, случайно, подает полную мощность на несколько миллисекунд.
Мне нужно держать обороты до 1000..2000. Не хотелось бы через шкивы и ремень делать чтоб не гонять мотор на 15 тыщ оборотов.... Ща разбираюсь с параметрами PID. Что-то не регулируется с клавиатуры...

Большое спасибо!

Re: Мотор от стиральной машины + arduino

Добавлено: 17 апр 2016, 21:33
Алексс
ардуиновский пид не правльный - там не используется интергральная составляющая.

вот кусочек рабочего кода, который я использовал для пид терморегулятора

Код: Выделить всё

bool PIDv2::Compute(unsigned int now)
{
    if(!inAuto)
        return false;
    if((now - lastTime)>= SampleTime)
    {
        lastTime = now;

        /*Compute all the working error variables*/
        double input = *myInput;
        double p_error = *mySetpoint - input;

        /* if output is in limit, don't let integrator wind up */
        if(!isClipping)
            i_error += ki * p_error;

        if(i_error != 0.0)
        {
          if(i_error > i_limit)
            i_error = i_limit;
          else if(i_error < -i_limit)
            i_error = -i_limit;
        }
        else
        {
          if(i_error > outMax)
              i_error= outMax;
          else if(i_error < outMin)
              i_error= outMin;
        }

        double d_error = (p_error - lastError);
        lastError = p_error;

        /*Compute PID Output*/
        double output = kp * p_error + i_error + kd * d_error;

        if(output > outMax)
        {
            isClipping = true;
            output = outMax;
        }
        else if(output < outMin)
        {
            isClipping = true;
            output = outMin;
        }
        else
            isClipping = false;

        *myOutput = output;

        return true;
    }
    else
        return false;
}

Re: Мотор от стиральной машины + arduino

Добавлено: 18 апр 2016, 08:36
switch
Алексс, спасибо еще раз!
Но не могли бы вы дать фрагмент кода поболее - что-то не получается его откомпилировать. Или дать ссылку на мануал по этой версии PID, я не нашел...

Re: Мотор от стиральной машины + arduino

Добавлено: 18 апр 2016, 10:29
Алексс
Потому как дописывал его я, мануала нет :)

Вроде я старался сделать более менее совместимым.
Блин, смотрю в код и вижу какие-то баги :) но работает.

создаем объект
PIDv2 pid(&Input, &Output, &Setpoint, 80, 3, 10);

настраиваем
pid.SetSampleTime(750);
pid.SetIlimit(50);
pid.SetOutputLimits(0, 100);
pid.SetMode(PIDv2::AUTOMATIC);

вычисляем
pid.Compute(millis());


для начала нужно выставить ki и kd = 0
постепенно увеличивать kp, пока мотор не начнет пульсировать

но это все если реально хочется играться с ардуиной, пидом и тп.

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

Re: Мотор от стиральной машины + arduino

Добавлено: 18 апр 2016, 10:40
switch
Спасибо за совет!
У меня трудности начались с этого
3x307TM[1].png (2251 просмотр) <a class='original' href='./download/file.php?id=77991&mode=view' target=_blank>Загрузить оригинал (15.84 КБ)</a>
не понял как передать параметр... Но сейчас на работе - вечером продолжу возню...
Раз уж заработал девайс - буду дальше его мучать. По току ограничение тоже можно сделать - датчик тока поставить не сложно. Мну больше беспокоит превышение оборотов: если за 3 тыщи выйдет у меня вентилятор на куски разлетится ;)
Я так понимаю если симистор выгорит, то мотор будет крутить по-максимуму? Поэтому хочу отдельно реле поставить и выключать мотор когда превышение оборотов.

Re: Мотор от стиральной машины + arduino

Добавлено: 18 апр 2016, 20:44
vladumur
Switsh, держи и не мучайся:http://cncmasterkit.ru/viewtopic.php?f=3&t=1409
Повторял, работает :).

Re: Мотор от стиральной машины + arduino

Добавлено: 18 апр 2016, 20:53
switch
Спасибо!
Но что-то там деталей лишних много ;)
Я с этим пока попробую разобраться. Вот опять сел. Если бы уважаемый Алексс в кратце объяснил бы принцип регулирования, я бы сам написал обработку ;)