Перейти к содержанию

Автоматика для автономки.


Рекомендуемые сообщения

Опубликовано (изменено)

@макс54 техническую задачу можно решить разными способами, например не перекладывать на автономку регулировку температуры, пусть молотит на максимум а в колонне работает нормальный жидкостной отбор с клапаном. Но ладно, допустим тебя прижало так что кровь из носа но надо регулировка оборотов. Самый тупой и понятный мне метод - брезенхем. Настраиваешь ШИМ на таймере с периодом скажем ровно 0,500 секунды и регулируешь скваженность с шагом 0,05 секунды, получаешь 10 ступеней регулирования, вентилятор подключаешь через МОСьку с детектором ноля, например 3083, она тебе будет подпускать две полуволны в мотор, мощность пропорциональна скваженности, вент будет дергаться зато детектор ноля не нужен. Ладно, допустим тебе не нравиться дергать вент два раза в секунду, очень хочется фазового регулирования, тогда берешь SSR с индексом VF, оно режет синус пропорционально входному напряжению 0-5В, настраиваешь тот же ШИМ но уже максимально быстрый, скажем 20МГц от кристалла без делителя с 8 битным счетчиком дает скваженность 78кГц, ставишь простую LC цепочку с выхода МК что бы его сгладить, и наслаждаешься фазовым регулированием.

Изменено пользователем hddee
  • + репутация 1
  • Ответов 89
  • Создана
  • Последний ответ

Топ авторов темы

  • leon013

    27

  • hddee

    14

  • макс54

    12

  • qwest_ans

    11

Топ авторов темы

Опубликовано
4 минуты назад, hddee сказал:

и наслаждаешься фазовым регулированием

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

4 детали  для zero cross и 10 строк кода - и профит на 10 шагов регулирования оборотов асинхронника...  Нет, блин, брезенхейм ,SSD с индексом VF )))) Тема вроде закрыта 8 лет назад, я смотрю у вас времени свободного много )))) Ну да не мое это дело.... Каждый сам себе злобный буратино, как говорит в таких случаях мой знакомый из Москвы)))

Опубликовано (изменено)
17 минут назад, leon013 сказал:

4 детали  для zero cross

если ты внимательно прочитаешь написанное то поймешь что и детектор ноля не нужен, МОС3083+симмистор или готовая SSR с ZVS, фсё ;-) настроенный таймер работает вообще без участия программы а переключение мощности происходит через запись значения в регистр сравнения всего одной строчкой. Ровно так же элементарно работает SSR VF через LC-цепочку, никаких лишних телодвижений: надо мощность поднять - регистр++, уменьшить - регистр--.

Изменено пользователем hddee
Опубликовано (изменено)

Парни спасибо что на связи  !!!

Отдельное спасибо Алексею что откликнулся. Только пишу проги на asm и в СИ как в китайском _))

Алексей !

У вас старого проекта  я так понял не осталось? Я бы в протезе глянул сигналы управления симистром по управлению вентилятора

Меня интересует только 2 вопроса

1. Регулировка 10% вентилятора это сколько берем полувольн (волн) и сколько пропускаем

тоже с..20%......30%   и т.д.

На верхних ваших  схемах  используется только одно прерывание за волну ( судя на PC817 ) Значит о полуволнах речи нет..?

 

И второе..какую лучше  выходную схему управления на симисторе применить ?  есть BT139....  BTA12  через МОС 3023 ?

Че только в нете нет ))) 

Симистр открыт оптроном постонянно или нет???? У меня сложилось впечатление что для лампочки достаточно короткого открывания симистора ( потом он закрывается при переходе ноля) а вот для реактивной нагрузке хрен...

Нужно видмо его постонно держать открытым 

 

Само собой речь идет ТОЛЬКО о асинхронном конденсаторном моторе...основной продукт ширпотреба кондюков )))

 

Вот замутил такую схему.

Лампочка управляется красиво как положено а вот двигатель хрен с пальца..мычит и все_)))

 

протеус2.JPG

 

Изменено пользователем макс54
дополнение
Опубликовано

@hddee  Ну схему бы этой приблуды всей посмотреть и кто и как этим управлять будет? можно от руки нарисовать и фото выложить )

@макс54 

9 часов назад, макс54 сказал:

Регулировка 10% вентилятора это сколько берем полувольн

Одну

9 часов назад, макс54 сказал:

( судя на PC817 )

Упс))) 814 правильный ответ ..

9 часов назад, макс54 сказал:

BTA12  через МОС 3023 ?

BTA16 тоже можно. У меня эта связка годами работает... 

9 часов назад, макс54 сказал:

Симистр открыт оптроном постонянно или нет????

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

 

Опубликовано (изменено)

Спасибо!  но ответа не получил про интервалы открытия симистра

. 

Например: 10% это одна волн открыта и 4 волны закрыто...

                    50% это одна волны открыта затем одна волна закрыта...и т.д.

..

Мне нужен сам алгоритм управления.

Фазой управлять не правильно..

 

Вот схемка что состряпал.\

При фазовом управлении  и при импульсном открывании симистора она на реактивную нагрузку  не работает  

Схема v1.jpg

Изменено пользователем макс54
Опубликовано (изменено)

@макс54 а интервалов открытия попросту нет)))  Считаем количество полуволн и все

void pwm_vent(void){
count_pwm++;/ увеличили значение счетчика при прерывании
if(count_pwm > 9) count_pwm = 0; Проверили , что значение не больше 10, в противном случае обнуляем счетчик
if(count_vent > count_pwm) vent = 1; Сравниваем сколько нам нужно пропустить полуволн с текущим значением счетчика.  Если нужное количество пропущенных не 

достигнуто вывод вентилятора в лог.1 
else vent = 0; иначе - лог.0
                   }

ну и как по мне ставить опторазвязки  и использовать бестрансфорсаторное  питание это такое себе .... эээээ....рукоблудие ))))) Без обид)))

Изменено пользователем leon013
Опубликовано

Вот мой регулятор Карлсона и Тена 

Error_KARL -= KARL;//ошибка и задание 0-100%
  if (Error_KARL < 0) {
    Error_KARL += 100;
    digitalWrite(PIN_KARL, 1);
  } else digitalWrite(PIN_KARL, 0);
     Error_TEN -= POW; // то же самое для тена
  if (Error_TEN < 0) {
    Error_TEN += 100;
    digitalWrite(PIN_TEN, 1);
  } else digitalWrite(PIN_TEN, 0);
   
Дергается каждые допустим 10 мс. Не помню уже. Вроде каждые 100 полуволн таймером. И моська с определением нуля. Допустим 3083. Зачем лишние детали для того же функционала. 

Дорога к обеду ложка,

К ночи дорог унитаз.

Опубликовано (изменено)
4 часа назад, leon013 сказал:

Ну схему бы этой приблуды всей посмотреть и кто и как этим управлять будет? можно от руки нарисовать и фото выложить )

эээ.. схему чего ? два провода от ардуины к твердотелу ?

 

2 часа назад, макс54 сказал:

Мне нужен сам алгоритм управления.

Фазой управлять не правильно..

я только по ардуино, пример настройки таймера на 2560 меги на 78кГц ШИМ:

TCCR5A = 0;
TCCR5B = 0; 

 

