Форум РадиоКот 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 но столкнулся с трудностью согласования импульсов с началом фазы А эта стандартная(кстати китайская) схема регулировки , практически у всех бытовых приборов, осталось только грамотно реализовать принципиальную схему , управления от мк (и неплохобы использовать цифровой ШИМ).
|
Автор: | otest [ Пн янв 14, 2013 16:35:48 ] |
Заголовок сообщения: | Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/ |
Ни как нельзя. |
Автор: | takei [ Пн янв 14, 2013 23:59:50 ] | ||
Заголовок сообщения: | Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/ | ||
otest писал(а): Ни как нельзя. Не ну сказать никак это ....никак. Вот можно сделать ступенчатое переключение конечно затратно, но все же без участия человека, автоматика на МК может переключать несколько скоростей... zero648 писал(а): Регулировка фазоимпульсная....... P.S. Если заинтересует есть схема, Да интересует мне нужно найти схемное решение для управления двигателя этой схемой от микроконтроллера. Сама схема (которую я приложил к своему собщению) это регулятор (кнопка) ![]() практически на всех известных мне бытовых иструментах. Наверняка можно приделать еще что нибудь, для электронной регулировки...
|
Автор: | 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, или я всетаки не совсем правильно я вас понял, что это значит? "плюс добавить схему детектора нуля." Это нужно делать программно в микроконтроллере?
|
Автор: | zero648 [ Вт янв 15, 2013 13:23:24 ] | ||
Заголовок сообщения: | Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/ | ||
В схеме с DB3 используется задержка открывания симистора в начале полупериода, зачем её использовать вместе с контроллером, если контроллер сам будет регулировать эту задержку, схема получится сложнее, проще с MOC, но нужно добавить схему детектора нуля. В архиве проект переделал под ATmega8 в DIP корпусе.
|
Автор: | Барсик [ Вт янв 15, 2013 14:56:12 ] | ||
Заголовок сообщения: | Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/ | ||
А по какому алгоритму МК должен управлять болгаркой? Типа, нажал кнопку и ушёл спать, а болгарка сама начинает пилить всё подряд без участия человека? ![]() У меня есть проект диммера на ATtiny13. Диммер управляется тремя кнопками. Кнопка 1 - включение/выключение. Кнопка 2 - больше. Кнопка 3 - меньше. Ну и, разумеется, плавное нарастание яркости при включении до заданного кнопками значения. Схема в прикошаченном файле.
|
Автор: | clawham [ Вт янв 15, 2013 17:43:34 ] |
Заголовок сообщения: | Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/ |
я сделал свою болгарку проще! Человеку надо плавный старт и стабилизация оборотов! для этого я выпрямляю сетевое на кондер 400 микрофарад 600 вольт потом полевиком ШИМлю на высокой частоте парралельно считаю кол-во импульсов от крыльчатки вентилятора ротора оптопарой.... подаётся питание, болгарочка проверяет коротким рывком не заторможен ли ротор и начинает плаавненико 10 секунд разгоняться ... как дошло до 5000 оборотов - мощность снижается...примитивный ПИ регулятор.... начинаем пилить и обороты не проседают.....но....болгарки нынче слааабенькие...и по нагреву до 90 градусов отработанного воздуха я начинаю раз в секунду коротко переводить частоту ШИМа в 1 килогерц...в результате мотор начинает ПИЩАТЬ....и я понимаю что пора бы отпустить нагрузку....как только мк заметил это - сбавляет обороты до 800 на роторе и продолжает часто пищать....идёт охлаждение....мотор ненагружен не на пределе и вентилятор нормально качает воздух....при температуре 60 градусов - пищит дооолго и начинается разгон до номинала.... я думаю именно это нужно любому электроинструменту с колекторниками форсированными....особенно это электролобзиков и перфораторов касается - инструмент со склонностью заклинить.....сколько бы я пилок с экономил ... если б и на лобзик сделал такое ![]() |
Автор: | takei [ Ср янв 16, 2013 00:08:18 ] | ||
Заголовок сообщения: | Re: МК должен управлять болгаркой (MK>db3>bt136= 0 -1250 об/ | ||
Алгоритм работы такой... 1. болгарка используется не по прямому назначению, она работает как вентилятор.... я думаю никто не испугается если пылесос будет работать как вентилятор. 2. думаю все кто читает этот форум держали в руках например шуроповерт, и убедились что кнопка по приведенной мной выше схеме работает очень стабильно от 0 и до 100% мощности, плавно и надежно (я не про мех.часть кнопки))). Можно даже сказать схема "золото" 3. У меня работать так . Сначала плавный пуск до 800об.мин. с переходом на 2000об.мин , в нужное время будет еще 8000об.мин или 10000об.мин и потом опять 2000об.мин или выкл. вот всего навсего что нужно мне для "счастья"))). 4. и все же благодаря обсуждению в этом форуме, удалось услышать в ваших советах то что мне нужно. Предполагаю использовать в этой схеме вот такую деталь резисторную оптопару Надеюсь, что смогу управлять его сопроивлением с помощью простого ШИМа. 5. осталось достать такой опторезистор , насколько я понимаю при советской промышлености был их выпуск, а с импорными аналогами наверное я буду в "пролете" ![]()
|
Автор: | 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 вольт то после эксперимента можно будет сказать , что у меня БЫЛ этот фоторезистор ![]() Но это же еще не все, за два дня я тут умудрился написать изощренный КОД, запутался в котором я совсем, прерывание, таймер, задержки......... в общем пока принимаю соболезнования принимаю ...))))) , вот часть кода с который я как мог сообразил. СпойлерКод: // Alphanumeric LCD Module functions .equ __lcd_port=0x18 ;PORTB 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 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 мс. }; } Результат есть! но только на осциллографе протеуса, а вот светодиод от моего шима не светится,? даже в протеусе, непонимаю куда он ........ если кто может помочь, посмотрите пожалуйста, проект и протеус в архиве. Вложение: petruxa99 спасибо но мне из готового может подойти только схемное решение, программу на МК смогу применить если только у меня получится управлять ей самостоятельно..... Эта тема для меня по прежнему актуальна, спасибо что принимаете участие.
|
Автор: | 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 ] | ||||
Заголовок сообщения: | детектор нуля, управление фазой | ||||
Вот первый результат по программе, и мой код СпойлерКод: 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; 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, лампа горит во весь накал, при уменьшении периода синусоиды кнопкой минус, наблюдаю слегка заметные(можно сказать беспорядочные) мерцания лампы. Кто может поправьте... направьте. Все файлы проекта прикреплены в архиве
|
Страница 1 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |