Ցածր լարման PWM կարգավորիչ միկրոկոնտրոլերի վրա՝ ցուցումով: Էլեկտրաէներգիայի կարգավորիչ ATtiny2313 միկրոկառավարիչի վրա - Էլեկտրաէներգիայի կարգավորիչներ - սնուցման աղբյուրներ

Առողջություն Մուսկայի բոլոր ընթերցողներին:
Այս հիանալի կայքի շնորհիվ ես ստացա շատ օգտակար բաներ և գիտելիքներ և ի պատասխան որոշեցի գրել առաջին զեկույցը նոր մշակված սարքի մասին։ Սարքի մշակման ընթացքում ես հանդիպեցի մի շարք խնդիրների և հաջողությամբ լուծեցի դրանք։ Թերևս որոշ նորեկ գործընկերների համար որոշ լուծումների նկարագրությունը կօգնի ստեղծագործելուն։
Տպագիր տպատախտակների արտադրության համար նա ձեռք է բերել միկրո գայլիկոն և դրա համար նախատեսված հենարան, որը գայլիկոնը վերածում է միկրոհորատման մեքենայի։ Դրա անհրաժեշտությունը ծագեց մի փունջ կոտրված 0,5-1 մմ փորվածքներից հետո, երբ օգտագործվում էին պտուտակահանում և չինական dremel-ում: Բայց, ինչպես պարզվեց, անհնար է նման գործիք օգտագործել առանց արագության կարգավորիչի: Կարգավորողը որոշել է դա անել ինքնուրույն՝ ճանապարհին նոր գիտելիքներ ձեռք բերելով։

Սիրողական ռադիոյում քիչ փորձ ունեմ: Մանուկ հասակում Բորիսովի գրքի հիման վրա նա հավաքել է մի քանի ընդունիչներ, իսկ մուլտիվիբրատորների վրա թարթիչներ։ Հետո եկան այլ հոբբիներ և զբաղմունքներ:
Եվ հետո, երբեմն, ես նկատեցի Arduino-ն՝ եղանակային կայանների, ռոբոտների հայտնի քանդակված մոդելները, և ես ուզում էի ավտոմատացնել այն ամենը, ինչին կարող էի հասնել միկրոկառավարիչների օգնությամբ: Կարգավորիչների չափերը նվազման կարգով էին չափի և տեղադրման հեշտության՝ Arduino UNO, Arduino Pro Mini, ապա մի քանի ATMega328P, իսկ ամենափոքր և ամենապարզ սարքերի համար ես գնեցի ATtiny85:
Թինկին գնել է ավելի քան մեկ տարի առաջ, և նրանք ստում էին և սպասում էին իրենց հերթին:

Պատվիրել սքրինշոթ


(պատվերում եղել է նաև ջերմային կրճատում, քանի որ ընդհանուր գինը ավելի բարձր է)


Մ.Կ.-ն, ինչպես միշտ, ժամանեց փաթեթով՝ մի փոքր փուչիկներով փաթաթված, իրենք՝ մի փունջ առանձին պլաստիկ տոպրակի մեջ: Ավելի լավ կլիներ, իհարկե, կոշտ տուփի մեջ կամ փրփուրի մեջ, բայց նույնիսկ այդ դեպքում ոչինչ չէր թեքվել, և բոլոր աշխատողները:

Սկզբում ես սխեմաներ էի զոդում հացատախտակների վրա, բայց LUT-ի մասին կարդալուց հետո հասկացա, որ բավականին իրատեսական է և շատ ավելի հարմար է ամեն ինչ հավաքել սովորական տպագիր տպատախտակների վրա:
Նաև աստիճանաբար սկսեցի հավաքել մի օգտակար գործիք, որոնց թվում էր MD-3 միկրոհորը՝ կոլետ ցամակով և փոքր անցքեր փորելու մեքենա։ Իհարկե, հնարավոր կլիներ գնել միայն կոլետ և ինչ-որ տեղից ընտրել շարժիչը, բայց ես որոշեցի այն պատրաստի գնել տեղական խանութից։

Մենք լազերային տպիչի վրա տպում ենք Lomond փայլուն ֆոտոթղթի վրա նկար՝ թանաքային տպագրության համար։ Բայց հիմար էր բոլորովին նոր տպիչի մեջ դնել թուղթ, որն ընդհանրապես նախատեսված չէր դրա համար։ Ցանցում հայտնաբերվել են նախազգուշացումներ, որ թանաքային թղթի փայլուն ծածկույթը կարող է հալվել, կպչել ջեռոցին և փչացնել տպիչը: Համոզված լինելու համար ես փորձ արեցի. այս թղթի երեսին մինչև 200C տաքացրած զոդման երկաթ եմ փաթաթել (վառարանի ճշգրիտ ջերմաստիճանը չգտա, բայց մոտավորապես այդպես), թուղթը մի փոքր ծռվեց, բայց ոչինչ չհալվեց։ և չի կպչում, այնպես որ դա հնարավոր է տպիչի մեջ:

Ես արդուկեցի տախտակի վրա դրված գծագիրը, լվացեցի թղթից: Տախտակի վրա մնացին հաղորդիչների շատ բարձրորակ նախշ և թղթի կպչուն փայլուն շերտ։ Տեխնոլոգիայի հեղինակը խորհուրդ տվեց հեռացնել այն ոչ շատ կպչուն էլեկտրական ժապավենով, բայց ինչքան էլ փորձեցի, կամ փայլը ընդհանրապես չհեռացվեց, կամ հաղորդիչներն էլ հետը պոկվեցին։ Գրությունները նույնպես անմիջապես անցել են էլեկտրական ժապավենի։ Չարչարվելով, նա վերցրեց մի թմբուկ և, քերծվելով դիրիժորների միջև, պոկեց գրեթե ամբողջ փայլը: Նուրբ ու հոգնեցուցիչ բան է, պետք է ինչ-որ բան հորինել։ Հետո երկրորդ և երրորդ տախտակները պատրաստելիս միջոց էի փնտրում անիծված փայլից ազատվելու համար, բայց ոչ ամսագրի էջի վրա, ոչ էլ ինքնասոսնձվող հիմունքներով տպելը այդքան որակյալ նկար չտվեց, հետքերը մշուշվեցին կամ. ընկավ. Բայց մյուս կողմից, ես հասկացա, որ անհրաժեշտ չէ մաքրել լուսանկարչական թղթի փայլը զրոյի, բավական է գոնե մի փոքր քերծվել հետքերի միջև, որպեսզի լուծույթը հասնի պղնձին, և որոշ տեղերում դա եղել է: փորագրված առանց քերծվածքների, փայլի միջով:

Ես որոշեցի թթու թթու դնել պղինձը ջրածնի պերօքսիդի և կիտրոնաթթվի լուծույթով, որպես առավել մատչելի բաղադրություն։ Քիմիան հաշվարկներով փորագրելու հնարավոր տարբերակները կարող եք դիտել այստեղ

Առաջին օգնության պայուսակից պերօքսիդ եմ վերցրել, գնվել է մոտ 3 տարի առաջ, պիտանելիության ժամկետը դուրս է եկել մոտ 2 տարի առաջ, կարծեցի արդեն սպառվել է ու ընդհանրապես չի աշխատի։ Այնուամենայնիվ, ես սխալվեցի, տախտակը թթու դրվեց շատ ուրախ՝ մոտ երեք րոպեում։ Ահա արդյունքը.

Մեկ ուղին տուժել է քերծվածքից, այն վերականգնվել է կծված դիմադրության տերմինալով: Գումարած փոքր անցքեր էլեկտրական ժապավեն օգտագործելու փորձից: Պետք է ձեռք բերել համապատասխան մարկեր, բայց առայժմ, որտեղ կարող էի, քսել եմ լաքով։

Ես տախտակը հյուսեցի զոդման երկաթով: Զոդել մանրամասները:




Մոնտաժային անցքերի միջով տախտակի երկու կողմերում միմյանց մեջ պտուտակված բարձր փողային դարակները հարմար բան են, տեղադրման ժամանակ կարող եք առանց պատյանի տախտակը դնել սեղանին և երկու կողմից վրիպազերծել՝ առանց որևէ բան ջարդելու կամ կարճացնելու վախի:

Ամենաշատ ժամանակատարներից դա հաղորդիչների կողքից ելքային լուսադիոդների սողալն ու զոդումն էր: Ես որոշեցի օգտագործել զոդման կողմը որպես ճակատային կողմ, քանի որ. դրա վրա մասերի բարձրությունը շատ ավելի քիչ է, և փոփոխական դիմադրության լիսեռը տախտակի միջով անցնելը նվազեցնում է դրա երկարությունը ցանկալիին:

Reset-ին միացված դիագրամում C2 կոնդենսատորը չի զոդվել, քանի որ. չնայած դա մեծացնում է սարքի գործարկման հուսալիությունը, այն կարող է խելագարվել MK-ն թարթելիս:

Միկրոկոնտրոլերը վերջին անգամ զոդում էր՝ տախտակը PSU-ին միացնելուց հետո և համոզվելով, որ անմիջապես ոչինչ չի այրվի, և կայունացուցիչը սովորական 5 Վ լարում է: Ոչինչ չի ծխում, և, հետևաբար, մենք ծրագրավորողը միացնում ենք ICSP կապին և լրացնում ենք թեստային որոնվածը:

Մենք սարքի որոնվածը կգրենք շատերին ծանոթ Arduino ծրագրավորման միջավայրում՝ դրան ATtiny միկրոկառավարիչների համար աջակցություն ավելացնելուց հետո, դրանք ներբեռնելուց և հանելուց հետո Arduino / ապարատային թղթապանակում:

Փորձարկման ուրվագիծը (ես իմաստը չեմ տեսնում) պարզապես կարդացել է մուտքային ազդանշանների վիճակները և ցուցադրել դրանք հասանելի ելքերի վրա՝ միացված LED-ներով: Որովհետեւ մենք ունենք 4 մուտքային ալիք, և միայն 2 ելքային ալիք, մենք պետք է ստուգեինք մի քանի փուլով:

Ամեն ինչ աշխատում էր այնպես, ինչպես սպասվում էր, բացառությամբ մի բանի՝ կանաչ լուսադիոդով մեկ ալիքին միացված կոճակը ընթեռնելի չէր, իսկ լուսադիոդը նկատելիորեն ավելի վառ էր, քան կարմիրը: Փորձարկողի կողմից կատարված չափումները ցույց են տվել, որ PB0 վիճակում ավելի քան 20 մԱ հոսում է որպես ելք LED-ի միջով և միայն 2,1 Վ-ն է ընկնում դրա վրա: Իսկ ոտքի վրա ներքին ձգումով մուտքային վիճակում՝ կոճակը բաց թողնելիս ընդամենը 1,74 Վ և սեղմելիս՝ 0,6 Վ։ Զարմանալի չէ, որ 0-ն անընդհատ կարդացվում է: Ցածր լարման կանաչ LED-ը, նույնիսկ չփայլելով, երբ միկրոամպեր հոսում էր, վատնում էր ոտքի լարումը: Այժմ պարզ է, թե ինչու սկզբնական հոդվածում 2 LED-ները միացված էին հաջորդաբար:

Բայց երկրորդ լուսադիոդը տուփի ներսում հիմարորեն փայլելու համար որպես բալաստ (և առջևի վահանակի վրա 2 նույնականները նույնպես անհրաժեշտ չեն) մի փոքր ծուռ լուծում էր թվում: Ես մտածեցի, թե այլ կերպ ինչպես կարող եք բարձրացնել լարումը LED շղթայում և հիշեցի zener դիոդի CVC-ն: Եթե ​​դրան հակառակ լուսադիոդով միացնենք 2V zener դիոդ (ճիշտ աշխատելու համար CVC-ի հակառակ ճյուղի վրա), ապա մենք ստանում ենք հենց այն, ինչ մեզ անհրաժեշտ է: Երբ լուսադիոդը միացված է 10 մԱ հոսանքի դեպքում, zener դիոդը ճեղքում է և չի խանգարում հոսանքի հոսքին, այլ միայն կայունացնում է դրա վրա ընկնող լարումը տվյալ մակարդակում: Հարկավոր է միայն փոխարինել ընթացիկ սահմանափակող ռեզիստորը, այն հիմքով, որ արդեն անհրաժեշտ է 10 մԱ-ով ճնշել Ures=5V-2.1V-2.0V=0.9V լարումը, այսինքն. R=90 Օմ. Եվ երբ ոտքը միացվում է մուտքին դեպի վերև՝ CVC ճյուղի կտրուկության պատճառով մինչև անցման խափանումը, zener դիոդը համարժեք է բարձր դիմադրության դիմադրության և այն կրկին կիջնի մոտ 2 Վ՝ բարձրացնելով: MK ոտքի լարումը, երբ կոճակը թողարկվում է 4 Վ, որն արդեն կարդացվում է որպես ՃՇՄԱՐԻՏ: Երբ կոճակը սեղմվում է, ոտքը կքաշվի մինչև 5V ներքին ռեզիստորի միջոցով, որի դիմադրությունը մոտ 40KΩ է (ըստ իմ հաշվարկների), իսկ գետնին 5KΩ ռեզիստորով (որը կշեղի LED շղթան), այսինքն. այն կունենա նույն 0,6 Վ-ը և համարվում է ԿԵՂԾ:
Զեներ դիոդը հովանոցով զոդել եմ ռեզիստորի հետ շարքով, և կոճակը աշխատել է այնպես, ինչպես պետք է:

Այժմ հերթն է ստուգել PWM-ի աշխատանքը, և այստեղ նույնպես խնդիրներ առաջացան։ Ստանդարտ Arduino հրամանը AnalogWrite (ոտք, լիցք) չէր ուզում աշխատել: Այսպիսով, ինչ-որ բան այն չէ Tinka գրադարանի հետ: Օգտակար բրդի տվյալների թերթիկ MK-ում և ինտերնետում:

Հետաքրքիր է ստացվել.
- 2 PWM ալիքներ (OC0A, OC0B) կարող են ելքվել 5, 6 (PB0, PB1) կապանքներին, որոնցից յուրաքանչյուրը գործում է իր լրացման կարգավորումներով (բայց նույն հաճախականությամբ) ժմչփ 0-ից;
- երրորդ PWM ալիքը, որը գործում է Timer 1-ից, կարող է ելքվել դեպի 2, 3 (PB3, PB4) պտուտակներ, և ուղղակի PWM ազդանշան (OC1B) կարող է ելքվել դեպի ոտք 3, և դրա հակադարձ տարբերակը (/OC1B) կարող է ելք լինել դեպի ոտք 2. Բայց ելքը գնում է կամ միայն 3-րդ ոտքին, կամ երկուսին էլ միանգամից։ Եվ մեզ պետք է PWM 2-րդ ոտքի վրա, առնվազն հակադարձ (մենք ծրագրավորելով այն շրջում ենք հետ), այնպես որ մենք ստիպված կլինենք կարգավորել ելքը 2 և 3 ոտքերի համար, և ազդանշանը չի գնա 3-ին միայն այն պատճառով, որ այն հայտարարված է մուտքային:

Այսպիսով, որքան ես հասկացա, Arduino-ի ATtiny աջակցության փաթեթում PWM ալիքը Timer 1-ից կարող է դուրս գալ միայն 3-րդ ոտքը: Ըստ երևույթին, դրա հակադարձ տարբերակի արդյունքը համարվում էր չափազանց մեծ: Դուք ստիպված կլինեք ինքներդ կարգավորել ժամանակաչափը և PWM-ը (տես կոդը, PWM3_init ֆունկցիան), AnalogWrite-ի օգտագործման փոխարեն:

Ես նաև նկատեցի, որ Timer 1-ը վերակազմավորելիս millis () ֆունկցիայի աշխատանքը կորչում է. պարզվում է, որ Timer 1-ը օգտագործվում է լռելյայնորեն ներքին ժամացույցի համար: Բայց դուք կարող եք վերակազմավորել ժամանակը Timer 0-ին՝ օգտագործելով ֆայլի մակրո սահմանումները: Arduino\hardware\tiny\cores\now\core_build_options h
/* Տարբեր պատճառներով Timer 1-ը ավելի լավ ընտրություն է «85» պրոցեսորի միլիս ժմչփի համար: */ #define TIMER_TO_USE_FOR_MILLIS 0
Որը մենք կօգտագործենք, քանի որ այս նախագծում Timer 0-ը պարզապես լիովին անվճար է:

Հարց կար նաև փոփոխական ռեզիստորից կարդացվող արագության սահմանման տիրույթի մասին: Բնօրինակ սխեմայի հեղինակն ավելացրել է 36K հաստատուն ռեզիստոր 10K փոփոխականով, ըստ երևույթին, այն հիմքի վրա, որ ADC կոդը տեղավորվում է 0-255 միջակայքում: Իսկապես ստացվեց 0-230, իսկ առավելագույնը լողաց։ Եվ ես կցանկանայի, որ 0-255-ը համապատասխանի ամբողջ մասշտաբի կարգավորումներին 8-բիթանոց PWM-ի հետ: Դա անելու համար ես հանեցի հաստատունը և այն փոխարինեցի + 5V ցատկողով, ADC-ն սկսեց կարդալ ամբողջ տիրույթը, և մենք ծրագրային կերպով մերժեցինք 4 ամենաքիչ կարևոր բիթերը: Իսկ ինչո՞ւ էր անհրաժեշտ լրացուցիչ մանրամասնություն։

Մուտքային/ելքային ալիքները ստուգելուց հետո մարտական ​​որոնվածը բեռնում ենք միկրոկոնտրոլերի մեջ, որը գրված է C-ով Arduino միջավայրում՝ հիմնվելով սկզբնական սխեմայի հեղինակի BASIC աղբյուրների վրա:

Ծրագրի տեքստը

// Attiny85 1 ՄՀց հաճախականությամբ // Մի մոռացեք սահմանել ժմչփ 0 միլիսի համար և այլն: // Arduino\hardware\tiny\cores\tiny\core_build_options.h -> TIMER_TO_USE_FOR_MILLIS 0 #include // Connections #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 CURMODE_DE_PIN WAITINGSET 1 #define MODE_UP_XX 2 #define MODE_SETUP_MAX 3 #define MODE_START 4 #define MODE_DRILLING 5 #define MODE_STOP 6 // Variables byte Mode = MODE_MANUAL; բայթ ModeLedVal = LOW; բայթ SetPoint = 0; int CurrentFiltered = 0; բայթ CurrentU8 = 0; byteAMButton; byteAMButtonFlt = 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; // PWM հաճախականություն = 1kHz (1,000,000 /4 /256) ) անվավեր անալոգայինWrite_PB3(uint8_tty) analogԳրել PIN_B3-ի վրա OCR1B = 255-duty_value; // լիցքավորում 0-255 (0-100%) (օգտագործել շրջված ելք!) բայթ ScanButton(անվավեր) ( // Read կոճակը միացված է մեկ ելքին LED-ով // Ավելի արագ տարբերակ՝ ելքը վերականգնող և ոչ մի PWM չի անջատում բայթի արժեքը, port_bak; port_bak = PORTB; // պահպանել ելքը DDRB &= ~(1<ընդմիջում))( \ outvar = varname;\ )\ )\ else (\ __lastChange_##varname=millis();\ ) // Initialization void setup() (pinMode(MODE_LED_PIN, OUTPUT); // հիմնական վիճակը - pinMode ցուցում (PWM_LED_PIN, OUTPUT); PWM3_init(); // կարգավորումների վերականգնում EEPROM-ից, եթե դրանք կան, եթե (EEPROM.read(11)==0xAA) (Wxx = EEPROM.read(0); Wmax = EEPROM.read(1) Uon = EEPROM.read(2); Uoff = EEPROM.read(3); ) այլ կերպ ( // լռելյայն արժեքներ Wxx = 1; Wmax = 255; Uon = 255; // բացառում է սկիզբը մինչև թյունինգը Uoff = 0; ) // Հանգիստ արագացում մինչև պարապ կամ ձեռքով կարգավորում, եթե (digitalRead(AM_PIN)==HIGH) W0 = Wxx; այլապես (W0 = 255- (analogRead(SP_PIN) >> 2); // 0-255, մենք ստացել ենք փոփոխական դիմադրություն հակադարձ) W1 = 0; for(W=0; W<=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(); ) ընդմիջում; դեպք MODE_SETUP_MAX. եթե ((millis()-BlinkFromMs > 100)) ( // հաճախ (ModeLedVal==HIGH) ? ModeLedVal=LOW՝ ModeLedVal=HIGH; BlinkFromMs = millis(); ) ընդմիջում; ) digitalWrite (MODE_LED_PIN, ModeLedVal); // Auto/Manual toggle switch, բացվում է Auto-ում և կարդում է HIGH AMButton = digitalRead(AM_PIN); Debounce (AMButton, AMButtonFlt, 200); // Settings կոճակը, կարդալ հատուկ ընթացակարգով, քանի որ LED-ի հետ համակցված, սեղմելիս այն կարդում է LOW ModeButton = ScanButton(); Debounce (ModeButton, ModeButtonFlt, 200); SetupStep = (ModeButtonFlt==LOW) && (ModeButtonOld==HIGH); ModeButtonOld = ModeButtonFlt; // Spinner SetPoint = 255- (analogRead(SP_PIN) >> 2); // 0-255, մեր փոփոխական ռեզիստորը պարզվեց, որ հակադարձ է // Շարժիչի հոսանք // Հիմնական զտիչ RC-շղթա 36K + 68nF (ժամանակային հաստատուն 2,5 մս, անջատման հաճախականությունը 65 Հց) կարգի y(i) = y(i-1) ) + ալֆա*(x(i)-y(i-1)) // (aka Exponential Moving Average, EMA) // ֆիլտրում, float-ի փոխարեն, մենք օգտագործում ենք բարձրացված ճշգրտություն int, որի համար մենք տեղափոխում ենք ձախ՝ անվճար 5 բիթ (նշանը դեռ օգտակար կլինի) // փոխարինել կոտորակային գործակցով ալֆայով բազմապատկումը աջ տեղաշարժով // (6 = /64 = *0.016) 100 ցիկլ - արժեքի 80%, 200 ցիկլ - 96 արժեքի %, 369 ցիկլ՝ 99,6% արժեք // (5 = /32 = *0,031) 50 ցիկլ՝ 80% արժեք, 100 ցիկլ՝ 96% արժեք, 179 ցիկլ՝ 99,6% արժեք // (4 = /16 = *0,063) 25 ցիկլ - 80% արժեք, 50 ցիկլ - 96% արժեք, 90 ցիկլ - 99,6% արժեք // (3 = /8 = *0,125) 12 ցիկլ - 80% արժեք, 25 ցիկլ - 96% արժեք, 45 ցիկլ - 99,6% արժեք // ժամանակաշրջանի գործարկում = ADC 110 մկվ + ծրագիր = 0,2 մս // ժամանակի հաստատուն = 8 * 0,2 մս = 1,6 մս, անջատման հաճախականություն 625 Հց CurrentFiltered = CurrentFiltered + ((analogRead(CUR_PIN)<< 5) - CurrentFiltered) >> 3); // օգտագործման հարմարավետության համար թողարկեք 0-255 // (հետ տեղափոխեք 5 բիթով և 2 բարձր բիթով հեռացվում են, քանի որ ամեն ինչ հետաքրքիր է (անգործուն)<1В) CurrentU8 = byte (CurrentFiltered >> 5); // եթե >1В չպետք է շփոթել փոքրերի հետ, եթե ((CurrentFiltered >> 5) & 0x7F00) CurrentU8=255; // Մեքենայի վիճակի անջատիչ (Ռեժիմ) (պատյան MODE_MANUAL. // Ձեռքով կառավարում պտտվող անալոգովWrite_PB3(SetPoint); if (SetupStep) Mode = MODE_SETUP_XX; if (AMButtonFlt==HIGH) ( // Դանդաղեցրեք, երբ անցնում եք մեքենայի անալոգային B3Writ-ին: (Wxx); StartFromMs = millis(); Mode = MODE_STOP; ) ընդմիջում; դեպք MODE_WAITING. // Սպասեք, որ հոսանքը բարձրանա, եթե (CurrentU8 > Uon) ( // Start StartFromMs = millis(); analogWrite_PB3(Wmax); Mode = MODE_START; ) եթե (SetupStep ) Mode = MODE_SETUP_XX; if (AMButtonFlt==LOW) Mode = MODE_MANUAL; ընդմիջում; դեպք MODE_START. =ՑԱԾՐ) Ռեժիմ = MODE_MANUAL; ընդմիջում; պատյան MODE_DRILLING. // Հորատում, սպասում է հոսանքի նվազմանը, եթե (CurrentU8< Uoff) { // Тормозим analogWrite_PB3(Wxx); Mode = MODE_STOP; } if (AMButtonFlt==LOW) Mode = MODE_MANUAL; break; case MODE_STOP: // Тормозим и ждем пока выйдем на ток ХХ if (CurrentU8 < Uon) { // Замедлились if (millis()-StartFromMs >300) // անվտանգ ռեժիմ = MODE_WAITING; ) else ( StartFromMs = millis(); ) if (AMButtonFlt==LOW) Mode = MODE_MANUAL; ընդմիջում; պատյան MODE_SETUP_XX. // Պարապուրդի կարգավորում Wxx = SetPoint; analogWrite_PB3 (Wxx); if (SetupStep) (Uon = բայթ (1.1 * CurrentU8); EEPROM.write (0,Wxx); EEPROM.write (2,Uon); Mode = MODE_SETUP_MAX; ) ընդմիջում; պատյան MODE_SETUP_MAX. // Սահմանել առավելագույն RPM Wmax = SetPoint; analogWrite_PB3 (Wmax); եթե (SetupStep) (Uoff = բայթ (1.1 * CurrentU8); EEPROM.write (1, Wmax); EEPROM.write (3, Uoff); EEPROM.write (11.0xAA); // Արգելակման անալոգWrite_PB3 (Wxx); StartFromMs = millis();Mode = MODE_STOP;) ընդմիջում; լռելյայն՝ Mode = MODE_WAITING; վերադարձ; ))