TCCR5A = B10101001;     // 10 - переключение А, 10 - В, 10 - С, 01 - ШИМ 8 бит
  /*  структура битов в регистре TCCRxA
      COMnA1 COMnA0  COMnB1  COMnB0 COMnC1 COMnC0 WGMn1 WGMn0
    где:
    биты COMnA1 COMnA0:
        0     0   Обычная работа порта как GPIO, функционал OCnx отключен.
        0     1   Переключение OCnx в противоположное состояние при Compare Match.
        1     0   Очистка OCnx при Compare Match (выходной сигнал сбрасывается в лог. 0).
        1     1   Установка OCnx при Compare Match (выходной сигнал переходит в лог. 1).
    биты WGMn1 WGMn0 - см. дальше в комбинации с WGMn3 WGMn2

 

TCCR5B = B00001001;     // 000 - не исп., 01-ШИМ 8 бит, 001 - частота без делителя
  /* структура битов в регистре TCCRxB
    ICNCn ICESn --- WGMn3 WGMn2 CSn2 CSn1 CSn0 :
    где:
      ICNCn - подавеление шума
      ICESn - фронт или спад
      ---   - бит не используется
      WGMn3 WGMn2 WGMn1 WGMn0 Режим работы                TOP     Обновл. OCRnx TOVn установится при значении
      1   0     0     0     0   Normal                      0xFFFF  Немедленно  MAX
      2   0     0     0     1   Phase Correct PWM, 8 бит    0x00FF  TOP         BOTTOM
      3   0     0     1     0   Phase Correct PWM, 9 бит    0x01FF  TOP         BOTTOM
      4   0     0     1     1   Phase Correct PWM, 10 бит   0x03FF  TOP         BOTTOM
      5   0     1     0     0   CTC                         OCRnA   Немедленно  MAX
      6   0     1     0     1   Fast PWM, 8 бит             0x00FF  BOTTOM      TOP
      7   0     1     1     0   Fast PWM, 9 бит             0x01FF  BOTTOM      TOP
      8   0     1     1     1   Fast PWM, 10 бит            0x03FF  BOTTOM      TOP
      9   1     0     0     0   Phase and Frequency Correct ICRn    BOTTOM      BOTTOM
      10  1     0     0     1   Phase and Frequency Correct OCRnA   BOTTOM      BOTTOM
      11  1     0     1     0   Phase Correct PWM           ICRn    TOP         BOTTOM
      12  1     0     1     1   Phase Correct PWM           OCRnA   TOP         BOTTOM
      13  1     1     0     0   CTC                         OCRnA   Немедленно  MAX
      14  1     1     0     1   Зарезервировано             -       -           -
      15  1     1     1     0   Fast PWM                    ICRn    BOTTOM      TOP


      CSn2 CSn1 CSn0: предделитель частоты от процессора
      0   0   0   Нет источника для тактирования (таймер/счетчик остановлен).
      0   0   1   clkI/O/1 (прескалер отключен).
      0   1   0   clkI/O/8 (прескалер 8).
      0   1   1   clkI/O/64 (прескалер 64).
      1   0   0   clkI/O/256 (прескалер 256).
      1   0   1   clkI/O/1024 (прескалер 1024).
      1   1   0   Внешний источник тактов, подключенный к ножке Tn. Тактовый перепад от 1 к 0.
      1   1   1   Внешний источник тактов, подключенный к ножке Tn. Тактовый перепад от 0 к 1.

 

скваженность задается записью в регистры:

OCR5A = 63; 25% на лапке 46

OCR5B = 127; 50% пин 45

OCR5C = 191; 75% пин 44

2 часа назад, Виктрыч сказал:

Дергается каждые допустим 10 мс.

и не надо ничего программно дергать )))

Изменено пользователем hddee
Опубликовано

если надо 16 битный ШИМ и поменять частоту то WGM устанавливается в режим "15", верхняя граница счета задается ICR5 на все три счетчика сразу, скваженность получается OCR5A/ICR5

Опубликовано

Ну да. Таймер по прерыванию или как его там. Не спец. Вроде третий свободный на 328.Программно только ошибка вычисляется ну и уставка задается. Или тоже вычисляется. 

А первая версия действительно в цикле работало. А он с секунду. Так и терпел пока люди не научили. 

 

Дорога к обеду ложка,

К ночи дорог унитаз.

Опубликовано
4 часа назад, Виктрыч сказал:

    digitalWrite(PIN_KARL, 1);

на таймере это работает без участия программы

Опубликовано (изменено)

Парни! )

Мне примитивно на пальцах кнонить может обьяснить что нужно пропускать чтобы вентиль крутился на 10% ?  

Остальное это я уже сам)

Вот берем синусоиду. В каждой полуволне симистр открывается постоянно на всю полуволну.

Если нужно чтобы движок крутил лопасти на 10% что нужн пропустить ? какие полуволны ?

...а на 50 % ?

синусоида.jpg

Вот пример с этого видоса.  10%...20%...30%...40...и т.д.

Диаграмма синусоиды на движке  в кадом случае какая ???

 

 https://rutube.ru/video/47de7ab491095b9c8a8de61e066ee926/

 

 

В нэте вот что находил..но как-то примеров живых нет..сомнительно. Думаю это актуально на активную нагрузку ( тэн паяльник ...) 

Пропуски синусоиды.jpg

Изменено пользователем макс54
дополнение
Опубликовано

Примерно так. Моторчик Карлсона немножко ворчит на тычках. Но ИМХО его конструктивное исполнение примитивно и он эти тычки переживет.  Правильный качественный движок может сдохнуть. Ему нужен частотник.

Вдогонку. Мой в рабочем режиме крутит от 50% и выше. Можно и 1% задать. Будет тикать и проворачиваться. Но нам же нужно дуть! 

Ещё. По умолчанию программно и выставлено эти 50%.нах ему даже 45.

Дорога к обеду ложка,

К ночи дорог унитаз.

Опубликовано (изменено)

Мне интересна реализация управления вентилятором вот с этого видоса который привел выше )

Автор Алексей leon013  ( на сколько я понял)  

---

Пусть автор сам скажет что это частотный преобразователь и что там модифицированная синусоида и т.д и т.п )

Чтото на видео не вижу этого и видимо это не так

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

Мне нужно всего  4- 5 скоростей  

 

 

Изменено пользователем макс54
Опубликовано (изменено)
48 минут назад, макс54 сказал:

Если нужно чтобы движок крутил лопасти на 10% что нужн пропустить ? какие полуволны ?

положительную и отрицательную полуволны, у них период 50мс, после этого надо подождать 450мс, мощность и обороты будут плюс-минус 10%, из-за скольжения двиг не разгонится на столько, поэтом скорее минус. Не знаю чего ты уперся в пики, бери ардуино

Изменено пользователем hddee
Опубликовано

Почему50?

При частоте сети 50 Гц один период это 20mS же? 

Опубликовано

Значит получается 1 период (20mS) работа... 20 периодов (400mS) это пауза ?

а может пауза 10 периодов при 10% ?

 

Хотелось бы почитать что автора Алексей по данному вопросу напишет ) 

Какие интервалы (или полуинтервалы) использовал в своем проекте

Опубликовано
2 часа назад, макс54 сказал:

Мне примитивно на пальцах кнонить может обьяснить что нужно пропускать чтобы вентиль крутился на 10% ? 

только полуволну 1, другими словами мы за секунду пропустим всего 10 полуволн, с интервалом 10mS каждая и интервалом между ними 90 mS 

2 часа назад, макс54 сказал:

...а на 50 % ?

1,2,3,4,5

 

 

2 часа назад, hddee сказал:

Не знаю чего ты уперся в пики, бери ардуино

Ну наверное потому , что microchip купил atmel , а не наоборот))) Ну а если серьезно, то я аплодирую стоя людям, которые кодят на ASM!

Опубликовано (изменено)

Ещё момент. Дался вам этот блок кондиционера. Радиатор  авто как раз работает на кипяток. А наши температуры 80 и выше. И вентилятор у него 12 вольт.  Тот же Шим на ардуино и ключ на полевике за 20р и все дела. Чем с 220 связываться. У меня ваще печка от газели. Вентилятор не достался. Вот и выкруживал.

Изменено пользователем Виктрыч

Дорога к обеду ложка,

К ночи дорог унитаз.

Опубликовано
Только что, Виктрыч сказал:

Ещё момент. Дался вам этот блок кондиционера. Радиатор  авто как раз работает на кипяток. А наши температуры 80 и выше. И вентилятор у него 12 вольт.  Тот же Шим на ардуино и ключ на полевике за 20р и все дела. Чем с 220 связываться. У меня ваще печка от газели. Вентилятор не достался. Вот и выкруживал.

Вот вот)) Я так товарищу и сказал..НАХХХ он нужен? поставить так как вы сказали и постоянный моторчик. Никаких проблемм и + с регулировкой с контролем тока по крутящему моменту)...

но вот попросил сделать  вращения именно на вентилятор кондиционера 190 Вт моторчик асинхронный. У него система охлаждается через наружный блок  уже организована и постоянное вращение вентилятора только вредит..цмыкать его реле тоже так себе....

Только что, leon013 сказал:

только полуволну 1, другими словами мы за секунду пропустим всего 10 полуволн, с интервалом 10mS каждая и интервалом между ними 90 mS 

Вот так ?

синус.jpg

Опубликовано
57 минут назад, leon013 сказал:

только полуволну 1, другими словами мы за секунду пропустим всего 10 полуволн, с интервалом 10mS каждая и интервалом между ними 90 mS 

нельзя трансформторы и моторы накачивать полуволнами, сердечник в насыщении войдет, только целой волной по 20мс

30 минут назад, макс54 сказал:

Вот так ?

тут правильно, волна полностью

Опубликовано

Правильный брезен может разорвать полуволны для равномерного заполнения периода Но там математика мама не горюй.  В нашем случае просто скорострельный ШИМ с привязкой к нулю. 

Дорога к обеду ложка,

К ночи дорог унитаз.

Опубликовано (изменено)

@Виктрыч не надо ничего к нулю привязывать, кварц МК крайне сталбильная штука, переключение в случае использования таймера мгновенное, это digitalWrite медленно работает, а SSR с ZVS выдаст ровно две полуволны за 20мс, на какое бы значение сетевого напряжения не попал сигнал с МК всё равно ZVS эту волну пропустит, откроется на следующей и еще на одной следующей т.к 20мс еще не закончатся. Симмистор сам не закрывается, только по окончанию полуволны сетевого напряжения поэтому с ZVS можно смело выдавать 20мс и не париться о насыщении сердечника, только не через программный digitalWrite. Если на PIC12 ничего больше не вешать то он с этой задачей справится но я беру только ардуинки: дешево, функционально и понятно

Изменено пользователем hddee

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...