Схеми на ШИМ регулатори на микроконтролери. Регулатор на мощност на микроконтролер ATtiny2313 - Регулатори на мощност - Захранвания

Много често е необходимо да можете да регулирате тока, протичащ през лампи или нагревателни елементи. Тъй като натоварването им е резистивно, най-простото решение е да се сглоби малък PWM (от английски PWM - модулация на ширината на импулса) регулатор. Тъй като прости вериги NE555, базиран на таймери, не представляваше интерес - беше решено да се разработи и сглоби наш собствен, донякъде подобен на .

Веригата, въпреки наличието на микроконтролер PIC18LF2550, е ​​много проста за повторение и може да бъде разделена на 3 части:

ШИМ генератор

Микроконтролерът генерира ясни импулси с желаната форма и работен цикъл, което значително опростява веригата. Има два бутона за увеличаване и намаляване на мощността. Те отиват към щифтове 3 и 5 на чипа PIC18LF2550. В зависимост от ширината на импулса, светодиодът мига по-бавно или по-бързо, така че можете визуално да оцените работния цикъл. Ако светодиодът свети напълно, мощността е 100%, а ако изгасне, работният цикъл е 0%.

Микроконтролерно захранване

MK стабилизаторът е 3,3 волта, така че в зависимост от изходния транзистор можете да използвате източник на захранване от 3,7 до 25 волта. Честотата на превключване е 32 kHz, а продължителността на импулса е разделена на 256 стъпки, включително пълно включване и изключване.

Превключвател за натоварване

Драйверът за MOSFET транзистора е обикновен 2N3904. Самият мощен транзистор може да бъде всеки подходящ N-канален MOSFET, не непременно като във веригата 80NF55L.

Тази версия на 4-канален 8-битов PWM контролер е проектиран с помощта на микроконтролера ATmega16. Устройството съдържа RS232 интерфейс за управление от компютър, интерфейс за 12-бутонна клавиатура и 4 аналогови 10-битови канала за свързване на потенциометри. Има 4-редов LCD дисплей за показване на текущите режими на работа и параметри. Допълнително ШИМ контролерът има: 4 изхода към светодиоди за индикация на режимите на управление (могат да се използват като изходи с общо предназначение), 3 изхода с общо предназначение.

Устройството има много гъвкави настройки. Например, работните параметри на PWM каналите могат да се управляват с помощта на команди от компютър, с помощта на аналогови контроли (потенциометри) или с помощта на клавиатура (с потребителски интерфейс, показан на LCD индикатора). Самият LCD индикатор също може да се управлява чрез RS232; текущите настройки и режими могат да се показват в цифров или графичен формат.

Основни характеристики на устройството:

  • 4-канален ШИМ, резолюция 8 бита, честота на ШИМ - 31 kHz;
  • RS232 интерфейс за управление и наблюдение от компютър;
  • просто схемно решение с минимално количество външни елементи;
  • 12-клавишна клавиатура;
  • възможност за аналогова настройка;
  • до 7 изходни линии с общо предназначение;
  • 4-редов LCD дисплей;
  • Управление на LCD дисплея чрез сериен интерфейс;
  • персонализирано меню;
  • гъвкави настройки;
  • софтуерна реализация на FIFO буфери за ускоряване на работата.

Контрол на изходите с общо предназначение (вкл. LED индикатори) се извършва от компютър (RS232), потребителят също има възможност да прочете историята на натисканията на клавишите на клавиатурата (последните 32 натискания на клавиши или веднага след натискане на клавиш).

Благодарение на такива гъвкави настройки, чрез избор на подходяща настройка, PWM контролерът може да се използва в различни приложения и като самостоятелно устройство. Дизайнът използва микроконтролер ATmega16, минимално количествовъншни елементи, тъй като целият контрол и управление се извършва от самия микроконтролер. Възможно е потребителят да използва само необходимите компоненти, например LCD индикатор може да бъде изключен, ако не е необходим.

Логическа схема на устройството.

Принципна схема на устройството

Схемата е много проста. За часовник на микроконтролера е избран 8 MHz кварцов резонатор, захранването +5,0 V е монтирано на интегрален стабилизатор LM7805, 10 µH индуктивност и 100 nF кондензатор - образуват филтър, който предотвратява смущения от превключване в аналогови вериги. Преобразувателят на логическо ниво MAX232 се използва за реализиране на серийния интерфейс. LCD индикатор на чипсет Hitachi (HD44780) с резолюция 20x4 или 40x2. Блокът за управление на подсветката на индикатора е реализиран на транзистор MJE3055T (може да се използва по-евтин аналог). Клавиатурна матрица, стандартна, 4×3.

След подаване на захранване микроконтролерът задава последните запаметени параметри в EEPROM: режими на управление на PWM канала (аналогово управление, управление на сериен интерфейс, управление от клавиатура), формат на показване на параметъра на индикатора (управление на сериен интерфейс, показване на PWM стойност, показване на аналогова стойност ), както и състоянието на изходните линии с общо предназначение и състоянието на подсветката на дисплея.

Генерирането на ШИМ винаги присъства и на четирите канала след подаване на захранване. Потребителят може да конфигурира всички параметри на PWM контролера с помощта на серийния интерфейс, изпращайки команди за управление и след това да запише всички направени настройки в EEPROM паметта на микроконтролера. Пълен списъккомандите и стойностите са дадени по-долу в приложението. Серийният интерфейс може да се използва и за изпращане на текущи стойности аналогови каналиконтроли (по заявка).

Когато се приложи захранващо напрежение, индикаторът показва поздрав (потребителят може да промени поздрава) и след това, в съответствие с текущите настройки, показва текущите параметри и стойности на PWM изходите, стойности на аналоговите канали.

За пример за практическо изпълнение на устройството и ШИМ управление на различни външни устройства е дадена следната диаграма. Този пример показва схемни решения за свързване на мотор на вентилатор към 4 PWM канала, мощен светодиодсемейство, PWM-преобразувател на напрежение на операционния усилвател LM358. Светодиодите също са свързани, за да позволят тестване на изходни линии с общо предназначение.

Пример за изпълнение на изходните етапи на ШИМ контролер

Наличен голям бройразлични схемни решения, но в нашия случай ще анализираме няколко опции за ШИМ LED контрол на яркостта() на PIC микроконтролера.

PIC10F320/322 е идеален вариант за проектиране на различни димери. В същото време получаваме доста сложно устройство с най-ниска цена и минимално време, изразходвано за изграждане. Нека да разгледаме няколко опции за димери.

Първи вариант.Основен контрол на яркостта на светодиодите, при който яркостта на светодиодите се променя чрез завъртане на променливото копче, докато яркостта се променя от 0 до 100%

Яркостта на светодиодите се настройва чрез премахване на потенциала от променливия резистор R1. Това променливо напрежение отива към вход RA0, който функционира като аналогов вход и е свързан към входа AN2 на ADC на микроконтролера. ШИМ щифтът RA1 управлява превключвателя на захранването на транзистора V1.

Мощният транзистор може да бъде избран произволно с логическо нивоконтрол, т.е. това са транзисторите, които при получаване на 1...2 волта към портата напълно отварят канала си.

Например транзисторът IRF7805 може да контролира ток до 13 ампера, като отговаря на необходимите изисквания, а при всякакви други условия са гарантирани до 5 ампера. Конекторът CON1 е необходим само за програмиране на микроконтролера в схемата за същата цел, съпротивленията R2 и R5 също са необходими, т.е. ако микроконтролерът е програмиран, тогава всички тези радио елементи може да не бъдат инсталирани.

Съпротивление R4 и BAV70 служат за защита от пренапрежение и неправилно свързване на захранването. Кондензаторите C1 и C2 са керамични и служат за намаляване на импулсния шум и за надеждна работа на стабилизатора LM75L05.

Втори вариант.Тук яркостта на светодиодите също се контролира от променлив резистор, а включването и изключването се извършва с помощта на бутони.

Трети вариант.Както можете да видите, във веригата няма променлив резистор. В тази версия яркостта на светодиодите се управлява изключително от два бутона. Регулирането е стъпаловидно, яркостта се променя при всяко следващо натискане.

Четвърти вариант.По същество същото като третата опция, но когато задържите бутона, светенето на светодиода се променя плавно.

Здравейте на всички читатели на Муска!
Благодарение на този прекрасен сайт придобих много полезни неща и знания и в отговор реших да напиша първия доклад за новоразработеното устройство. По време на разработката на устройството се сблъсках с редица проблеми и успешно ги разреших. Може би описанието на някои решения ще помогне на някои от моите колеги начинаещи в тяхната креативност.
За направата печатни платкиВзех си микро бормашина и стойка за нея, която превръща бормашината в микро бормашина. Необходимостта от това се появи след като в винтоверт и китайски Dremel бяха използвани куп счупени свредла 0,5-1 мм. Но, както се оказа, е невъзможно да се използва такъв инструмент без регулатор на скоростта. Регулаторът реши да го направи сам, натрупвайки нови знания по пътя.