Որպես շունտ մենք միացնում ենք 5 վտ հզորությամբ 2,2 օմ ռեզիստոր: Շղթան PWM-ի հետևի եզրին լարման ինդուկտիվ ալիքներից պաշտպանելու համար մենք շարժիչին զուգահեռ միացնում ենք SS34 Schottky դիոդը և 100nF կոնդենսատորը անջատիչ ոլորունների միջամտությունը ճնշելու համար: Եվ մենք սկսում ենք փորձարկումներ գայլիկոնի շարժիչը կառավարելու համար:

Անմիջապես դուրս է հանում PWM-ի կատաղի ոռնոցը 4KHz (1MHz / 256): Մենք ավելացնում ենք /4 բաժանարարի կարգավորումը. այն անմիջապես ավելի լավ զգաց, թեև ճռռոցը չի վերացել, բայց ինչ-ինչ պատճառներով 1 ԿՀց-ը շատ ավելի հեշտ է հանդուրժել նույնիսկ երկարատև շահագործման դեպքում:

Ձեռնարկի ռեժիմում շարժիչի արագությունը սովորաբար կարգավորվում է 0-100%-ով, իսկ հետադարձ կապի սխեմայի ավտոմատ ADC-ում այն ​​անընդհատ կարդում է MAX արժեքը, և ոչինչ չի աշխատում: Ճանապարհին ես նկատում եմ, որ տախտակը բարձր ձայն է տալիս նույնիսկ այն ժամանակ, երբ շարժիչն անջատված է: wtf?

Մենք վերցնում ենք փորձարկող, փորում ենք օսցիլոսկոպը և սկսում ուսումնասիրել, թե ինչ ենք տալիս և ինչ ենք ստանում: Եվ մենք գցում ենք մեր ծնոտները: Շանթում, PWM իմպուլսների սկզբում ինդուկտիվության միջով մեղմորեն թեքված հոսանքի ալիքների փոխարեն, մենք տեսնում ենք տասնյակ վոլտ լարման ասեղներ: Սա նշանակում է, որ տասը ամպերի իմպուլսային հոսանք հոսում է շունտի միջով: Եվ նույնիսկ անջատված շարժիչով: Զարմանալի չէ, որ տախտակը զանգահարեց։ Բայց ի՞նչն է փակում շղթան առանց շարժիչի: Փոքրիկ 100nF կոնդենսատոր: Այն կարող է և կճնշի միջամտությունը ոլորուն միացման ժամանակ, բայց առայժմ այն ​​կազմակերպում է կարճաժամկետ կարճ միացում յուրաքանչյուր PWM ժամանակահատվածում: Եզրակացություն - աղմուկը ճնշող կոնդենսատորը համատեղելի չէ PWM հսկողության և շունտի միջոցով հսկողության հետ, այն պետք է հեռացվի:

Եվ հետո պարզվում է, որ այս բարձր լարման ալիքները գրեթե ուղղակիորեն գնում են տինկայի ADC-ին (քանի որ կա ամպլիտուդային դետեկտոր, ոտքի վրա գտնվող կոնդենսատորը լիցքավորվում է ասեղի մեջ առավելագույն լարման և ապահով պահում է այն, քանի որ լիցքաթափումը կատարվում է միայն դիոդի արտահոսքի միջոցով): Թինկան դեռ չի մեռնի, բայց ի՞նչ կասեք նրա ոտքի մասին: Գործիքները ցույց են տալիս 5.2 Վ ոտքի վրա հաստատուն լարում, ավելի բարձր, քան մատակարարման լարումը, բայց ո՞ւր գնաց մնացածը: Հիշում ենք, որ ալիքների դեմ պայքարելու համար այն ունի հատուկ պատրաստված դիոդներ «+» և «-» սնուցման սարքերի համար, որոնք ավելցուկը արյունահոսում են PSU-ի մեջ: Բայց ներկառուցված դիոդները փխրուն են, և պետք չէ դրանց վրա շատ հույս դնել:

Մենք հեռացնում ենք անիծյալ կոնդենսատորը, չափում ենք լարումը մեր ոտքով. այն աշխատում է: Վստահելի MK-ն արտադրում է Atmel-ը: Ըստ երևույթին, դա փրկեց, որ կոնդենսատորների հզորությունը ցածր էր, նրանք մի փոքր լիցքավորեցին:

Առանց կոնդենսատորի, ասեղները անհետացան, տախտակը դադարեց երաժշտություն նվագել, ոտքը կարծես իսկապես չափում է PWM իմպուլսային հոսանքի ամպլիտուդը: Մենք սկսում ենք տեղադրման ընթացակարգը և փորձում ենք հորատել: Թվում է, թե ամեն ինչ այնպես է, ինչպես պետք է. այն ավելացնում է պտույտները ծանրաբեռնվածության տակ և վերակայում է այն, երբ փորվածքը դուրս է գալիս: Բայց ոչ միայն, րոպեն մի քանի անգամ այն ​​ինքնաբերաբար արագանում և դանդաղեցնում է առանց բեռի: Ինչու պարզ չէ, գործիքները ոչինչ ցույց չեն տալիս։ Կամ ոտքը այրվել է, կամ լարերի տարողությունը առաջացնում է անտեսանելի ասեղներ, ինչպես այդ կոնդերը, կամ էլ նույն կոլեկցիոների միջամտությունը բարձրանում է:

Հետո որոշեցի արմատապես զբաղվել խնդրի հետ, քանի որ նկատեցի, որ պիկ դետեկտորը ոչ մի այլ սխեմայում չի օգտագործվում։ Ընդհակառակը, RC ֆիլտրերով անցած հոսանքի անբաժանելի արժեքը վերահսկվում է ամենուր։ Եվ նման չափումները պարզապես անտարբեր են միայնակ արտանետումների տեսքով միջամտության նկատմամբ: Մենք դիոդը փոխում ենք ռեզիստորի, և ամպլիտուդային դետեկտորը վերածվում է ցածր անցնող ֆիլտրի:

ADC-ով փոխված լարումը անմիջապես իջավ մեծության կարգով - գործառնական լարումը շատ ավելի ցածր է, քան ամպլիտուդը ազդանշանի դեպքում մեղմ ալիքների տեսքով, որոնց միջև դադարներ կան: Մենք պետք է բռնեինք մոտ 0,2 Վ լարում: Իհարկե, հնարավոր էր մեծացնել շունտի դիմադրությունը, բայց արդյո՞ք դրա համար մենք ցանկապատեցինք PWM-ը, որպեսզի մթնոլորտը տաքացնենք: Իսկ մեծ PWM լիցքավորմամբ և շարժիչի վրա ծանրաբեռնվածությամբ կարող եք գերլարում ստանալ: Հետևաբար, դուք ստիպված կլինեք աշխատել ցածր U պարապուրդի հետ:

Թվում է, թե բեռի արձագանքը նույնպես դանդաղել է: Արագացումը սկսվում է մոտ կես վայրկյանից, բայց ես դրանում մեծ խնդիր չեմ տեսնում, պարզապես գայլիկոնը կտեղակայվի և կանցնի պղնձի միջով ցածր արագությամբ: Եվ այլևս ոչ մի կեղծ սկիզբ: Դուք կարող եք աշխատել:

Սարքի վերջնական սխեման.


Սարքը տեղադրվել է պատյանում, որը հերմետիկորեն կնքված էլեկտրական կայանք էր «Tuso պլաստիկ լարերի տուփ առանց խցուկների 120x80x50 մմ, IP55 մոխրագույն 67052 Ruvinil Russia»: Ես ուզում էի ավելի հարթ մեկը գտնել, բայց 110 * 60 * 30 նման բան չգտա: Որպեսզի սեղանի վրա ծաղկեպսակներ չտնկեն, ես կարգավորիչը PSU-ով պտտեցի մեկ ամբողջության մեջ: Աղյուսը պարզվեց, որ ազնիվ է, բայց մենք նույնիսկ չենք կարող այն կրել մեր գրպանում: Եվ չնայած մի քանի տասնյակ անցք փորելուց հետո առանցքային դաշտի, շունտի և կայունացուցիչի նկատելի ջեռուցում չկար, ես մի փոքր օդափոխություն փորեցի ներքևի և հետևի պատին:







Այդ ժամանակից ի վեր կարգավորիչով մեքենան մասնակցել է ևս 2 տախտակի ստեղծմանը (կարող եք տեսնել, թե որքան է պահանջվել հորատման համար ըստ «AVR Fusebit Doctor» բառերի։ Ես շատ գոհ եմ նրա աշխատանքից։

Ուզում եմ նաև նշել, որ Ալիի հետ կարբիդային փորվածքները ունեն 3,2 մմ սրունք, իսկ կոլկետներն ընդամենը 3,0 և 3,5 էին, դրանք չեն տեղավորվում մի փորվածքի մեջ, բայց չեն սեղմվում մյուսի մեջ: Գայլիքի վրա պղնձե մետաղալար փաթաթեցի ու մի կերպ մտցրի 3,5 մմ, բայց տգեղ էր։ Եթե ​​ինչ-որ մեկը հանդիպել է 6 մմ տրամագծով 3.2 բարձրության վրա (ամենուր, բացի Dremel-ից, պոչը մինչև 5 մմ), ասա ինձ:

Փորվածքները փոխելիս ճշգրտման կարգը պետք է կրկնվի. ըստ երևույթին, «նիհար» պայմանական գայլիկոնի և կարբիդային փորվածքի իներցիայի տարբեր պահը խտացած սրունքով ազդում է շարժիչի հոսանքի վրա: Բայց դա արվում է արագ և չի անհանգստացնում: Ցանկացողները կարող են ավելացնել փորված պրոֆիլների խնայողությունը որոնվածում :)

Բազմիցս հանդիպել է խորհուրդը` տախտակները հորատել ջրի շերտի տակ, որպեսզի չշնչեն ապակու թիթեղները: Ես չկարողացա ստանալ: Ճշգրիտ տեղադրեք գայլիկոնը, երբ այն բարձր է, ջրի մեջ բեկումը խանգարում է, աչքը թեքվում է: Եվ երբ գայլիկոնը մտնում է ջուրը, ալիքները սկսում են գնալ, և ընդհանրապես ոչինչ չի երևում: Արդյո՞ք անհրաժեշտ է տեղադրել դադարեցված հորատումը, այնուհետև միացնել այն: Արդյունքում ես ուղղակի կողքին դրեցի մի աման ջուր և պարբերաբար թաթախեցի տախտակը դրա մեջ՝ թեփը խոնավացնելու և լվանալու համար։ Այս դեպքում թեփը խոնավ է և նույնպես չի թռչում, այն հավաքվում է անցքի վրայով կոնի մեջ։

Եվ ևս մեկ լիրիկական շեղում՝ փոքրիկ ամրակների մասին։

Ես որոշեցի սարքի մեջ տեղադրել «DS-225, սնուցման վարդակից վահանակի վրա» տիպի հոսանքի միակցիչ։ Դրա ամրացման համար պահանջվել են 2,5 մմ թելով ընկույզներով պտուտակներ։ Պահարանում ոչ մի հարմար բան չգտնվեց, հետո հիշեցի, որ մեկ այլ իրի մեջ 2 մմ պտուտակներ են պահանջվում։ Այսպիսով, արժե համալրել ամրացումների հավաքածուն, որպեսզի հաջորդ անգամ չթռչեք տարածաշրջանի մյուս ծայրը հանուն ընկույզի: Շինարարական խանութներում M3-ից ոչ պակաս բան չհանդիպեց, այնպես որ դուք պետք է փնտրեք մասնագիտացված:

Առաջին համեմատաբար հարմար խանութը ցանցն էր
Ներսից աչքերը փախան բոլոր տեսակի օգտակար բաներից, բայց դա վատ բախտն է. ամենափոքր պտուտակները նույն երկարության միայն M2.5 էին, բայց դրանց համար ընկույզներ և լվացող մեքենաներ չկան և երբեք չի պատահում: Ես տպավորված էի ընկույզի կտորով 2 ռ/հատով վաճառելով և գնված ամեն ինչ լցնելով մեկ պայուսակ-շապիկի մեջ (տարբեր չափերի փոքր պայուսակներ չկային): Կրկին անշահավետ է տարբեր չափերի ռեզերվ վերցնելը։

Փրկվել է ամրակների մեկ այլ խանութի կողմից -
Այստեղ իսկապես ամեն ինչ կա պահեստում, սկսած M1.6-ից, տարբեր սլոտներով և գլխիկներով, վաճառվում են ըստ կտորների և քաշի, և նախորդ մրցակցից մի կարգով ցածր գնով: Բայց պետք է ուղղակի անմիջապես գնալ Պլեխանովի փողոցի պահեստի խանութ, հակառակ դեպքում ես նախ գնացի Պերովո մետրոյի կայարանի մոտ գտնվող խանութ և շատ զարմացա հայտարարված գնից։ Եվ պարզվեց, որ դրանք ունեն միայն չժանգոտվող պողպատ, իսկ սովորական ամրացումների համար պետք է գնալ արդյունաբերական գոտի խաչաձողերի վրա:

Ես նախատեսում եմ գնել +67 Ավելացնել ընտրյալների մեջ Հավանեց ակնարկը +76 +152

Կան հսկայական թվով դասական թրիստորային և տրիակ կարգավորիչ սխեմաներ, բայց այս կարգավորիչը պատրաստված է ժամանակակից տարրերի հիմքի վրա և, ավելին, եղել է մեկ փուլ, այսինքն. այն չի անցնում ցանցի լարման ամբողջ կես ալիքը, այլ միայն դրա մի մասը, դրանով իսկ սահմանափակելով հզորությունը, քանի որ տրիակի բացումը տեղի է ունենում միայն ցանկալի փուլային անկյան տակ:

Երբ միացումն առաջին անգամ միանում է, սեգմենտի ցուցիչի վրա լուսավորվում է թիվ 0: Միացումն ու անջատումը կատարվում է միաժամանակ երկու միկրոանջատիչ կոճակ սեղմելով և պահելով: Կարգավորումը քիչ թե շատ - յուրաքանչյուր մամուլ առանձին-առանձին: Եթե ​​դուք չեք սեղմում անջատիչներից որևէ մեկը, ապա վերջին սեղմումից հետո, երկու ժամ հետո, կարգավորիչը ինքնուրույն կանջատվի, ցուցիչը կթարթի մինչև այդ՝ էներգիայի սպառման վերջին աշխատանքային մակարդակի փուլում:

Սարքը ցանցից անջատվելու պահին պահվում է ելքային հզորության վերջին մակարդակը, որը հաջորդ անգամ միացնելուց հետո ավտոմատ կկարգավորվի։ Կարգավորումն իրականացվում է 0-ից 9-ի և A-ից մինչև F միջակայքում: Այսինքն, ընդհանուր առմամբ կա ճշգրտման 16 քայլ:

Վերևի լուսանկարում գտնվող ռադիատորը բավականին մեծ է, դիզայնը թույլ է տալիս ավելի փոքր տարբերակ դնել, բայց ես ուրիշը չունեի: Երբ ես առաջին անգամ միացրեցի սարքը, էկրանիս վրա թարթեց 0-ը, կոճակները սեղմելուց շղթան չէր արձագանքում: Էլեկտրամատակարարման կոնդենսատորը փոխարինելով 1000 միկրոֆարադ անվանական արժեքով, խնդիրն անհետացավ:

Տպագիր տպատախտակը ձևաչափով և միկրոկոնտրոլերի որոնվածը տեղադրված են մեկ արխիվում՝ վերը նշված հղումով:

Շղթան օգտագործվում է բեռի մեջ սահուն հզորության վերահսկման համար: Վերահսկման մեթոդը հիմնված է տրիակ փուլային կառավարման մեթոդի վրա: Դրա էությունը կայանում է նրանում, որ շրջանցում է փոփոխական ցանցի լարման կիսաշրջանի մի մասը: Բեռին մատակարարվող հոսանքը համաչափ է ստացված ազդանշանի ինտեգրալին: Դիզայնի հիմքը PIC16F1823 միկրոկառավարիչն է:

Սարքն ապահովում է ակտիվ (շիկացման լամպ, ջեռուցիչ) և ինդուկտիվ բեռներ: Միկրոկառավարիչը ժամացույց է կատարում ներքին օսլիլատորից: Ցանցի հետ համաժամացման ազդանշանը գալիս է ուղղիչ կամրջից մինչև միկրոկառավարիչի ներքին համեմատիչի մուտքը R10, C5, R9, R8, C3 ֆիլտրի միջոցով: Համեմատիչի հղման լարումը գալիս է միկրոկառավարիչի ներքին DAC-ից և կազմում է մոտ 0,6 Վ, որը սահմանվում է MK կոնֆիգուրացիայի ժամանակ: Դիոդ D6 օգտագործվում է C6 հզորության ազդեցությունը համաժամացման վրա վերացնելու համար: Ցուցումը կատարվում է E30561-ի վրա՝ ընդհանուր կաթոդով։

Կառուցվածքային առումով սարքը հավաքվում է երկու տպագիր տպատախտակների վրա: Մեկի վրա ցուցիչի և կառավարման կոճակներն են, իսկ մյուսի վրա՝ MK՝ սնուցման և տրիակ: Տախտակները միացված են MGTF մետաղալարով։

Triac ջերմատախտակով (HS-135-38), ինչպես ցույց է տրված նկարում, բեռնվածքի առավելագույն հզորությունը մոտ 500 Վտ է: Համապատասխանաբար, տպագիր տպատախտակի վրա նստատեղ է պատրաստված այս ռադիատորի համար:

MK-ի որոնվածը պատրաստված է MPLAB միջավայրում C լեզվով HI-TECH PICC 9.83 կոմպիլյատորի համար: Դուք կարող եք ներբեռնել տպագիր տպատախտակները, որոնվածը և MPLAB նախագիծը վերևի հղումից:

Դիզայնը կարգավորվում է triac տիպի BT138 օգտագործմամբ: Որի կառավարումն իրականացվում է ԲԿ-ի միջոցով։ Թվային LED էկրանը ցույց է տալիս, թե քանի տոկոսով է տրիակը բաց է ընթացիկ պահին: Շղթայի տրամաբանական մասը սնուցվում է էլեկտրամատակարարմամբ, որի հիմքը DA1 7805 լարման կարգավորիչն է:

Այս միացումը կատարյալ է երկու տարբեր բեռների համար ելքային հզորությունը առանձին կարգավորելու համար, օրինակ՝ ջեռուցիչներ, լամպեր, էլեկտրական շարժիչներ: Առավելագույն բեռնվածության հզորությունը կախված է այն ստեղների տեսակից, որոնք փոխում են այն: Ստորև բերված գծապատկերում KT819 տրանզիստորները գործում են որպես այդպիսին, բայց կարող են լինել այլ տարբերակներ՝ կախված երկու բեռների պահանջվող հզորությունից: Սարքը առաջացնում է իմպուլսային ազդանշաններ, որոնք գնում են հոսանքի անջատիչներից որևէ մեկին:

Սարքը առաջացնում է իմպուլսային ազդանշաններ, որոնց իմպուլսների լայնությունը կարելի է կարգավորել 256 հավասար աստիճանով։ Շղթան կառավարելու համար օգտագործվում են փոփոխական դիմադրություններ, որոնք միացված են MK-ի RV3 և RV4 պորտերին, որոնք աշխատում են ADC-ի հետ: ATtiny13-ը չափում է փոփոխական ռեզիստորի արժեքը և սահմանում է ելքային իմպուլսային ազդանշանի զարկերակային լայնությունը՝ հետևելով անջատիչին, որը վերահսկում է որոշակի բեռի հզորությունը: Այսինքն, փոփոխական դիմադրության կոճակը պտտելով, հզորությունը կարգավորվում է: Նման կարգավորումը, համեմատած «պակաս» և «ավելի» կոճակներով պարամետրի հետ, ավելի հարմար է օգտագործել՝ շնորհիվ իր արագության: Սարքը ծրագրավորելու համար կա ISP6 միակցիչ։ Ծրագրավորելիս մենք լռելյայն դնում ենք ապահովիչները՝ աշխատելով ներքին ժամացույցի RC գեներատորով 9,6 ՄՀց հաճախականությամբ։ Արխիվը որոնվածի սկզբնական կոդով, մենք այն վերցնում ենք վերևի հղումից:

Էլեկտրաշարժիչների արագության կարգավորումը ժամանակակից էլեկտրոնային տեխնոլոգիաներում ձեռք է բերվում ոչ թե մատակարարման լարման փոփոխությամբ, ինչպես արվում էր նախկինում, այլ էլեկտրական շարժիչի վրա տարբեր տևողության ընթացիկ իմպուլսներ կիրառելով: Այս նպատակների համար նրանք ծառայում են, որոնք վերջերս շատ տարածված են դարձել - PWM ( զարկերակային լայնության մոդուլյացիա) կարգավորիչներ. Շղթան ունիվերսալ է. այն նաև շարժիչի արագության կարգավորիչ է, ինչպես նաև լամպերի պայծառությունը և լիցքավորիչի ընթացիկ ուժը:

PWM կարգավորիչի միացում

Նշված սխեման լավ է աշխատում, կցված է։

Առանց շղթայի փոփոխության, լարումը կարող է բարձրացվել մինչև 16 վոլտ: Տեղադրեք տրանզիստորը կախված բեռի հզորությունից:

Կարող է հավաքվել PWM կարգավորիչև ըստ այդպիսի էլեկտրական միացման՝ պայմանական երկբևեռ տրանզիստորով.

Եվ անհրաժեշտության դեպքում, կոմպոզիտային տրանզիստորի փոխարեն KT827, դրեք IRFZ44N դաշտը, R1 - 47k ռեզիստորով: Պոլևիկը առանց ռադիատորի մինչև 7 ամպեր ծանրաբեռնվածությամբ չի տաքանում։

PWM կարգավորիչի շահագործում

NE555 չիպի վրա ժմչփը վերահսկում է լարումը C1 կոնդենսատորի վրա, որը հանվում է THR պտուտակից: Հենց հասնում է առավելագույնին, ներքին տրանզիստորը բացվում է։ Որը շորտեր է դնում DIS-ի քորոցը գետնին: Այս դեպքում ելքի վրա հայտնվում է տրամաբանական զրո: Կոնդենսատորը սկսում է լիցքաթափվել DIS-ի միջոցով, և երբ դրա վրա լարումը դառնում է զրոյական, համակարգը կանցնի հակառակ վիճակի. ելքային 1-ում տրանզիստորը փակ է: Կոնդենսատորը նորից սկսում է լիցքավորվել, և ամեն ինչ նորից կրկնվում է:

C1 կոնդենսատորի լիցքը հետևում է ճանապարհին՝ «R2->վերին թև R1 -> D2», իսկ ուղու երկայնքով լիցքաթափումը` D1 -> ստորին թեւ R1 -> DIS: Երբ մենք պտտում ենք փոփոխական ռեզիստորը R1, մենք փոխում ենք վերին և ստորին թևերի դիմադրությունների հարաբերակցությունը: Ինչը, համապատասխանաբար, փոխում է իմպուլսի երկարության հարաբերակցությունը դադարին: Հաճախականությունը սահմանվում է հիմնականում C1 կոնդենսատորի կողմից և մի փոքր կախված է նաև R1 դիմադրության արժեքից: Փոխելով լիցքավորման/լիցքաթափման դիմադրության հարաբերակցությունը՝ մենք փոխում ենք աշխատանքային ցիկլը: Resistor R3-ը բարձր մակարդակի բարձրացում է ապահովում, այնպես որ կա բաց կոլեկտորի ելք: Ինչն ի վիճակի չէ ինքնուրույն բարձր մակարդակ սահմանել։

