Например TDA7294

Форум РадиоКот :: Просмотр темы - МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/мин)
Форум РадиоКот
https://radiokot.ru/forum/

МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/мин)
https://radiokot.ru/forum/viewtopic.php?f=61&t=83471
Страница 1 из 4

Автор:  takei [ Пн янв 14, 2013 15:28:32 ]
Заголовок сообщения:  МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/мин)

Здравствуйте уважаемые участники этого форума.
Подскажите, как этой схемой, можно управлять колекторным двигателем от микроконтроллера
Изображение
Ранее я расматривал вариант МОС3063 + ВТ 136 но столкнулся с трудностью согласования импульсов с началом фазы
А эта стандартная(кстати китайская) схема регулировки , практически у всех бытовых приборов, осталось только грамотно реализовать принципиальную схему , управления от мк (и неплохобы использовать цифровой ШИМ).

Вложения:
power_regulator.gif [10.43 KiB]
Скачиваний: 43432

Автор:  otest [ Пн янв 14, 2013 16:35:48 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

Ни как нельзя.

Автор:  zero648 [ Пн янв 14, 2013 17:11:36 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

zero648 писал(а):
Регулятор переделан из мастеркитовского набора (NM1041), только на атмега8, поставил светодиодный барграф, полный накал индикатора +10% мощности, в полнакала +5% мощности, семисегментники сюда просто не вписываются.
Изображение Изображение Изображение

P.S. Регулировка фазоимпульсная....

Для болгарки думаю потянет, зависит от мощности симистора, в этом на 8A/250V.

P.S. Если заинтересует есть схема, плата в layout для mega8-TQFP, прошивка тоже для TQFP. Прошивку можно и для PDIP переделать, но схема немного изменится.

Автор:  takei [ Пн янв 14, 2013 23:59:50 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

otest писал(а):
Ни как нельзя.

Не ну сказать никак это ....никак.
Вот можно сделать ступенчатое переключение
Изображение
конечно затратно, но все же без участия человека, автоматика на МК может переключать несколько скоростей...

zero648 писал(а):
Регулировка фазоимпульсная.......
P.S. Если заинтересует есть схема,

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

Вложения:
power_regulator1.GIF [9 KiB]
Скачиваний: 5677

Автор:  zero648 [ Вт янв 15, 2013 05:03:44 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

В вашей схеме нужно убрать DB3 и всю его обвязку и поставить MOC3052 например, тогда и МК приделать проще будет к схеме, плюс добавить схему детектора нуля.

Автор:  takei [ Вт янв 15, 2013 12:40:50 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

Мне примерно понятна схема МОС и ВТА
Изображение
но пока я не могу сделать свою программу с привязкой к импульсу перехода через ноль синусоиды сетевого напряжения, начинающийся в начале фазы (детектор фазы).

Я тут кстати для себя немного уяснил область применения МОС
МОС304х и МОС305х - полностью не взаимозаменяемы:
Изображение Изображение
МОС304х имеет встроенную схему включения при пересечении напряжением нуля (т.е., предназначен для использования в качестве своеобразного "реле переменного тока" - включено-выключено),
а МОС305х ее не имеет и может использоваться для фазового регулирования (например, в диммерах, для плавной регулировки мощности нагрузки).

Хотелось бы использовать схему с этим готовым блоком с db3, или я всетаки не совсем правильно я вас понял, что это значит? "плюс добавить схему детектора нуля." Это нужно делать программно в микроконтроллере?

Вложения:
5296644.png [12.94 KiB]
Скачиваний: 5340

Автор:  zero648 [ Вт янв 15, 2013 13:23:24 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

В схеме с DB3 используется задержка открывания симистора в начале полупериода, зачем её использовать вместе с контроллером, если контроллер сам будет регулировать эту задержку, схема получится сложнее, проще с MOC, но нужно добавить схему детектора нуля.

В архиве проект переделал под ATmega8 в DIP корпусе.

Вложения:
Bolgarin_PWM_220V.rar [29.85 KiB]
Скачиваний: 495

Автор:  Барсик [ Вт янв 15, 2013 14:56:12 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

А по какому алгоритму МК должен управлять болгаркой? Типа, нажал кнопку и ушёл спать, а болгарка сама начинает пилить всё подряд без участия человека? :)
У меня есть проект диммера на ATtiny13. Диммер управляется тремя кнопками. Кнопка 1 - включение/выключение. Кнопка 2 - больше. Кнопка 3 - меньше. Ну и, разумеется, плавное нарастание яркости при включении до заданного кнопками значения.

Схема в прикошаченном файле.

Вложения:
dimmer2.gif [9.48 KiB]
Скачиваний: 1666

Автор:  clawham [ Вт янв 15, 2013 17:43:34 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

я сделал свою болгарку проще!

Человеку надо плавный старт и стабилизация оборотов!

для этого я выпрямляю сетевое на кондер 400 микрофарад 600 вольт
потом полевиком ШИМлю на высокой частоте

парралельно считаю кол-во импульсов от крыльчатки вентилятора ротора оптопарой....
подаётся питание, болгарочка проверяет коротким рывком не заторможен ли ротор и начинает плаавненико 10 секунд разгоняться ... как дошло до 5000 оборотов - мощность снижается...примитивный ПИ регулятор....

начинаем пилить и обороты не проседают.....но....болгарки нынче слааабенькие...и по нагреву до 90 градусов отработанного воздуха я начинаю раз в секунду коротко переводить частоту ШИМа в 1 килогерц...в результате мотор начинает ПИЩАТЬ....и я понимаю что пора бы отпустить нагрузку....как только мк заметил это - сбавляет обороты до 800 на роторе и продолжает часто пищать....идёт охлаждение....мотор ненагружен не на пределе и вентилятор нормально качает воздух....при температуре 60 градусов - пищит дооолго и начинается разгон до номинала....

я думаю именно это нужно любому электроинструменту с колекторниками форсированными....особенно это электролобзиков и перфораторов касается - инструмент со склонностью заклинить.....сколько бы я пилок с экономил ... если б и на лобзик сделал такое :)...есть конечно и проблема...диод надо ультрафаст и на напругу 800 вольт...и он на 32 килогерцах греется....так же нужен драйвер полевика...ибо тоже...чатсота не абы какая....

Автор:  takei [ Ср янв 16, 2013 00:08:18 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

Алгоритм работы такой...
1. болгарка используется не по прямому назначению, она работает как вентилятор.... я думаю никто не испугается если пылесос будет работать как вентилятор.
2. думаю все кто читает этот форум держали в руках например шуроповерт, и убедились что кнопка по приведенной мной выше схеме работает очень стабильно от 0 и до 100% мощности, плавно и надежно (я не про мех.часть кнопки))). Можно даже сказать схема "золото"

3. У меня работать так . Сначала плавный пуск до 800об.мин. с переходом на 2000об.мин , в нужное время будет еще 8000об.мин или 10000об.мин и потом опять 2000об.мин или выкл. вот всего навсего что нужно мне для "счастья"))).

4. и все же благодаря обсуждению в этом форуме, удалось услышать в ваших советах то что мне нужно.
Предполагаю использовать в этой схеме вот такую деталь
резисторную оптопару
Изображение
Надеюсь, что смогу управлять его сопроивлением с помощью простого ШИМа.
5. осталось достать такой опторезистор , насколько я понимаю при советской промышлености был их выпуск, а с импорными аналогами наверное я буду в "пролете" :(

Вложения:
22.png [18.61 KiB]
Скачиваний: 5844

Автор:  clawham [ Ср янв 16, 2013 09:35:05 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

1) выбросьте вы эти симисторы
2) если считаете эту схему золотом - то вы просто не знаете как у соседей компьютер сам включается или помехи на телеке сыпятся...кроме того все трансформаторы гудеть будут как подорванные...

3) да...конечно резисторная оптопара это кул...но сейчас её не найти ...и у неё проблема с допуститым нарпяжением на концах того самого резистора...там порядка 60 вольт было....а у вас там все 300 будут...

4) никто не запрещает взять биполярник на 400 вольт, резистор килоом 50 и заменить этим биполярником этот переменник в вашей кнопке, тогда пороговый конденсатор вы будете заряжать порциями...и в теории там низковольтной оптопары типа 4n25 должно хватить...НО...ЗАчЕМ?

собрали детектор нуля, завели его на прерывание мк, по прерыванию обнулили счетный регистр 16-тибитного счетчика работающего на 1 килогерце и далее выставили значение совпадения...

совпадение = 0 - максимуму мощности
совпадение = 65536 - ноль мощности

по прерыванию совпадения вы глушите таймер и выдаёте короткий открывающий импульс оптосимистору который откроем силовой симистор...
это при условии что на полный период сетевого напряжения вы получите два прерывания в начале положительной и в начале отрицательной полуволны
если же только одно прерывание то тут немного сложнее

нужно использовать два регистра и прерывания по переполнению и первое будет в общем-то таким же а второе прерывание должно быть всегда на 10 миллисекунд позже первого....вот и все дела...можно и разные таймеры использовать чтоб точно выставить 10 миллисекунд задержку....по истечении этой задержки вы снова выдаёте один управляюющий импульс на оптосимистор

оптосимистор уже БЕЗ детектора нуля обязательно

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

все эти варианты есть !
это обычные "умные" диммеры....там есть и детектор нуля и программа работы с этим сигналом прерывания и выходная схемка для оптосимистора....только там значения яркости - по таблицам и кнопкам а у вас - датчик скорости вращения

Автор:  Барсик [ Ср янв 16, 2013 14:11:32 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

takei писал(а):
Предполагаю использовать в этой схеме вот такую деталь
резисторную оптопару
Фиг Вы где найдёте резисторную оптопару, да ещё с допустимым высоким напряжением на резисторе. clawham верно говорит.
А что касается "этой" схемы, то у меня она работала плоховато. При слабой яркости лампы появлялось низкочастотное мерцание. Что, собственно, меня и сподвигло сделать нормальный диммер на микроконтроллере.

Автор:  petruxa99 [ Чт янв 17, 2013 22:14:25 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

Возможно не в тему,я в этом не особо шарю, но вот схема где управляют симистором BT 136,(и точно работает с BT 139,сам проверял)
http://radiokot.ru/circuit/power/converter/17/
И у самого вопрос, можно ли симистор подключать к реактивной нагрузке в качестве регулятора ?

Автор:  takei [ Чт янв 17, 2013 23:49:31 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

Барсик писал(а):
takei писал(а):
Предполагаю использовать в этой схеме вот такую деталь
резисторную оптопару
Фиг Вы где найдёте резисторную оптопару, да ещё с допустимым высоким напряжением на резисторе. clawham .

Согласен, но как вариант можно было бы взять какой нибудь светодиод Изображение
И вот такой фоторезистор у меня есть, в сборе это и будет опторезистор
Изображение
сведений не имею он до 50 вольт или нет, если до 50 вольт то после эксперимента можно будет сказать , что у меня БЫЛ этот фоторезистор :))


Но это же еще не все, за два дня я тут умудрился написать изощренный КОД, запутался в котором я совсем, прерывание, таймер, задержки.........
в общем пока принимаю соболезнования принимаю ...))))) , вот часть кода с который я как мог сообразил.
Спойлер
Код:
#include <mega8.h>
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
 #include <stdio.h>
#include <delay.h>
#define TTT_PIN PORTD.0    // пин управления 
#define pljus_PIN  PINC.0
#define minus_PIN  PINC.1
unsigned char   procent=52;
// Таблица задержек для 16-тибитного таймера
flash const unsigned int  Period[99] = {
20324// 1% нагрузки
19794// 2% нагрузки
19384// 3% нагрузки
19036,18728,18450,18190,17948,17720,17504,17296,17096,16904,16718,16536,16360,16188,16022,15858,15696,
15538,15384,15232,15082,14934,14788,14644,14500,14360,14220,14082,13944,13808,13674,13540,13406,13274,13142,
13012,12882,12752,12622,12494,12366,12238,12110,11982,11854,11728,11600,11472,11346,11218,11090,10962,10834,
10706,10578,10448,10318,10188,10058,9926,9794,9660,9526,9392,9256,9118,8980,8840,8700,8556,8412,8266,8118,
7968,7816,7662,7504,7342,7178,7012,6840,6664,6482,6296,6104,5904,5696,5480,5252,5010,4750,4472,4164,
3816, // 97% нагрузки
3406, // 98% нагрузки
2876  // 99% нагрузки
};
interrupt [EXT_INT0] void ext_int0_isr(void)
{
TTT_PIN = 1;
TCNT1 = 0; // сбросили таймер
  GICR&=~(1<<6);  // запретили прерывание INT0 // GIFR = 0x10000000
}