Имам малко радиолюбителски опит. Като дете, използвайки книгата на Борисов, сглобих няколко приемника и мигачи с помощта на мултивибратори. Последваха други хобита и дейности.
И тогава случайно забелязах Arduino, прочути изваяни модели на метеорологични станции и роботи, и исках да автоматизирам всичко, до което мога да се докопам, с помощта на микроконтролери. Размерите на контролерите вървяха в низходящ ред според размера и лекотата на интегриране - Arduino UNO, Arduino Pro Mini, след това куп ATMega328P, както за най-малките, така и за прости устройствазакупен ATtiny85.
Купих Tinkies преди повече от година и те седяха и чакаха реда си.

Поръчайте екранна снимка


(в поръчката имаше и термосвиване, така че общата цена е по-висока)


MK пристигна както обикновено в чанта с бебешки бум, самите те бяха на куп в отделна найлонова торбичка. Би било по-добре, разбира се, в твърда кутия или в пяна, но дори и така нищо не беше огънато и всичко работеше.

Първоначално запоявах вериги на макетни платки, но след като прочетох за LUT, разбрах, че е напълно възможно и много по-удобно да сглобявам всичко на нормални печатни платки.
Постепенно започнах да събирам и полезни инструменти, сред които микробормашина MD-3 с цангов патронник и машина за пробиване на малки отвори. Разбира се, можеше да се купи само цанга и да се вземе двигателя отнякъде, но реших да купя готов в местния магазин.

Лазерно отпечатваме дизайна върху гланцирана фотохартия Lomond за мастиленоструен печат. Но поставянето на хартия, която не е предназначена за него, в чисто нов принтер беше страшно. Намерих онлайн предупреждения, че лъскавото покритие на хартията за мастиленоструйни принтери може да се разтопи, да залепне за печката и да развали принтера. За да съм сигурен, направих експеримент - търкулнах поялник, загрят до 200C по повърхността на тази хартия (така и не намерих точната температура на печката, но за това), хартията се изкриви малко, но нищо не се разтопи или залепна - което означава, че може да се използва в принтера.

Изгладих рисунката върху дъската и измих хартията. На платката остана много качествен модел на проводници и залепен лъскав слой хартия. Авторът на технологията препоръча да го премахнете с леко лепкава електрическа лента, но колкото и да се опитвах, или гланцът изобщо не беше премахнат, или проводниците се отделиха заедно с него. Надписите също бяха незабавно прехвърлени върху електрическа лента. След като страдаше, той взе шило и, надрасквайки между проводниците, откъсна почти целия гланц. Въпросът е деликатен и досаден, трябва да измислите нещо. След това, правейки втората и третата дъска, потърсих начин да се отърва от проклетия гланц, но отпечатването нито върху страница от списание, нито върху основата на самозалепваща се хартия не даде такова качество на рисуване, следите се размиха или падна. Но разбрах, че не е необходимо да почиствате гланца на фотохартията до нула - достатъчно е да надраскате поне малко между релсите, за да получите достъп до разтвора на медта, а на някои места беше гравиран без драскотини, през гланцът.

Реших да гравирам медта с разтвор на водороден прекис и лимонена киселинакато най-достъпен състав. Възможни опциихимия за ецване с изчисления можете да намерите тук

Взех пероксида от комплекта за първа помощ, купих го преди 3 години, срокът на годност беше около 2 години, мислех, че вече е изчерпан и изобщо няма да работи. Обаче се обърках, платката беше гравирана много бързо - за около три минути. Ето резултата:

Едната писта пострада от надраскване с шило, възстановена е чрез отхапване на проводника на резистора. Плюс малки дупки от опит за използване на електрическа лента. Трябва да си взема подходящ маркер, но междувременно нанасям лак навсякъде, където мога.

Калайдисах платката с поялник с помощта на плитка. Запоени частите.




Високите месингови стойки, завинтени една в друга през монтажните отвори, могат да поставят платката без калъф от двете страни на масата по време на монтажа и отстраняването на грешки, без да се страхувате от вдлъбнатина или късо съединение.

Най-трудоемката част беше да пропълзя и да запоя изходните светодиоди от страната на проводника. като лицева странаРеших да използвам страната за запояване, защото... на него височината на частите е много по-малка, а преминаването на вал на променлив резистор през платката намалява дължината му до необходимата.

Не запоявах кондензатор C2 в диаграмата, свързана с Reset, защото Въпреки че увеличава надеждността на стартиране на устройството, той може да попречи на мигането на MK.

Микроконтролерът беше запоен последен, след като свържете платката към захранването и се уверихте, че нищо няма да изгори веднага и стабилизаторът ще изведе стандартните 5V. Нищо не започна да пуши, така че свързваме програмиста към ICSP щифтовете и качваме тестовия фърмуер.

Ще напишем фърмуера за устройството в позната на мнозина среда Програмиране на Arduino, след добавяне на поддръжка за микроконтролери ATtiny към него, изтеглянето и разопаковането им в папката Arduino/hardware.

Тестовата скица (не виждам смисъл да я представям) просто прочете състоянията на входните сигнали и ги изведе на съществуващите изходи с свързани светодиоди. защото Имаме 4 входни канала, но само 2 изходни канала, така че трябваше да го проверим на няколко етапа.

Всичко работеше според очакванията, с изключение на едно нещо - бутонът, свързан към същия канал със зеления светодиод, не се четеше, а светодиодът беше видимо по-ярък от червения. Измерванията от тестера показаха, че в състояние PB0 повече от 20mA протича през светодиода като изход и само 2.1V пада през него. А във входно състояние с вътрешно издърпване на крака има само 1.74V при отпускане на бутона и 0.6V при натискане. Не е изненадващо, че 0 се чете постоянно, без дори да свети, източва напрежението на крака, когато тече микроамперен ток. Сега е ясно защо 2 светодиода са свързани последователно в оригиналната статия.

Но поставянето на втори светодиод да свети вътре в кутията е глупаво като баласт (и на преден панел 2 еднакви също не са необходими) изглеждаше като малко криво решение. Помислих си как иначе мога да увелича напрежението в светодиодната верига и си спомних характеристиката ток-напрежение на ценеровия диод. Ако свържем 2V ценеров диод последователно със светодиода срещу него (така че да работи нормално, на обратния клон на характеристиката ток-напрежение), тогава ще получим точно това, от което се нуждаем. Когато светодиодът светне при ток от 10 mA, ценеровият диод се пробива и не пречи на протичането на ток, а само стабилизира падащото върху него напрежение на дадено ниво. Просто трябва да смените резистора за ограничаване на тока въз основа на факта, че трябва да потиснете напрежението Ures = 5V-2.1V-2.0V = 0.9V с 10mA, т.е. R=90 ома. И когато кракът се превключи към входа с издърпване - поради стръмността на I-V характеристичния клон до разрушаването на прехода, ценеровият диод е еквивалентен на резистор с високо съпротивление и отново около 2V ще падне върху него , повишавайки напрежението на MK крака при отпускане на бутона до 4V, което вече ще се чете като TRUE. При натискане на бутона кракът ще бъде изтеглен до 5V от вътрешен резистор със съпротивление около 40KOhm (по мои изчисления), а към масата от резистор 5KOhm (който ще заобиколи веригата на LED), т.е. той ще има същите 0,6 V и се счита за FALSE.
Запоих ценеровида последователно с резистора и копчето заработи както трябва.

Сега беше ред да се провери работата на ШИМ и тук също възникнаха проблеми. Стандартната команда на Arduino AnalogWrite(leg, fill) не искаше да работи. Това означава, че нещо не е наред с библиотеката за тийнейджъри. Полезно е да разгледате листа с данни в MK и Интернет.

Оказа се интересно:
- 2 PWM канала (OC0A, OC0B) могат да бъдат изведени към пинове 5, 6 (PB0, PB1), всеки работещ със собствена настройка за запълване (но същата честота) от таймер 0;
- трети PWM канал, работещ от таймер 1, може да бъде изведен към щифтове 2, 3 (PB3, PB4) и директен PWM сигнал (OC1B) може да бъде изведен към крак 3, а неговата обратна версия (/OC1B) може да бъде изведена към крак 2. Но изходът отива или само към 3-тия крак, или към двата наведнъж. И имаме нужда от ШИМ на крак 2, поне инверсен (ние го обръщаме обратно в софтуера), така че ще трябва да конфигурираме изхода на крака 2 и 3 и сигналът няма да премине през крак 3 само защото е обявен за вход.

Така че, доколкото разбирам, в пакета за поддръжка на ATtiny за Arduino, PWM каналът от таймер 1 може да бъде изведен само към крак 3. Очевидно изходът на неговата обратна версия се счита за ненужен. Ще трябва сами да конфигурирате таймера и PWM (вижте кода, функция PWM3_init), вместо да използвате AnalogWrite.

Забелязах също, че при нулиране на таймер 1 работата на функцията millis() е нарушена - оказва се, че таймер 1 се използва по подразбиране за вътрешния часовник, но можете да преконфигурирате времето на таймер 0, като използвате дефиниция на макрос в Arduino\hardware\tiny\cores\tiny\core_build_options файл h
/* Поради различни причини Таймер 1 е по-добър избор за милимери таймера на процесора "85. */ #define TIMER_TO_USE_FOR_MILLIS 0
Това е, което ще използваме, тъй като Timer 0 в този проект е напълно безплатен.