Դուք կարող եք տեղադրել ցանկացած դիոդներ, կոնդենսատորներ մոտավորապես նույն արժեքով, ինչ դիագրամում: Մեկ կարգի մեծության շեղումները էականորեն չեն ազդում սարքի աշխատանքի վրա: Օրինակ, C1-ում սահմանված 4,7 նանոֆարադներում հաճախականությունը իջնում ​​է մինչև 18 կՀց, բայց դա գրեթե չի լսվում:

Եթե ​​շղթան հավաքելուց հետո առանցքային կառավարման տրանզիստորը տաքանում է, ապա, ամենայն հավանականությամբ, այն ամբողջությամբ չի բացվում: Այսինքն՝ տրանզիստորն ունի մեծ լարման անկում (այն մասամբ բաց է) և հոսանքը հոսում է դրա միջով։ Արդյունքում ավելի շատ էներգիա է ծախսվում ջեռուցման համար: Ցանկալի է շղթան ելքի մեջ զուգահեռել մեծ կոնդենսատորներով, հակառակ դեպքում այն ​​վատ կերգի և կկարգավորվի։ Որպեսզի չսուլեք - վերցրեք C1-ը, սուլիչը հաճախ գալիս է նրանից: Ընդհանուր առմամբ, շրջանակը շատ լայն է, հատկապես խոստումնալից կլինի դրա օգտագործումը որպես լուսավորող լուսադիոդային լամպերի, լուսադիոդային ժապավենների և լուսարձակների համար, բայց ավելին հաջորդ անգամ: Հոդվածը գրվել է ear, ur5rnp, stalker68 աջակցությամբ։

Շատ հաճախ անհրաժեշտ է լինում կարգավորել լամպերի կամ ջեռուցման տարրերի միջով հոսող հոսանքը։ Քանի որ դրանք ունեն դիմադրողական բեռ, ամենահեշտ լուծումը փոքր PWM (անգլերեն PWM-ից՝ զարկերակային լայնության մոդուլյացիա) կարգավորիչ հավաքելն է: Քանի որ NE555 ժամանակաչափերի վրա հիմնված պարզ սխեմաները հետաքրքիր չէին, որոշվեց մշակել և հավաքել մերը, ինչ-որ չափով նման:

Շղթան, չնայած PIC18LF2550 միկրոկառավարիչի առկայությանը, շատ պարզ է կրկնելու համար և պայմանականորեն կարելի է բաժանել 3 մասի.

PWM գեներատոր

Միկրոկառավարիչը ստեղծում է ցանկալի ձևի և աշխատանքային ցիկլի հստակ իմպուլսներ, ինչը մեծապես հեշտացնում է միացումը: Հզորությունը մեծացնելու և նվազեցնելու համար կա երկու կոճակ: Նրանք գնում են PIC18LF2550 չիպի 3 և 5 կապում: Կախված զարկերակային լայնությունից՝ լուսադիոդը թարթում է ավելի դանդաղ կամ ավելի արագ, այնպես որ կարող եք տեսողականորեն գնահատել աշխատանքային ցիկլը: Եթե ​​LED-ն ամբողջությամբ փայլում է, հզորությունը 100% է, իսկ եթե այն անջատվում է, ապա աշխատանքային ցիկլը 0% է:

միկրոկոնտրոլերի սնուցման աղբյուր