// Timer1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
TTT_PIN = 0;
 GIFR|=(1<<6);     // сбросили флаг прерывания - Флаг сбрасывается ЕДИНИЦЕЙ
 GICR|=(1<<6);
                           
OCR1A = Period [procent]*2;
//OCR1B = Period [procent]+100;
//        TCNT0=0xFA;                                                             // запускаем таймер на 96 мкс
//        TCCR0=0x04;                                                             // частота таймера 62.500 кГц
}

// Declare your global variables here

void main(void)
{
PORTB=0b00000000;
 DDRB=0b00000000;
PORTC=0b00000011;
 DDRC=0b00000000;
PORTD=0b00000000;
 DDRD=0b00000001;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 4000,000 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x01;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x9C;
OCR1AL=0x40;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: Off
GICR|=0x40;
MCUCR=0x03;
GIFR=0x40;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x10;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
lcd_init(16);
// Global enable interrupts
#asm("sei")

while (1)
      {   
     
                                  lcd_gotoxy(0,0); 

                                                 lcd_putchar((procent/100)%10+0x30);
                                                 lcd_putchar((procent/10)%10+0x30);
//                                                   lcd_putchar('.');
                                                 lcd_putchar(procent%10+0x30);
     
     
     
     
     
     
     
if((pljus_PIN==0)&&(procent !=99))
procent+=1;
delay_ms(10); // задержка 10 мс.

if((minus_PIN==0)&&(procent !=1))
procent-=1;
delay_ms(10); // задержка 10 мс.


      };
}

Результат есть! но только на осциллографе протеуса, а вот светодиод от моего шима не светится,? даже в протеусе, непонимаю куда он ........
если кто может помочь, посмотрите пожалуйста, проект и протеус в архиве.
Вложение:
Zero_herez-nuli.rar [115.6 KiB]
Скачиваний: 310

petruxa99 спасибо но мне из готового может подойти только схемное решение, программу на МК смогу применить если только у меня получится управлять ей самостоятельно.....
Эта тема для меня по прежнему актуальна, спасибо что принимаете участие.

Вложения:
R.jpg [2.84 KiB]
Скачиваний: 5015
S.jpg [2.98 KiB]
Скачиваний: 5494

Автор:  zero648 [ Пт янв 18, 2013 14:03:52 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

takei писал(а):
Результат есть! но только на осциллографе протеуса, а вот светодиод от моего шима не светится,? даже в протеусе, непонимаю куда он ........
если кто может помочь, посмотрите пожалуйста, проект и протеус в архиве.
Чтобы светодиод светился в протеусе от шима, нужно поставить конденсатор параллельно светодиоду и токоограничивающий резистор в цепь светодиода.

Автор:  IBIT [ Пт янв 18, 2013 14:46:30 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

clawham писал(а):
я сделал свою болгарку проще!

ета разработка в свободном доступе? очень интеренсно посмотреть полную реализацию.

Автор:  clawham [ Пт янв 18, 2013 15:54:18 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

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

впринципе это всё мелочи и делаются любым радиогубителем на ура...
существует в единичном экземпляре у моего отца - он строитель....заколебался покупать якоря :)

может какнибудь переделаю под подобную вещь и свою микроболгарочку да статью напишу :) ну там и делать-то нечего....обычный ШИМ, обычный сетевой выпрямитель с токовым шунтом....МК гальванически связан с сетью, питание - конденсаторное - ничего такого чтобы было важное сложное или дефицитное....единственное - холла нормального не нашел потому сделал на оптопаре....и с ними тоже проблема...из обычных мышек медленные...надо из современных брать....

Автор:  vitalik_1984 [ Сб янв 19, 2013 07:00:42 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

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

Так а можно с этого места подробнее?на сколько конденсатор и резистор, если с Мк 5в питается?Резистора 300ом должно хватить?

Автор:  zero648 [ Сб янв 19, 2013 19:21:43 ]
Заголовок сообщения:  Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/

Сопротивления ставлю 100-200 Ом, конденсатор нужно подбирать в зависимости от частоты ШИМ, чем меньше частота тем больше емкость, могут быть лесятки, сотни и тысячи uF, для примера, при частоте ШИМа 100Гц ставлю емкость 3300-4700uF.

Автор:  takei [ Сб янв 19, 2013 23:54:50 ]
Заголовок сообщения:  детектор нуля, управление фазой

Вот первый результат по программе, и мой код
Спойлер
Код:
#include <mega8.h>
#include <delay.h>
#define TTT_PIN PORTD.0    // пин управления 
#define pljus_PIN  PINC.1
#define minus_PIN  PINC.0
unsigned int   procent=20000;
interrupt [EXT_INT0] void ext_int0_isr(void)
{
TTT_PIN = 0;

TCNT1 = 0; // сбросили таймер
  GICR&=~(1<<6);  // запретили прерывание INT0 // GIFR = 0x10000000
}

interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
TTT_PIN = 1;
 GIFR|=(1<<6);     // сбросили флаг прерывания - Флаг сбрасывается ЕДИНИЦЕЙ
 GICR|=(1<<6);
OCR1A = procent;                           
}
void main(void)
{
PORTB=0b00000000;
 DDRB=0b00000000;
PORTC=0b00000011;
 DDRC=0b00000000;
PORTD=0b00000000;
 DDRD=0b00000001;
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 4000,000 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x01;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x9C;
OCR1AL=0x40;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: Off
GICR|=0x40;
MCUCR=0x03;
GIFR=0x40;
TIMSK=0x10;
ACSR=0x80;
SFIOR=0x00;
TTT_PIN = 0;
#asm("sei")

while (1)
      {   
         if((pljus_PIN==0)&&(procent <=37800))
         procent+=1000;
         delay_ms(10); // задержка 10 мс.

         if((minus_PIN==0)&&(procent >=4000))
         procent-=1000;
         delay_ms(10); // задержка 10 мс.
      };
}


в протеусе управляет синусоидой идеально.

Изображение Изображение


В железе собрал, естественно уменя тут получился затык.....
По схеме в железе синхроимпульс нуля на INT0 приходит (осциллографа не имею, но методом тыка,))) проверил есть)
Выход PD0 , прицепил светодиод, яркость меняется, значится схема получается живая...
Далее МОС3052+ВТ136, лампа горит во весь накал, при уменьшении периода синусоиды кнопкой минус, наблюдаю слегка заметные(можно сказать беспорядочные) мерцания лампы.
Кто может поправьте... направьте. Все файлы проекта прикреплены в архиве

Вложения:
12.gif [16.67 KiB]
Скачиваний: 5528
detektor_nulja_s_preryvaniem.rar [96.59 KiB]
Скачиваний: 526
11.gif [15.43 KiB]
Скачиваний: 6059

Страница 1 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/