Възникна и въпрос относно обхвата на настройката на скоростта, прочетена от променливия резистор. Автор оригинална схемадобавени последователно с променливата 10K постоянен резистор 36K, очевидно така, че ADC кодът да се побере в диапазона 0-255. Реално се получи 0-230, а максимумът плаваше. Но бих искал точно 0-255 да съответства на пълната скала на настройката с 8-битова ШИМ. За да направя това, премахнах постоянното напрежение и го замених с джъмпер на +5V, ADC започна да чете целия диапазон и 4-те най-малко значими бита бяха изхвърлени програмно. И защо бяха нужни допълнителните подробности?

След тестване на входно/изходните канали, зареждаме бойния фърмуер, написан на C в микроконтролера Arduino средабазиран на изходния код BASIC на автора на оригиналната схема.

Програмен текст

// Attiny85 на 1MHz // Не забравяйте да зададете таймер 0 за милисекунди и т.н.! // Arduino\hardware\tiny\cores\tiny\core_build_options.h -> TIMER_TO_USE_FOR_MILLIS 0 #include // Връзки #define MODE_LED_PIN PIN_B0 #define MODE_BUT_PIN MODE_LED_PIN #define PWM_LED_PIN PIN_B3 #define AM_PIN PIN_B1 #define SP_PIN A1 #define CUR_PIN A2 // States #define MODE_MANUAL 0 #define MODE_WAITING 1 #define MODE_SETUP_XX 2 # define MODE_SETUP_MAX 3 #define MODE_START 4 #define MODE_DRILLING 5 #define MODE_STOP 6 // Променливи byte Mode = MODE_MANUAL; байт ModeLedVal = LOW; байт SetPoint = 0; int CurrentFiltered = 0; байт CurrentU8 = 0; байт AMButton; байт AMButtonFlt = LOW; статичен байт ModeButton; статичен байт ModeButtonFlt = HIGH; // начална стойност за статичен байт ModeButtonOld = LOW; // задейства изключения при стартиране статичен байт SetupStep = false; неподписани дълги BlinkFromMs; неподписани дълги StartFromMs; неподписан дълъг ModeFromMs; байт W, W0, W1, W2, Wxx, Wmax, Uxx, Uon, Uoff; void PWM3_init() ( // Настройка на PWM на PB3 (пин 2) с помощта на таймер 1 TCCR1 = _BV (CS11) | _BV (CS10); // prescaler /4 GTCCR = _BV (COM1B0) | _BV (PWM1B); // изчистване на OC1B при сравнение OCR1B = 255; // първоначално запълване 0% (използване на обратен изход!) OCR1C = 255; // ШИМ честота = 1 000 000 /4 /256 PIN_B3 OCR1B = 255-duty_value; // попълване на 0-255 (0-100%) (използвайте обратен изход!) байт ScanButton(void) ( // Четене на бутон, свързан към един изход с LED // Ускорена версия с възстановяване на изхода и без PWM деактивира байтова стойност, port_bak; port_bak = PORTB; // запазване на DDRB изход &= ~(1<interval))( \ outvar = име на променлива;\ )\ )\ else (\ __lastChange_##varname=millis();\ ) // Инициализация void setup() ( pinMode(MODE_LED_PIN, OUTPUT); // основно състояние - индикация за pinMode (PWM_LED_PIN, OUTPUT); PWM3_init(); // възстановяване на настройките от EEPROM, ако са там, if (EEPROM.read(11)==0xAA) (Wxx = EEPROM.read(0); Wmax = EEPROM.read(1) ; Uon = EEPROM.read(3); else ( // стойности по подразбиране Wxx = 255; Uon = 255; // изключва старта преди задаване на Uoff = 0 ; ) // Плавно ускорение до празен ходили ръчна настройка, ако (digitalRead(AM_PIN)==HIGH) W0 = Wxx;<=W0; W++) { analogWrite_PB3(W); W1 = W1 + 4; delay(W1); } delay(800); Mode = MODE_WAITING; } // Рабочий цикл void loop() { // Индикация текущего режима морганием switch (Mode) { case MODE_MANUAL: ModeLedVal = LOW; // выключено break; case MODE_WAITING: (ModeLedVal==HIGH) ? ModeLedVal=LOW: ModeLedVal=HIGH; // в полнакала break; case MODE_START: case MODE_DRILLING: case MODE_STOP: ModeLedVal = HIGH; // на полную break; case MODE_SETUP_XX: if ((millis()-BlinkFromMs >400)) ( // рядко (ModeLedVal==HIGH) ? ModeLedVal=LOW: ModeLedVal=HIGH; BlinkFromMs = millis(); ) break;<< 5) - CurrentFiltered) >case MODE_SETUP_MAX: if ((millis()-BlinkFromMs > 100)) ( // често (ModeLedVal==HIGH) ? ModeLedVal=LOW: ModeLedVal=HIGH; BlinkFromMs = millis(); ) break;<1В) CurrentU8 = byte (CurrentFiltered >> 5);< Uoff) { // Тормозим analogWrite_PB3(Wxx); Mode = MODE_STOP; } if (AMButtonFlt==LOW) Mode = MODE_MANUAL; break; case MODE_STOP: // Тормозим и ждем пока выйдем на ток ХХ if (CurrentU8 < Uon) { // Замедлились if (millis()-StartFromMs >// ако >1V, за да не се бърка с малки if ((CurrentFiltered >> 5) & 0x7F00) CurrentU8=255;


// Превключвател на държавната машина (Mode) ( case MODE_MANUAL: // Ръчно управление с копче analogWrite_PB3(SetPoint); if (SetupStep) Mode = MODE_SETUP_XX; if (AMButtonFlt==HIGH) ( // Когато превключваме към машината, ще забавяне analogWrite_PB3(Wxx); StartFromMs = millis(); mode_STOP; case MODE_WAITING: // Изчакайте тока да се увеличи (CurrentU8) ( // StartFromMs = millis(); analogWrite_PB3(Wmax) ; Mode = MODE_START; ) if (SetupStep ) Mode = MODE_SETUP_XX; if (AMButtonFlt=.) case = MODE_START; =LOW) Mode = MODE_MANUAL; case MODE_DRILLING: // Пробийте тока, ако (CurrentU8

300) // надежден режим = MODE_WAITING;

) else ( StartFromMs = millis(); ) if (AMButtonFlt==LOW) Mode = MODE_MANUAL; прекъсване; case MODE_SETUP_XX: // Настройка на скоростта на празен ход Wxx = SetPoint;

Взимаме тестера, изкопаваме осцилоскопа и започваме да изучаваме какво извеждаме и какво получаваме. И падаме челюстите си. На шунта, вместо леки вълни на ток през индуктивността, в началото на ШИМ импулсите виждаме игли от десетки волта. Това означава, че тече през шунта импулсен токдесет ампера! И дори с изключен двигател. Не е изненадващо, че дъската иззвъня. Но какво завършва веригата без двигател? Малък 100nF кондензатор! Той може и ще потиска смущенията при превключване на намотките, но засега организира краткотрайно късо съединение на всеки период на ШИМ! Заключение - кондензаторът за потискане на шума не е съвместим с ШИМ управление и управление с помощта на шунт;

И тогава ми просветва, че тези удари на високо напрежение отиват почти директно към ADC на Tinka (тъй като има детектор за амплитуда, кондензаторът на крака се зарежда до максимално напрежениев игла и го съхранява безопасно, т.к. разряд само чрез изтичане на диод). Тинка изглежда все още няма да умре, но какво не е наред с крака й? Инструментите показват постоянно напрежениена крака 5.2V, по-високо от захранващото напрежение, но къде отиде останалото? Помним - за борба с пренапреженията има специално обучени диоди на "+" и "-" захранвания, които изхвърлят излишното в захранването. Но вградените диоди са крехки и не трябва да разчитате много на тях.

Премахваме проклетия кондензатор, измерваме напрежението с крак - работи! Надеждните микроконтролери са произведени от Atmel! Очевидно това помогна, че капацитетът на кондензаторите беше нисък;

Без кондензатор, иглите изчезнаха, платката спря да възпроизвежда музика, кракът изглежда всъщност измерва амплитудата на импулсния ток на ШИМ. Започваме процедурата за настройка и се опитваме да пробием. Уж всичко е както трябва - при натоварване добавя обороти, като излезе бормашината се нулира. Но не само това – няколко пъти в минута спонтанно ускорява и забавя без натоварване. Неясно защо, инструментите не показват нищо. Или кракът е изгорял, или капацитетът на проводниците генерира невидими игли като онзи кондер, или смущението идва от същия колектор.

Тук реших да се справя радикално с проблема, защото забелязах, че никоя друга схема не използва пиков детектор. Напротив, интегралната стойност на тока, преминал през RC филтрите, се следи навсякъде. И такива измервания са точно нечувствителни към смущения под формата на единични емисии. Заменяме диода с резистор - и амплитудният детектор се превръща в нискочестотен филтър.

Напрежението, променено от ADC, веднага падна с порядък - ефективното напрежение е много по-ниско от амплитудата в случай на сигнал под формата на плоски вълни с паузи между тях. Трябваше да хванем напрежение от около 0,2 V. Разбира се, беше възможно да увеличим съпротивлението на шунта, но използвахме ли ШИМ за загряване на атмосферата? И с голямо пълнене на PWM и натоварване на двигателя можете да получите пренапрежение. Следователно ще трябва да работите с нисък празен ход U.

Реакцията на натоварване също изглежда се е забавила. Ускорението започва след около половин секунда, но не виждам голям проблем в това - свредлото просто ще се подравни и ще премине през медта при ниски скорости. И край на фалстартовете. Можете да работите.

Крайна схема на устройството:


Устройството беше монтирано в корпус, чиято роля беше запечатана електрическа инсталация „Пластмасова съединителна кутия Tuso без уплътнения 120x80x50 mm, IP55 сиво 67052 Ruvinil Русия”. Исках да намеря по-плоска, но не можах да намеря нещо като 110*60*30. За да не поставям гирлянди на масата, усуках регулатора със захранването в едно цяло. Тухлата се оказа страхотна, но дори не можем да я носим в джобовете си. И въпреки че след пробиване на няколко дузини дупки, нямаше забележимо нагряване на превключвателя на ключовото поле, шунт и стабилизатор на допир, пробих малко вентилация на дъното и задната стена.







Оттогава машината с регулатора участва в създаването на още 2 платки (можете да видите колко пробиване изисква според думите „AVR Fusebit Doctor“. Много съм доволен от работата му.

Бих искал също да отбележа, че твърдосплавните свредла от Ali имат опашка 3,2 мм, а цангите бяха само 3,0 и 3,5 - свредлото не се вписва в едното и не се затяга в другото. Навих медна тел около свредло и някак си го вкарах в 3,5 мм, но не беше красиво. Ако някой е попадал на цанга 3.2 с диаметър 6мм (навсякъде само Дремел, като опашката е шлайфана на 5мм) моля да ми каже.

При смяна на свредла, процедурата за настройка трябва да се повтори отново - очевидно токът на двигателя се влияе от различния инерционен момент на "слабо" конвенционално свредло и твърдосплавно свредло с удебелена опашка. Но това става бързо и не е досадно. Тези, които се интересуват, могат да добавят профили за запазване на пробиване към фърмуера :)

Многократно съм срещал съвети дъските да се пробиват под слой вода, за да не дишат стъклени стружки. Не успях. Рефракцията във водата пречи на точното позициониране на свредлото, когато е високо, а окотомерът е неправилно подравнен. И когато свредлото влезе във водата, започват да се появяват вълнички и изобщо нищо не се вижда. Необходимо ли е да настроите спряната бормашина и след това да я включите? В резултат на това просто слагам купа с вода до нея и периодично потапям дъската в нея, за да навлажня и отмия стърготините. В този случай дървените стърготини са влажни и също не летят; те се събират в конус над дупката.

И още едно лирично отклонение, за малки крепежни елементи.

Реших да инсталирам захранващ конектор от типа „DS-225, Захранващ гнездо на панела“ в устройството. За да го закрепите, бяха необходими винтове и гайки с резба 2,5 mm. В килера нямаше нищо подходящо и тогава се сетих, че друга част изисква 2 мм винтове. Това означава, че си струва да попълните колекцията си от крепежни елементи, така че следващия път да не се налага да летите до другия край на региона за гайка. Не съм срещал нищо по-малко от М3 в магазините за техника, така че трябва да търся специализирани.

Първият относително удобен магазин се оказа верига магазини
Вътре очите ми се разбягаха от всякакви полезни неща, но лош късмет - най-малките винтове бяха само M2.5 със същата дължина, но няма гайки и шайби за тях! Бях впечатлен от продажбата на ядки поотделно за 2 рубли на бройка и изсипването на всичко закупено в една чанта за тениска (нямаше малки торбички за различни размери). Отново е скъпо да се запасите с различни размери.

Друг магазин за крепежни елементи дойде на помощ -
Тук наистина има всичко на склад, от M1.6, с различни слотове и глави, продавани на бройка и на тегло и на цена с порядък по-ниска от предишния конкурент. Просто трябва да отидете направо в складовия магазин на улица Плеханов, иначе първо отидох в магазина близо до метростанция Перово и бях много изненадан от обявената цена. И се оказа, че имат само неръждаема стомана, а за обикновени крепежни елементи трябва да отидете в индустриалната зона на трансферни щанги.

Смятам да си купя +67 Добавяне към любими Ревюто ми хареса +76 +152

Представяме на вашето внимание диаграма, която ви позволява да регулирате яркостта LED лентас помощта Широтно- Ипулс Мотдулация (PWM, английски PWM). Тази техника се използва широко в мощни контролери, тъй като, за разлика от регулирането на напрежението, не причинява дисбаланс на яркостта в отделни сегменти и е много по-икономичен.

Особености:

  • 2 независими ШИМ канала (с разделяне на фазите 180°);
  • Захранващо напрежение: 8 - 20 V;
  • Работен ток на натоварване: 3,4 A/канал (при захранване от 12 V еквивалентно на 40 W);
  • Ниски загуби в захранващия ключ (съпротивление на отворен канал 45 mΩ);
  • Опционалната гама корекция ви позволява да регулирате равномерно яркостта;
  • Защита от пренапрежение на входа (аналогово и софтуерно филтриране);
  • Вътрешна консумация на енергия под 10 mA (0,12 W при 12 V);
  • Високата честота на ШИМ (~18,75 kHz) не предизвиква стробоскопичен ефект и умора на очите при управление на LED лентата.

Устройството е базирано на микроконтролера ATtiny13A, който анализира входните напрежения на изводи PB3 и PB4, преизчислява ги и извежда ШИМ сигнали с подходящо запълване на изводи PB0 и PB1. Тези сигнали се изпращат към полеви транзистори T1 и T2, които от своя страна превключват мощни товари (в този пример LED лента).

Джъмперът J1 задава режима на работа на устройството: когато е поставен в долна (според диаграмата) позиция, запълването на ШИМ зависи линейно от напрежението на съответния вход. Когато джъмперът е настроен нагорна позиция, микроконтролерът преизчислява стойността на необходимото запълване на ШИМ, като използва таблица със стойности. Резултатът е гама-крива, т.е. нивото на яркост се настройва спрямо чувствителността на човешкото око. Графиката на изходното запълване спрямо входното напрежение е показана по-долу:

Зелена графика - джъмпер J1 в долна позиция, синя - в горна позиция

Характеристики на ШИМ генератор

За разлика от „класическия“ Fast PWM, тази схема използва Phase-correct PWM с канали, изместени на 180 градуса един спрямо друг. По-долу е показано как работят и двата алгоритъма.

Компоненти

Веригата не е взискателна по отношение на прецизния подбор на компоненти; Например, ако нямате променливи резистори от 100 kOhm, тогава можете да инсталирате 50 kOhm или 500 kOhm и веригата ще продължи да работи правилно. Почти всеки транзистор от серията IRLML може да бъде инсталиран като T1 и T2 (като се вземе предвид превключваният ток)
Ако не се нуждаете от втория канал, тогава можете да премахнете R2, R4, C2 и T2 и да заземите щифта PB4 на микроконтролера (като оставите PB1 несвързан)

За индикация се използват 3 светодиода (3mm). зелен блясък) с резистори 1 kOhm, свързани с аноди към входа на захранването 12V, а катоди към дрейните на транзисторите и към минуса на захранването. Освен това, 100µF електролитен кондензатор е свързан паралелно с керамичния кондензатор C3, който помага за изглаждане на мрежовите вълни. Инсталирането му не е задължително, но е препоръчително.

Конфигурацията на предпазителя е показана по-долу:

На екранната снимка отметката означава 0 - програмиран предпазител. За ваше удобство предпазителите са описани в коментарите във файла main.asm.

Настройката се свежда до поставяне на джъмпера J1 в желаната позиция. След това устройството е готово за употреба.

В заключение, няколко снимки (дръжки на променливи резисторивсе още не е облечен):

Списък на радиоелементите

Наименование Тип Деноминация Количество ЗабележкаМагазинМоят бележник
U1 MK AVR 8-битов

ATtiny13A

1 SOIC-8 Към бележника
VR1 Линеен регулатор

LM78L05

1 ТО-92 Към бележника
Т1, Т2 MOSFET транзистор

IRLML2502

2 СОТ-23 Към бележника
C1-C4 Кондензатор100 nF (0,1 µF)4 Керамика 0402 Към бележника
R1, R2 Променлив резистор

100 kOhm

2 Линеен Към бележника
R3, R4 Резистор

1 kOhm

2 0603 Към бележника
R5 Резистор

10 kOhm

1 0603 Към бележника
R6, R7 Резистор