MK կայունացուցիչը 3,3 վոլտ է, հետևաբար, կախված ելքային տրանզիստորից, կարող եք օգտագործել էներգիայի աղբյուր 3,7-ից մինչև 25 վոլտ: Անցման հաճախականությունը 32 կՀց է, իսկ զարկերակային լայնությունը բաժանված է 256 քայլի՝ ներառյալ լրիվ միացումը և անջատումը:

Բեռնման անջատիչ

MOSFET տրանզիստորի վարորդը սովորական 2N3904 է: Էլեկտրաէներգիայի տրանզիստորն ինքնին կարող է լինել ցանկացած հարմար N-ալիք MOSFET, պարտադիր չէ, ինչպես 80NF55L միացումում:

4-ալիք 8-բիթանոց PWM կարգավորիչի այս տարբերակը նախագծված է ATmega16 միկրոկոնտրոլերի միջոցով: Սարքը պարունակում է RS232 ինտերֆեյս՝ համակարգչային կառավարման համար, ինտերֆեյս 12 կոճակով ստեղնաշարի համար և 4 անալոգային 10-բիթ ալիք՝ պոտենցիոմետրերի միացման համար։ Ընթացիկ աշխատանքային ռեժիմները և պարամետրերը ցուցադրելու համար կա 4 տող LCD էկրան: Բացի այդ, PWM կարգավորիչն ունի՝ 4 լուսադիոդային ելք՝ կառավարման ռեժիմները ցույց տալու համար (կարող է օգտագործվել որպես ընդհանուր նշանակության ելքեր), 3 ընդհանուր նշանակության ելքեր:

Սարքն ունի շատ ճկուն կարգավորումներ։ Օրինակ, PWM ալիքների պարամետրերը կարող են կառավարվել համակարգչից ստացված հրամաններով, անալոգային կարգավորիչների (պոտենցիոմետրերի) կամ ստեղնաշարի միջոցով (LCD ցուցիչի վրա ցուցադրվող ինտերֆեյսի միջոցով): LCD ցուցիչը ինքնին կարող է կառավարվել նաև RS232-ի միջոցով, ընթացիկ կարգավորումների և ռեժիմների ցուցադրումը հնարավոր է թվային կամ գրաֆիկական ձևաչափով:

Սարքի հիմնական բնութագրերը.

  • 4-ալիք PWM, թույլտվությունը 8 բիթ, PWM հաճախականությունը՝ 31 կՀց;
  • RS232 ինտերֆեյս համակարգչի կառավարման և մոնիտորինգի համար;
  • պարզ շղթայի ձևավորում արտաքին տարրերի նվազագույն քանակով;
  • 12 կոճակով ստեղնաշար;
  • անալոգային ճշգրտման հնարավորությունը;
  • մինչև 7 ընդհանուր նշանակության ելքային գծեր;
  • 4 տող LCD էկրան;
  • LCD էկրանի կառավարում սերիական ինտերֆեյսի միջոցով;
  • օգտագործողի մենյու;
  • ճկուն պարամետրեր;
  • FIFO բուֆերների ծրագրային ներդրում՝ աշխատանքը արագացնելու համար:

Ընդհանուր նշանակության ելքերը (ներառյալ LED ցուցիչները) կառավարվում են համակարգչից (RS232), օգտատերը նաև հնարավորություն ունի կարդալ ստեղնաշարի ստեղնաշարերի պատմությունը (վերջին 32 ստեղնահարումը կամ ցանկացած ստեղն սեղմելուց անմիջապես հետո):

Նման ճկուն կարգավորումների շնորհիվ՝ ընտրելով համապատասխան կարգավորումը, PWM կարգավորիչը կարող է օգտագործվել տարբեր ծրագրերում և որպես ինքնուրույն սարք: Դիզայնն օգտագործում է ATmega16 միկրոկոնտրոլեր՝ արտաքին տարրերի նվազագույն քանակը, քանի որ ամբողջ կառավարումն ու կառավարումն իրականացվում է հենց միկրոկոնտրոլերի կողմից: Հնարավոր է, որ օգտագործողը օգտագործի միայն անհրաժեշտ բաղադրիչները, օրինակ, LCD ցուցիչը, եթե դրա կարիքը չկա, կարող է բաց թողնել:

Սարքի տրամաբանական դիագրամ.

Սարքի սխեմատիկ դիագրամ

Շղթայի դիզայնը շատ պարզ է. Միկրոկարգավորիչի ժամացույցի համար ընտրվել է 8 ՄՀց քվարցային ռեզոնատոր, ինտեգրված կայունացուցիչ LM7805-ի վրա հավաքվել է +5.0 Վ սնուցման աղբյուր, 10 μH ինդուկտիվությունը և 100 nF կոնդենսատորը կազմում են ֆիլտր, որը կանխում է միջամտության ներթափանցումը անալոգային միացման ժամանակ: սխեմաներ. MAX232 տրամաբանական մակարդակի փոխարկիչը օգտագործվում է սերիական ինտերֆեյսի իրականացման համար: LCD-ցուցանիշ՝ հիմնված Hitachi չիպսեթի վրա (HD44780)՝ 20x4 կամ 40x2 լուծաչափով: Ցուցանիշի հետին լույսի կառավարման միավորն իրականացվում է MJE3055T տրանզիստորի վրա (հնարավոր է օգտագործել ավելի էժան անալոգային): Ստեղնաշարի մատրիցա, ստանդարտ, 4×3:

Միացնելուց հետո միկրոկառավարիչը սահմանում է EEPROM-ում վերջին պահված պարամետրերը՝ PWM ալիքի կառավարման ռեժիմներ (անալոգային կառավարում, սերիական ինտերֆեյսի կառավարում, ստեղնաշարի կառավարում), պարամետրերի ցուցադրման ձևաչափը ցուցիչի վրա (սերիական ինտերֆեյսի կառավարում, PWM արժեքի ցուցադրում, անալոգային արժեքի ցուցադրում): ինչպես նաև ընդհանուր նշանակության ելքային գծերի վիճակը, էկրանի լուսավորության վիճակը:

PWM-ի արտադրությունը միշտ առկա է բոլոր չորս ալիքներում միացումից հետո: Օգտագործողը կարող է սահմանել PWM կարգավորիչի բոլոր պարամետրերը, օգտագործելով սերիական ինտերֆեյսը, ուղարկելով կառավարման հրամաններ, այնուհետև պահպանել միկրոկառավարիչի EEPROM-ում կատարված բոլոր կարգավորումները: Հրամանների և արժեքների ամբողջական ցանկը տրված է ստորև՝ հավելվածում: Սերիական ինտերֆեյսը կարող է օգտագործվել նաև անալոգային կառավարման ալիքների ընթացիկ արժեքներն ուղարկելու համար (ըստ պահանջի):

Ցուցանիշի վրա, երբ սնուցման լարումը կիրառվում է, ցուցադրվում է ողջույն (օգտագործողը կարող է փոխել ողջույնը), այնուհետև, ընթացիկ պարամետրերին համապատասխան, ցուցադրում է PWM ելքերի ընթացիկ պարամետրերը և արժեքները, արժեքները: անալոգային ալիքների.

Սարքի գործնական իրականացման և տարբեր արտաքին սարքերի PWM կառավարման օրինակի համար տրված է հետևյալ դիագրամը. Այս օրինակը ցույց է տալիս միացման լուծումներ օդափոխիչի շարժիչի 4 PWM ալիքներին, ընտանիքի հզոր LED-ին, LM358 գործառնական ուժեղացուցիչի վրա PWM-ից դեպի լարման փոխարկիչին միացնելու համար: Եվ նաև ընդհանուր նշանակության ելքային գծերի փորձարկման հնարավորության համար LED-ները միացված են:

PWM կարգավորիչի ելքային փուլերի իրականացման օրինակ

Բեռնվում է...Բեռնվում է...