Zemsprieguma PWM kontrolieris uz mikrokontrollera ar indikāciju. Jaudas regulators uz ATtiny2313 mikrokontrollera - Strāvas regulatori - Barošanas avoti

Veselību visiem Muskas lasītājiem!
Pateicoties šai brīnišķīgajai vietnei, es ieguvu daudz noderīgu lietu un zināšanu un kā atbildi nolēmu uzrakstīt pirmo ziņojumu par jaunizveidoto ierīci. Ierīces izstrādes laikā saskāros ar vairākām problēmām un tās veiksmīgi atrisināju. Iespējams, kādam no jaunpienācējiem kolēģiem dažu risinājumu apraksts palīdzēs radošumā.
Iespiedshēmu plates ražošanai viņš iegādājās mikrourbi un tam paredzētu statīvu, kas urbi pārvērš par mikrourbjmašīnu. Nepieciešamība pēc tā radās pēc vairākiem salauztiem 0,5–1 mm urbjiem, kad tos izmantoja skrūvgriežā un ķīniešu dremel. Bet, kā izrādījās, šādu rīku nav iespējams izmantot bez ātruma regulatora. Regulators nolēma to darīt saviem spēkiem, pa ceļam iegūstot jaunas zināšanas.

Man ir maza pieredze radioamatieru darbā. Bērnībā, pamatojoties uz Borisova grāmatu, viņš salika vairākus uztvērējus un mirgotājus uz multivibratoriem. Tad nāca citi vaļasprieki un aktivitātes.
Un tad dažkārt es pamanīju Arduino, slaveni veidotus meteoroloģisko staciju un robotu modeļus, un es gribēju automatizēt visu, ko varēju sasniegt ar mikrokontrolleru palīdzību. Kontrolieru izmēri bija dilstošā secībā pēc izmēra un iegulšanas vienkāršības - Arduino UNO, Arduino Pro Mini, pēc tam nedaudz ATMega328P, un mazākajām un vienkāršākajām ierīcēm es iegādājos ATtiny85.
Tinkijs nopirka vairāk nekā pirms gada, un viņi gulēja un gaidīja savu kārtu.

Pasūtiet ekrānuzņēmumu


(pasūtījumā bija arī siltuma saraušanās, jo kopējā cena ir augstāka)


MK atnāca kā parasti iepakojumā ar nelielu burbuļplēvi, paši ķekarā atsevišķā plastmasas maisiņā. Būtu labāk, protams, cietā kastē vai putuplasta, bet tik un tā nekas nebija saliekts un visi strādnieki.

Sākumā lodēju shēmas uz maizes paneļiem, bet, izlasot par LUT, sapratu, ka ir diezgan reāli un daudz ērtāk visu salikt uz parastajām iespiedshēmu platēm.
Es arī pamazām sāku vākt noderīgu instrumentu, starp kuriem bija MD-3 mikrourbis ar spīļpatronu un mašīnu mazu caurumu urbšanai. Varētu, protams, nopirkt tikai ieliktni un kaut kur paņemt dzinēju, bet es nolēmu to iegādāties gatavu vietējā veikalā.

Drukājam uz lāzerprintera zīmējumu uz Lomond glancēta fotopapīra tintes drukāšanai. Bet pavisam jaunā printerī ielikt papīru, kas tam nemaz nebija paredzēts, bija stulbi. Tīklā tika atrasti brīdinājumi, ka tintes papīra spīdīgā apdare var izkust, pielipt pie krāsns un sabojāt printeri. Lai pārliecinātos, veicu eksperimentu - uz šī papīra virsmas uzrullēju līdz 200C uzkarsētu lodāmuru (neatradu precīzu plīts temperatūru, bet par to), papīrs nedaudz deformējās, bet nekas nesakusa. un nepielipa - tāpēc tas ir iespējams printerī.

Izgludināju zīmējumu uz tāfeles, nomazgāju papīru. Uz tāfeles palika ļoti kvalitatīvs vadu raksts un pielīmēta glancēta papīra kārta. Tehnoloģijas autors ieteica noņemt ar ne pārāk lipīgu elektrisko lenti, bet, lai kā es centos, vai nu spīdums netika noņemts vispār, vai arī vadītāji ar to atdalījās. Uzraksti arī uzreiz pārgāja uz elektrisko lenti. Izcietis, viņš paņēma īlenu un, izskrāpējis starp vadītājiem, norāva gandrīz visu spīdumu. Tā ir smalka un garlaicīga lieta, kaut kas ir jāizdomā. Tad, veidojot otro un trešo dēli, meklēju veidu, kā tikt vaļā no sasodītā spīduma, bet druka ne uz žurnāla lapas, ne uz pašlīmējošās bāzes nedeva tik kvalitatīvu bildi, pēdas izplūda vai nokrita. Bet no otras puses sapratu, ka nevajag notīrīt fotopapīra spīdumu līdz nullei - pietika vismaz nedaudz paskrāpēt starp sliedēm, lai šķīdums tiktu pie vara, un dažviet tas arī bija. iegravēts bez skrāpējumiem, caur spīdumu.

Nolēmu marinēt varu ar ūdeņraža peroksīda un citronskābes šķīdumu kā pieejamāko sastāvu. Iespējamās ķīmijas kodināšanas iespējas ar aprēķiniem var apskatīt šeit

Paņēmu peroksīdu no aptieciņas, pirkts pirms kādiem 3 gadiem, derīguma termiņš iznāca pirms kādiem 2 gadiem, man likās, ka tas jau ir izsmelts un nederēs vispār. Tomēr es kļūdījos, dēlis tika marinēts ļoti jautri - apmēram trīs minūtēs. Lūk, rezultāts:

Viena trase cieta no skrāpējumiem ar īleni, tā tika atjaunota ar nokostu rezistora spaili. Plus nelieli caurumi no mēģinājuma izmantot elektrisko lenti. Jāiegūst piemērots marķieris, bet pagaidām, kur varēju, nosmērēju ar laku.

Plātni skārdēju ar lodāmuru, izmantojot bizi. Lodētas detaļas.




Augstie misiņa statīvi, kas ieskrūvēti viens otrā abās dēļa pusēs caur montāžas atverēm, ir ērta lieta, jūs varat novietot dēli bez korpusa uz galda uzstādīšanas un atkļūdošanas laikā abās pusēs, nebaidoties kaut ko saspiest vai saīsināt.

Visvairāk laikietilpīgs bija izejas gaismas diožu pārmeklēšana un lodēšana no vadītāju sāniem. Es nolēmu izmantot lodēšanas pusi kā priekšējo pusi, jo. uz tā detaļu augstums ir daudz mazāks, un mainīgās rezistora vārpstas izlaišana caur dēli samazina tā garumu līdz vēlamajam.

Kondensators C2 diagrammā, kas savienots ar Reset, nav lodēts, jo. lai gan tas palielina ierīces palaišanas uzticamību, tas var sadusmot, mirgojot MK.

Mikrokontrolleris tika pielodēts pēdējais, pirms tam pieslēdzu dēli pie PSU un pārliecinājos, ka uzreiz nekas neizdeg un stabilizators izdos parasto 5V. Nekas nesmēķēja, tāpēc mēs savienojam programmētāju ar ICSP tapām un aizpildām testa programmaparatūru.

Ierīces programmaparatūru mēs rakstīsim daudziem pazīstamajā Arduino programmēšanas vidē pēc tam, kad tai pievienosim atbalstu ATtiny mikrokontrolleriem, lejupielādēsim un izsaiņosim tos mapē Arduino / hardware.

Testa skice (es neredzu jēgu) vienkārši nolasīja ieejas signālu stāvokļus un parādīja tos pieejamajās izejās ar pievienotajām gaismas diodēm. Jo mums ir 4 ievades kanāli un tikai 2 izejas kanāli, mums bija jāpārbauda vairākos posmos.

Viss darbojās kā paredzēts, izņemot vienu - poga, kas savienota ar vienu kanālu ar zaļu LED, nebija nolasāma, un LED bija manāmi spilgtāks par sarkanu. Testera mērījumi parādīja, ka PB0 stāvoklī vairāk nekā 20 mA plūst kā izeja caur LED un tikai 2,1 V nokrīt uz tā. Un ieejas stāvoklī ar iekšējo pievilkšanos uz kājas tikai 1,74 V, kad tiek atlaista poga un 0,6 V, kad tā tiek nospiesta. Nav pārsteidzoši, ka nepārtraukti tiek lasīts 0. Zemsprieguma zaļā gaismas diode, pat nespīdējot, kad plūst mikroampēru strāva, izšķērdēja spriegumu uz kājas. Tagad ir skaidrs, kāpēc sākotnējā rakstā 2 gaismas diodes tika savienotas virknē.

Bet likt stulbi kastītē spīdēt otru LED kā balastu (un priekšējā panelī arī nevajag 2 identiskus) šķita nedaudz greizs risinājums. Es domāju, kā vēl jūs varat paaugstināt spriegumu LED ķēdē, un atcerējos Zener diodes CVC. Ja mēs virknē savienojam ar LED pretējo 2V Zener diodi (lai darbotos pareizi, CVC reversajā atzarā), tad mēs iegūstam tieši to, kas mums nepieciešams. Kad LED ir ieslēgts ar strāvu 10mA, Zener diode izlaužas un netraucē strāvas plūsmu, bet tikai stabilizē spriegumu, kas uz to krīt noteiktā līmenī. Vajag tikai nomainīt strāvu ierobežojošo rezistoru, pamatojoties uz to, ka jau vajag nospiest spriegumu Ures=5V-2.1V-2.0V=0.9V par 10mA, t.i. R = 90 omi. Un, kad kāja tiek pārslēgta uz ieeju ar pievilkšanos - CVC atzara stāvuma dēļ līdz pārejas pārtraukumam Zener diode ir līdzvērtīga augstas pretestības rezistoram un atkal nokritīsies par 2 V, paaugstinot spriegums uz MK kājas, kad poga tiek atlaista līdz 4V, kas jau ir nolasīts kā TRUE. Nospiežot pogu, kāju līdz 5V pievilks iekšējais rezistors ar aptuveni 40KΩ pretestību (pēc maniem aprēķiniem), bet līdz zemei ​​5KΩ rezistors (kas šuntēs LED ķēdi), t.i. tam būs tāds pats 0,6 V, un tas tiek uzskatīts par FALSE.
Zenera diodi ar nojume pielodēju virknē ar rezistoru un poga strādāja kā nākas.

Tagad ir kārta pārbaudīt PWM darbību, un arī šeit radās problēmas. Standarta Arduino komanda AnalogWrite (kāja, polsterējums) nevēlējās darboties. Tātad kaut kas nav kārtībā ar piemērotu bibliotēku. Noderīga vilnas datu lapa MK un internetā.

Tas izrādījās interesanti:
- uz tapām 5, 6 (PB0, PB1) var izvadīt 2 PWM kanālus (OC0A, OC0B), katrs darbojas ar savu aizpildījuma iestatījumu (bet vienādu frekvenci) no Timer 0;
- trešo PWM kanālu, kas darbojas no taimera 1, var izvadīt uz tapām 2, 3 (PB3, PB4), un tiešo PWM signālu (OC1B) var izvadīt uz 3. posmu, un tā apgriezto versiju (/OC1B) var izvadīt uz kāja 2. Bet izeja iet vai nu tikai uz 3. kāju, vai uz abiem uzreiz. Un mums ir nepieciešams PWM 2. kājā, vismaz apgriezti (mēs programmatiski to apgriežam atpakaļ), tāpēc mums būs jākonfigurē izeja 2 un 3 kājiņām, un signāls nenonāks uz 3 tikai tāpēc, ka tas ir pasludināts par ieeju.

Tātad, cik es saprotu, Arduino atbalsta pakotnē ATtiny PWM kanālu no Timer 1 var izvadīt tikai uz 3. posmu. Acīmredzot tā apgrieztās versijas izvade tika uzskatīta par pārmērīgu. Taimeris un PWM būs jākonfigurē pašam (skatiet kodu, funkciju PWM3_init), nevis izmantojiet AnalogWrite.

Es arī pamanīju, ka pārkonfigurējot Timer 1, zūd funkcijas millis () darbs - izrādās, ka iekšējam pulkstenim pēc noklusējuma tiek izmantots taimeris 1. Bet jūs varat pārkonfigurēt laiku uz Timer 0, izmantojot makro definīcijas failā Arduino\hardware\tiny\cores\tiny\core_build_options. h
/* Dažādu iemeslu dēļ 1. taimeris ir labāka izvēle Millis taimeram "85 procesoram. */ #define TIMER_TO_USE_FOR_MILLIS 0
Ko mēs izmantosim, jo ​​Timer 0 šajā projektā ir tikai pilnīgi bez maksas.

Bija arī jautājums par ātruma iestatīšanas diapazonu, kas nolasīts no mainīgā rezistora. Sākotnējās shēmas autors pievienoja 36K konstantu rezistoru virknē ar 10K mainīgo, acīmredzot pamatojoties uz to, ka ADC kods ietilptu diapazonā no 0 līdz 255. Tiešām sanāca 0-230, un nopeldēja maksimums. Un es vēlētos, lai precīzi 0–255 atbilstu pilnas skalas iestatījumam ar 8 bitu PWM. Lai to izdarītu, es atlodēju konstanti un nomainīju to ar + 5 V džemperi, ADC sāka nolasīt visu diapazonu, un mēs programmatiski izmetām 4 mazāk nozīmīgos bitus. Un kāpēc bija nepieciešama papildu informācija?

Pēc ievades/izvades kanālu pārbaudes mēs mikrokontrollerī ielādējam kaujas programmaparatūru, kas ierakstīta C valodā Arduino vidē, pamatojoties uz sākotnējās shēmas autora BASIC avotiem.

Programmas teksts

// Attiny85 pie 1MHz // Neaizmirstiet iestatīt taimeri 0 priekš millis utt! // Arduino\hardware\tiny\cores\tiny\core_build_options.h -> TIMER_TO_USE_FOR_MILLIS 0 #include // Savienojumi #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 SET A2 // Stāvokļi #define REŽĪMS_0define_WAIT_XXe MODEUAL #define MODE_SETUP_MAX 3 #define MODE_START 4 #define MODE_DRILLING 5 #define MODE_STOP 6 // Mainīgie baits Mode = MODE_MANUAL; baits ModeLedVal = LOW; baits SetPoint = 0; int CurrentFiltered = 0; baits CurrentU8 = 0; baitsAMButton; byteAMButtonFlt = LOW; statiskais baits ModeButton; statiskais baits ModeButtonFlt = AUGSTS; // statiskā baita sākotnējā vērtība ModeButtonOld = LOW; // aktivizēt izņēmumus startēšanas laikā statiskais baits SetupStep = false; neparakstīts garš BlinkFromMs; neparakstīts garais StartFromMs; neparakstīts garš ModeFromMs; baits W, W0, W1, W2, Wxx, Wmax, Uxx, Uon, Uoff; void PWM3_init() ( // PWM iestatīšana uz PB3 (2. kontakts), izmantojot 1. taimeri TCCR1 = _BV (CS11) | _BV (CS10); // prescaler /4 GTCCR = _BV (COM1B0) | _BV (PWM1B); // notīrīt OC1B, salīdzinot OCR1B = 255; // sākotnējais darba cikls 0% (izmantojiet apgriezto izvadi!) OCR1C = 255; // PWM frekvence = 1kHz (1 000 000 /4 /256) ) tukšs analogsWrite_PB3 (uint8_t duty//_value) ( analogWrite on PIN_B3 OCR1B = 255-duty_value; // polsterējums 0-255 (0-100%) (izmantojiet apgriezto izvadi!) baits ScanButton(void) ( // Lasīšanas poga, kas savienota ar vienu izeju ar LED // Ātrāka versija ar izejas atjaunošanu un neviens PWM neatspējo baita vērtību, port_bak; port_bak = PORTB; // saglabāt izvadi DDRB &= ~(1<intervāls))( \ outvar = varname;\ )\ )\ else (\ __lastChange_##varname=millis();\ ) // Inicializācija void setup() ( pinMode(MODE_LED_PIN, OUTPUT); // galvenais stāvoklis - pinMode indikācija (PWM_LED_PIN, OUTPUT); PWM3_init(); // iestatījumu atjaunošana no EEPROM, ja tie ir tur, ja (EEPROM.read(11)==0xAA) ( Wxx = EEPROM.read(0); Wmax = EEPROM.read(1) ; Uon = EEPROM.read(2); Uoff = EEPROM.read(3); ) else ( // noklusējuma vērtības ​​Wxx = 1; Wmax = 255; Uon = 255; // izslēdz sākšanu pirms noregulēšanas Uoff = 0 ; ) // Vienmērīgs paātrinājums līdz dīkstāvei vai manuālam iestatījumam, ja (digitalRead(AM_PIN)==HIGH) W0 = Wxx; else ( W0 = 255- (analogRead(SP_PIN) >> 2); // 0-255, mainīgs rezistors ir iegūts apgriezti ) 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)) ( // reti (ModeLedVal==HIGH) ? ModeLedVal=LOW: ModeLedVal=HIGH; BlinkFromMs = millis(); ) pārtraukums; case MODE_SETUP_MAX: if ((millis()-BlinkFromMs > 100)) ( // bieži (ModeLedVal==HIGH) ? ModeLedVal=LOW: ModeLedVal=HIGH; BlinkFromMs = millis(); ) pārtraukums; ) digitalWrite(MODE_LED_PIN, ModeLedVal); // Automātiskais/Manuālais pārslēgšanas slēdzis, atveras režīmā Auto un nolasa HIGH AMButton = digitalRead(AM_PIN); Debounce (AMButton, AMButtonFlt, 200); // Iestatījumu poga, nolasīta ar īpašu procedūru, jo apvienojumā ar LED, nospiežot, tas skan LOW ModeButton = ScanButton(); Debounce(ModeButton, ModeButtonFlt, 200); SetupStep = (ModeButtonFlt==LOW) && (ModeButtonOld==HIGH); ModeButtonOld = ModeButtonFlt; // Spinner SetPoint = 255- (analogRead(SP_PIN) >> 2); // 0-255, mūsu mainīgais rezistors izrādījās apgriezts // Motora strāva // Galvenais filtrs RC-ķēde 36K + 68nF (laika konstante 2,5 ms, nogriešanas frekvence 65 Hz) secībā y(i) = y(i-1 ) + alfa*(x(i)-y(i-1)) // (aka Exponential Moving Average, EMA) // filtrā pludiņa vietā izmantojam paaugstinātas precizitātes int, kam pārbīdām pa kreisi ar free 5 biti (zīme joprojām būs noderīga) // aizstāt reizinājumu ar daļskaitļa koeficientu alfa ar nobīdi pa labi // (6 = /64 = *0,016) 100 cikli - 80% no vērtības, 200 cikli - 96 % no vērtības, 369 cikli - 99,6% vērtība // (5 = /32 = *0,031) 50 cikli - 80% vērtība, 100 cikli - 96% vērtība, 179 cikli - 99,6% vērtība // (4 = /16 = *0,063) 25 cikli - 80% vērtība, 50 cikli - 96% vērtība, 90 cikli - 99,6% vērtība // (3 = /8 = *0,125) 12 cikli - 80% vērtība, 25 cikli - 96% vērtība, 45 cikli - 99,6% vērtība // perioda izpilde = ADC 110 µs + programma = 0,2 ms // laika konstante = 8 * 0,2 ms = 1,6 ms, nogriešanas frekvence 625 Hz CurrentFiltered = CurrentFiltered + (((analogRead(CUR_PIN))<< 5) - CurrentFiltered) >> 3); // izmantošanas ērtībai, iestatiet uz 0-255 // (pārbīde atpakaļ par 5 bitiem un 2 augstie biti tiek atmesti, jo viss interesantais (dīkstāvē)<1В) CurrentU8 = byte (CurrentFiltered >> 5); // ja >1В nejaukt ar mazajiem if ((CurrentFiltered >> 5) & 0x7F00) CurrentU8=255; // Stāvokļa mašīnas slēdzis (Mode) ( case MODE_MANUAL: // Manuāla vadība ar pagriezienu analogWrite_PB3(SetPoint); if (SetupStep) Mode = MODE_SETUP_XX; if (AMButtonFlt==HIGH) ( // Palēniniet, pārslēdzoties uz iekārtu analogWrite_PB3 (Wxx); StartFromMs = millis(); Mode = MODE_STOP; ) pārtraukums; gadījums MODE_WAITING: // Pagaidiet, līdz strāva palielinās, ja (CurrentU8 > Uon) ( // Start StartFromMs = millis (); analogWrite_PB3(Wmax); režīms = MODE_START; ) if (SetupStep ) Mode = MODE_SETUP_XX; if (AMButtonFlt==LOW) Mode = MODE_MANUAL; pārtraukums; case MODE_START: // Pagriezt uz augšu, ja (millis()-StartFromMs > 300) Mode = MODE_DRILLING; if (AMButtonFlt) =LOW) Režīms = MODE_MANUAL; pārtraukums; gadījums MODE_DRILLING: // Urbšana, gaida, kamēr strāva samazināsies, ja (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) // drošais režīms = MODE_WAITING; ) else ( StartFromMs = millis(); ) if (AMButtonFlt==LOW) Mode = MODE_MANUAL; pārtraukums; case MODE_SETUP_XX: // Tukšgaitas iestatījums Wxx = SetPoint; analogWrite_PB3(Wxx); if (SetupStep) ( Uon = baits(1.1 * CurrentU8); EEPROM.write(0,Wxx); EEPROM.write(2,Uon); Mode = MODE_SETUP_MAX; ) pārtraukums; case MODE_SETUP_MAX: // Maksimālā RPM iestatīšana Wmax = SetPoint; analogWrite_PB3(Wmax); if (SetupStep) ( Uoff = baits(1.1 * CurrentU8); EEPROM.write(1,Wmax); EEPROM.write(3,Uoff); EEPROM.write(11.0xAA); // Brake analogWrite_PB3(Wxx); StartFromMs = millis(); Mode = MODE_STOP; ) pārtraukums; noklusējuma: režīms = MODE_WAITING; atgriešanās; ) )


Mēs savienojam 5 vatu 2,2 omu rezistoru kā šuntu. Lai aizsargātu ķēdi no induktīviem sprieguma pārspriegumiem PWM aizmugurējā malā, paralēli motoram pievienojam SS34 Schottky diodi un, lai novērstu traucējumus no komutācijas tinumiem, 100nF kondensatoru. Un mēs sākam testēšanu, lai kontrolētu sējmašīnas motoru.

Nekavējoties izrauj nikno PWM kaucienu ar frekvenci 4KHz (1MHz / 256). Pievienojam /4 dalītāja iestatījumu - uzreiz jutās labāk, lai gan čīkstēšana nav pārgājusi, bet nez kāpēc 1KHz ir daudz vieglāk paciest pat pie ilgstošas ​​darbības.

Manuālajā režīmā motora apgriezienu skaits parasti tiek regulēts par 0-100%, un atgriezeniskās saites ķēdes automātiskajā ADC tas visu laiku nolasa MAX vērtību un nekas nedarbojas. Pa ceļam ievēroju, ka dēlis skaļi pīkst pat tad, kad motors ir izslēgts. wtf?

Mēs paņemam testeri, izraujam osciloskopu un sākam pētīt, ko mēs izsniedzam un ko mēs iegūstam. Un mēs atlaižam žokļus. Šuntā tā vietā, lai viegli slīpētu strāvas viļņus caur induktivitāti PWM impulsu sākumā, mēs redzam desmitiem voltu adatas. Tas nozīmē, ka caur šuntu plūst desmit ampēru impulsa strāva! Un pat ar izslēgtu dzinēju. Nav pārsteidzoši, ka dēlis zvanīja. Bet kas aizver ķēdi bez dzinēja? Mazs 100nF kondensators! Tas var un nomāc traucējumus, pārslēdzot tinumus, bet pagaidām tas organizē īstermiņa īssavienojumu katrā PWM periodā! Secinājums - trokšņu slāpēšanas kondensators nav savietojams ar PWM vadību un vadību, izmantojot šuntu, tas ir jānoņem.

Un tad man ienāk prātā, ka šie augstsprieguma pārspriegumi iet gandrīz tieši uz Tīkla ADC (jo ir amplitūdas detektors, tad uz kājas esošais kondensators adatā tiek uzlādēts līdz maksimālajam spriegumam un droši uzglabā, jo izlāde notiek tikai caur diodes noplūdi). Šķiet, ka Tinka vēl nemirs, bet kā ar viņas kāju? Instrumenti rāda pastāvīgu spriegumu uz kājas 5.2V, augstāku par barošanas spriegumu, bet kur palika pārējais? Atgādinām, ka, lai cīnītos pret pārspriegumiem, tam ir speciāli apmācītas diodes “+” un “-” barošanas blokiem, kas lieko novada barošanas blokā. Bet iebūvētās diodes ir vājas, un jums nevajadzētu uz tām daudz rēķināties.

Noņemam sasodīto kondensatoru, ar kāju izmērām spriegumu - strādā! Uzticams MK ražo Atmel! Acīmredzot tas glāba, ka kondensatoru kapacitāte bija zema, tie sūknēja nelielu lādiņu.

Bez kondensatora adatas pazuda, dēlis pārstāja atskaņot mūziku, šķiet, ka kāja patiešām mēra PWM impulsa strāvas amplitūdu. Mēs sākam iestatīšanas procedūru un mēģinām urbt. Šķiet, ka viss ir kā nākas - pie slodzes pieliek apgriezienus, un atiestata, kad urbis iziet. Bet ne tikai - vairākas reizes minūtē tas spontāni paātrina un palēnina ātrumu bez slodzes. Kāpēc nav skaidrs, instrumenti neko nerāda. Vai nu kāja ir apdegusi, vai arī vadu kapacitāte ģenerē neredzamas adatas, piemēram, konderi, vai arī traucē viens un tas pats kolektors.

Tad nolēmu radikāli risināt problēmu, jo pamanīju, ka pīķa detektors netiek izmantots nevienā citā shēmā. Gluži pretēji, caur RC filtriem izietās strāvas integrālā vērtība tiek kontrolēta visur. Un šādi mērījumi ir vienkārši nejutīgi pret traucējumiem atsevišķu emisiju veidā. Mēs mainām diodi pret rezistoru - un amplitūdas detektors pārvēršas par zemas caurlaidības filtru.

ADC izmainītais spriegums nekavējoties samazinājās par lielumu - darba spriegums ir daudz zemāks par amplitūdu signālam maigu viļņu veidā ar pauzēm starp tiem. Nācās noķert apmēram 0,2 V spriegumu. Protams, bija iespēja palielināt šunta pretestību, bet vai šim nolūkam mēs nožogojām PWM, lai sasildītu atmosfēru. Un ar lielu PWM pildījumu un motora slodzi jūs varat iegūt pārspriegumu. Tāpēc jums būs jāstrādā ar zemu U tukšgaitu.

Šķiet, ka arī reakcija uz slodzi ir palēninājusies. Paātrinājums sākas apmēram pēc pussekundes, taču es tajā neredzu lielu problēmu - tikai sējmašīna iestatīsies un izies cauri vara zemā ātrumā. Un vairs nekādu viltus startu. Jūs varat strādāt.

Ierīces galīgā shēma:


Ierīce tika uzstādīta korpusā, kas bija hermētiski noslēgta elektroinstalācija “Tuso plastmasas elektroinstalācijas kārba bez blīvslēgiem 120x80x50 mm, IP55 pelēka 67052 Ruvinil Russia”. Es gribēju atrast plakanāku, bet neatradu neko līdzīgu 110 * 60 * 30. Lai nestādītu vītnes uz galda, es sagriezu regulatoru ar barošanas bloku vienā veselumā. Ķieģelis izrādījās cēls, bet mēs to pat nevaram nēsāt kabatā. Un, lai gan pēc pāris desmitu caurumu izurbšanas nebija manāma atslēgas lauka, šunta un stabilizatora uzkaršana, es izurbu nelielu ventilāciju apakšā un aizmugurējā sienā.







Kopš tā laika mašīna ar regulatoru ir piedalījusies vēl 2 dēļu izveidē (var redzēt, cik vajadzēja urbt pēc vārdiem "AVR Fusebit Doctor". Esmu ļoti gandarīts par viņa darbu.

Vēlos arī atzīmēt, ka karbīda urbjiem ar Ali ir 3,2 mm kāts, bet uzmavas bija tikai 3,0 un 3,5 — tās neiederas vienā urbjmašīnā, bet nespiežas otrā. Uztinu vara stiepli uz urbja un kaut kā iespraudu 3,5 mm, bet tas bija neglīts. Ja kāds ir saskāries ar 3,2 diametru ar 6 mm diametru (visur, izņemot Dremel, ar asti noslīpētu līdz 5 mm), pastāstiet man.

Mainot urbjus, regulēšanas procedūra ir jāatkārto - acīmredzot "izdilis" parastās urbjmašīnas un karbīda urbjmašīnas ar sabiezinātu kātu atšķirīgais inerces moments ietekmē motora strāvu. Bet tas tiek darīts ātri un netraucē. Tie, kas vēlas, programmaparatūrai var pievienot urbju profilu saglabāšanu :)

Vairākkārt nācis pie ieteikuma urbt dēļus zem ūdens slāņa, lai neelpotu stikla šķembas. Es nevarēju dabūt. Precīzi novietojiet urbi, kad tas ir augsts, refrakcija ūdenī traucē, acs šķībs. Un, kad urbis iekļūst ūdenī, sāk plūst viļņi un nekas nav redzams. Vai ir nepieciešams iestatīt apturēto sējmašīnu un pēc tam to ieslēgt? Rezultātā es vienkārši noliku blakus bļodu ar ūdeni un periodiski iemērcu tajā dēli - lai samitrinātu un nomazgātu zāģu skaidas. Šajā gadījumā zāģu skaidas ir mitras un arī nelido, tās tiek savāktas konusā virs bedres.

Un vēl viena liriska atkāpe, par mazajiem stiprinājumiem.

Nolēmu ierīcē ievietot barošanas savienotāju tipa “DS-225, Strāvas ligzda uz paneļa”. Tās stiprināšanai bija nepieciešamas skrūves ar uzgriežņiem ar vītni 2,5 mm. Skapī nekas piemērots netika atrasts, un tad atcerējos, ka citā priekšmetā bija vajadzīgas 2mm skrūves. Tāpēc ir vērts papildināt stiprinājumu kolekciju, lai nākamreiz rieksta dēļ nelidotu uz otru reģiona galu. Būvniecības veikalos nekas mazāks par M3 nesanāca, tāpēc jāmeklē specializētie.

Pirmais salīdzinoši ērtais veikals bija ķēde
Iekšā acis bēga no visādām noderīgām lietām, bet tā ir nepaveicies - mazākās skrūves bija tikai vienāda garuma M2,5, bet uzgriežņi un paplāksnes tām nav un nekad nenotiek! Pārsteidza riekstu izpārdošana pa gabalu par 2r/gab un visu nopirkto sabēršana vienā maisā-kreklā (dažādiem izmēriem mazo maisiņu nebija). Atkal ir neizdevīgi ņemt dažādu izmēru rezervi.

Izglāba cits stiprinājumu veikals -
Šeit patiešām ir viss noliktavā, sākot no M1.6, ar dažādām spraugām un galvām, tiek pārdots pa gabalu un pēc svara, un par cenu, kas ir par vienu pakāpi zemāku nekā iepriekšējam konkurentam. Bet jums vienkārši nekavējoties jādodas uz noliktavas veikalu Plehanova ielā, pretējā gadījumā es vispirms devos uz veikalu netālu no Perovo metro stacijas un biju ļoti pārsteigts par paziņoto cenu. Un izrādījās, ka viņiem ir tikai nerūsējošais tērauds, un parastajiem stiprinājumiem jums ir jādodas uz rūpniecisko zonu uz šķērsstieņiem.

Plānoju pirkt +67 Pievienot pie favorītiem Patika apskats +76 +152

Ir milzīgs skaits klasisko tiristoru un triac regulatoru ķēžu, taču šis kontrolieris ir izgatavots uz modernu elementu bāzes un turklāt bija pirmās fāzes, t.i. tas neizlaiž visu tīkla sprieguma pusviļņu, bet tikai daļu no tā, tādējādi ierobežojot jaudu, jo triac atvēršanās notiek tikai vēlamajā fāzes leņķī.

Pirmo reizi ieslēdzot ķēdi, segmenta indikatorā iedegas cipars 0. Ieslēgšana un izslēgšana tiek veikta, vienlaicīgi nospiežot un turot divas mikroslēdža pogas. Regulēšana vairāk vai mazāk – katrs spiedis atsevišķi. Ja nenospiežat nevienu no pārslēgšanas slēdžiem, tad pēc pēdējās nospiešanas, pēc divām stundām, regulators pats izslēgsies, indikators mirgos līdz tam pēdējā elektroenerģijas patēriņa darba līmeņa stadijā.

Brīdī, kad ierīce ir atvienota no tīkla, tiek saglabāts pēdējais izejas jaudas līmenis, kas tiks automātiski iestatīts nākamajā ieslēgšanas reizē. Regulēšana tiek veikta diapazonā no 0 līdz 9 un tālāk no A līdz F. Tas nozīmē, ka kopā ir 16 regulēšanas soļi.

Augšējā fotoattēlā radiators ir diezgan liels, dizains ļauj ievietot mazāku iespēju, bet man nebija citas. Kad es ieslēdzu ierīci pirmo reizi, manā displejā mirgoja 0, ķēde nereaģēja uz pogu nospiešanu. Nomainot barošanas avota kondensatoru ar nominālo vērtību 1000 mikrofaradu, problēma pazuda.

Iespiedshēmas plate formātā un mikrokontrollera programmaparatūra tiek ievietota vienā arhīvā iepriekš norādītajā saitē.

Ķēde tiek izmantota vienmērīgai jaudas kontrolei slodzē. Kontroles metode ir balstīta uz triac fāzes kontroles metodi. Tās būtība ir izlaist daļu no maiņstrāvas tīkla sprieguma pusperioda. Slodzei pievadītā strāva ir proporcionāla saņemtā signāla integrālim. Dizaina pamatā ir mikrokontrolleris PIC16F1823.

Ierīce atbalsta aktīvās (kvēlspuldzes, sildītāju) un induktīvās slodzes. Mikrokontrolleris tiek iedarbināts no iekšējā oscilatora. Sinhronizācijas signāls ar tīklu nāk no taisngrieža tilta uz mikrokontrollera iekšējā komparatora ieeju caur filtru uz R10, C5, R9, R8, C3. Salīdzinātāja atsauces spriegums nāk no mikrokontrollera iekšējā DAC un ir aptuveni 0,6 V, kas tiek iestatīts MK konfigurācijas laikā. Diode D6 tiek izmantota, lai novērstu kapacitātes C6 ietekmi uz sinhronizāciju. Norāde tiek veikta uz E30561 ar kopēju katodu.

Strukturāli ierīce ir samontēta uz divām iespiedshēmu platēm. Vienā ir indikators un vadības pogas, bet otrā - MK, barošanas avots un triac. Dēļi ir savienoti ar MGTF vadu.

Ar triac radiatoru (HS-135-38), kā parādīts attēlā, maksimālā slodzes jauda ir aptuveni 500 W. Attiecīgi šim radiatoram ir izveidots sēdeklis uz iespiedshēmas plates.

MK programmaparatūra ir izveidota MPLAB vidē C valodā kompilatoram HI-TECH PICC 9.83. Jūs varat lejupielādēt iespiedshēmas plates, programmaparatūru un MPLAB projektu no iepriekš esošās saites.

Dizains tiek regulēts, izmantojot triac tipa BT138. Kuru vadība tiek veikta ar MC starpniecību. Digitālais LED displejs parāda, cik procentu triac ir atvērts pašreizējā laikā. Ķēdes loģisko daļu darbina barošanas avots, kura pamatā ir sprieguma regulators DA1 7805.

Šī shēma ir lieliski piemērota izejas jaudas atsevišķi regulēšanai divām dažādām slodzēm, piemēram, sildītājiem, lampām, elektromotoriem. Maksimālā slodzes jauda ir atkarīga no taustiņu veida, kas to pārslēdz. Zemāk redzamajā diagrammā tranzistori KT819 darbojas kā tādi, taču var būt arī citas iespējas, atkarībā no abu slodžu nepieciešamās jaudas. Ierīce ģenerē impulsa signālus, kas iet uz jebkuru no strāvas slēdžiem.

Ierīce ģenerē impulsu signālus, to impulsu platumu var regulēt 256 vienādos grādos. Lai kontrolētu ķēdi, tiek izmantotas mainīgas pretestības, kas savienotas ar MK RV3 un RV4 portiem, kas darbojas ar ADC. ATtiny13 mēra mainīgā rezistora vērtību un iestata izejas impulsa signāla impulsa platumu pēc slēdža, kas kontrolē strāvas padevi noteiktai slodzei. Tas ir, pagriežot mainīgās pretestības pogu, tiek regulēta jauda. Šāds regulējums, salīdzinot ar iestatījumu ar pogām "mazāk" un "vairāk", ir ērtāk lietojams, pateicoties tā ātrumam. Ierīces programmēšanai ir ISP6 savienotājs. Programmējot mēs iestatām drošinātājus pēc noklusējuma, strādājot ar iekšējo pulksteņa RC ģeneratoru ar frekvenci 9,6 MHz. Arhīvs ar programmaparatūras avota kodu, mēs to ņemam no iepriekš minētās saites.

Elektromotoru apgriezienu regulēšana mūsdienu elektroniskajā tehnoloģijā tiek panākta nevis mainot barošanas spriegumu, kā tas tika darīts iepriekš, bet gan pieliekot elektromotoram dažāda ilguma strāvas impulsus. Šiem nolūkiem tie kalpo, kas nesen ir kļuvuši ļoti populāri - PWM ( modulēts impulsa platums) regulatori. Ķēde ir universāla - tas ir arī motora ātruma regulators, un lampu spilgtums un strāvas stiprums lādētājā.

PWM kontrollera ķēde

Norādītā shēma darbojas labi, pievienots.

Nemainot ķēdi, spriegumu var paaugstināt līdz 16 voltiem. Iestatiet tranzistoru atkarībā no slodzes jaudas.

Var salikt PWM regulators un saskaņā ar šādu elektrisko ķēdi ar parasto bipolāro tranzistoru:

Un, ja nepieciešams, kompozītmateriāla tranzistora KT827 vietā ievietojiet lauku IRFZ44N ar rezistoru R1 - 47k. Polevik bez radiatora, ar slodzi līdz 7 ampēriem, nesasilst.

PWM kontrollera darbība

NE555 mikroshēmas taimeris uzrauga kondensatora C1 spriegumu, kas tiek noņemts no THR tapas. Tiklīdz tas sasniedz maksimumu, tiek atvērts iekšējais tranzistors. Kas saīsina DIS tapu ar zemi. Šajā gadījumā izejā OUT parādās loģiskā nulle. Kondensators sāk izlādēties caur DIS un, kad spriegums pāri tam kļūst par nulli, sistēma pārslēgsies pretējā stāvoklī - pie izejas 1 tranzistors ir aizvērts. Kondensators atkal sāk uzlādēties un viss atkārtojas vēlreiz.

Kondensatora C1 uzlāde notiek pa ceļu: “R2->augšdelms R1 -> D2”, un izlāde pa ceļu: D1 -> apakšējā plecs R1 -> DIS. Kad mēs pagriežam mainīgo rezistoru R1, mēs mainām augšējo un apakšējo roku pretestību attiecību. Kas attiecīgi maina impulsa garuma attiecību pret pauzi. Frekvenci galvenokārt nosaka kondensators C1, un tā ir nedaudz atkarīga arī no pretestības R1 vērtības. Mainot uzlādes/izlādes pretestības attiecību, mēs mainām darba ciklu. Rezistors R3 nodrošina uzvilkšanas izvadi līdz augstam līmenim - tātad ir atvērta kolektora izeja. Kas pati par sevi nespēj uzstādīt augstu līmeni.

Jūs varat ievietot jebkuras diodes, kondensatorus ar aptuveni tādu pašu vērtību kā diagrammā. Novirzes vienas lieluma robežās būtiski neietekmē ierīces darbību. Piemēram, pie 4,7 nanofaradiem, kas iestatīti C1, frekvence samazinās līdz 18 kHz, taču tā ir gandrīz nedzirdama.

Ja pēc ķēdes montāžas atslēgas vadības tranzistors uzsilst, visticamāk, tas pilnībā neatveras. Tas ir, tranzistoram ir liels sprieguma kritums (tas ir daļēji atvērts), un caur to plūst strāva. Rezultātā apkurei tiek izkliedēta lielāka jauda. Ir vēlams paralēli izvadīt ķēdi ar lieliem kondensatoriem, pretējā gadījumā tas dziedēs un slikti regulēs. Lai nesvilptu - paņem C1, svilpe bieži nāk no viņa. Kopumā darbības joma ir ļoti plaša, īpaši daudzsološa būs tā izmantošana kā dimmere lieljaudas LED lampām, LED sloksnēm un prožektoriem, bet par to vairāk nākamreiz. Raksts tapis ar auss, ur5rnp, stalker68 atbalstu.

Ļoti bieži ir jāspēj regulēt strāvu, kas plūst caur lampām vai sildelementiem. Tā kā tiem ir pretestības slodze, vienkāršākais risinājums ir salikt nelielu PWM (no angļu valodas PWM - impulsa platuma modulācija) regulatoru. Tā kā vienkāršas shēmas, kuru pamatā ir NE555 taimeri, neinteresēja, tika nolemts izstrādāt un salikt mūsu pašu, nedaudz līdzīgu.

Ķēde, neskatoties uz mikrokontrollera PIC18LF2550 klātbūtni, ir ļoti vienkārši atkārtojama, un to var nosacīti sadalīt 3 daļās:

PWM ģenerators

Mikrokontrolleris ģenerē skaidrus vajadzīgās formas un darba cikla impulsus, kas ievērojami vienkāršo ķēdi. Ir divas pogas, lai palielinātu un samazinātu jaudu. Tie iet uz PIC18LF2550 mikroshēmas 3. un 5. tapām. Atkarībā no impulsa platuma - LED mirgo lēnāk vai ātrāk, lai jūs varētu vizuāli novērtēt darba ciklu. Ja LED spīd pilnībā - jauda ir 100%, un, ja tā nodziest, tad darba cikls ir 0%.

mikrokontrollera barošanas avots

MK stabilizators ir 3,3 volti, tāpēc atkarībā no izejas tranzistora varat izmantot strāvas avotu no 3,7 līdz 25 voltiem. Pārslēgšanas frekvence ir 32 kHz, un impulsa platums ir sadalīts 256 soļos, ieskaitot pilnu ieslēgšanu un izslēgšanu.

Slodzes slēdzis

MOSFET tranzistora draiveris ir parastais 2N3904. Pats jaudas tranzistors var būt jebkurš piemērots N-kanāla MOSFET, ne vienmēr kā 80NF55L ķēdē.

Šī 4 kanālu 8 bitu PWM kontrollera versija ir izstrādāta, izmantojot mikrokontrolleri ATmega16. Ierīce satur RS232 saskarni datora vadībai, saskarni 12 taustiņu tastatūrai un 4 analogos 10 bitu kanālus potenciometru pievienošanai. Lai parādītu pašreizējos darbības režīmus un parametrus, ir 4 rindu LCD displejs. Turklāt PWM kontrollerim ir: 4 LED izejas vadības režīmu indikācijai (var izmantot kā vispārējas nozīmes izejas), 3 vispārējas nozīmes izejas.

Ierīcei ir ļoti elastīgi iestatījumi. Piemēram, PWM kanālu parametrus var vadīt ar komandām no datora, izmantojot analogos kontrollerus (potenciometrus) vai izmantojot tastatūru (ar lietotāja interfeisu, kas tiek parādīts LCD indikatorā). Arī pats LCD indikators ir vadāms caur RS232, pašreizējo iestatījumu un režīmu attēlošana iespējama ciparu vai grafiskā formātā.

Ierīces galvenās īpašības:

  • 4 kanālu PWM, izšķirtspēja 8 biti, PWM frekvence - 31 kHz;
  • RS232 interfeiss datora vadībai un uzraudzībai;
  • vienkārša shēmas konstrukcija ar minimālu ārējo elementu skaitu;
  • 12 pogu tastatūra;
  • analogās regulēšanas iespēja;
  • līdz 7 vispārējas nozīmes izvades līnijām;
  • 4 rindu LCD displejs;
  • LCD displeja vadība, izmantojot seriālo interfeisu;
  • lietotāja izvēlne;
  • elastīgi iestatījumi;
  • FIFO buferu programmatūras ieviešana, lai paātrinātu darbu.

Universālas izejas (ieskaitot LED indikatorus) tiek vadītas no datora (RS232), lietotājam ir arī iespēja nolasīt taustiņu nospiešanas vēsturi uz tastatūras (pēdējie 32 taustiņsitieni, vai uzreiz pēc jebkura taustiņa nospiešanas).

Pateicoties šādiem elastīgiem iestatījumiem, izvēloties atbilstošo iestatījumu, PWM kontrolleri var izmantot dažādās lietojumprogrammās un kā atsevišķu ierīci. Dizainā tiek izmantots mikrokontrolleris ATmega16, minimālais ārējo elementu skaits, jo visu kontroli un pārvaldību veic pats mikrokontrolleris. Lietotājam ir iespējams izmantot tikai nepieciešamās sastāvdaļas, piemēram, LCD indikatoru, ja tas nav nepieciešams, var izlaist.

Ierīces loģiskā diagramma.

Ierīces shematiskā diagramma

Ķēdes dizains ir ļoti vienkāršs. Mikrokontrollera taktēšanai tika izvēlēts 8 MHz kvarca rezonators, uz integrēta stabilizatora LM7805 samontēts +5,0 V barošanas avots, 10 μH induktivitāte un 100 nF kondensators veido filtru, kas novērš traucējumu iekļūšanu, ieslēdzot analogo. ķēdēm. MAX232 loģiskā līmeņa pārveidotājs tiek izmantots, lai ieviestu seriālo interfeisu. LCD indikators, kura pamatā ir Hitachi mikroshēmojums (HD44780) ar izšķirtspēju 20x4 vai 40x2. Indikatora fona apgaismojuma vadības bloks ir ieviests tranzistorā MJE3055T (ir iespējams izmantot lētāku analogu). Tastatūras matrica, standarta, 4×3.

Pēc ieslēgšanas mikrokontrolleris iestata pēdējos saglabātos parametrus EEPROM: PWM kanāla vadības režīmus (analogā vadība, seriālā interfeisa vadība, tastatūras vadība), parametru displeja formātu uz indikatora (seriālā interfeisa vadība, PWM vērtību displejs, analogo vērtību displejs), kā arī vispārējas nozīmes izvades līniju stāvokli, displeja fona apgaismojuma stāvokli.

PWM ģenerēšana vienmēr ir pieejama visos četros kanālos pēc ieslēgšanas. Lietotājs var iestatīt visus PWM kontrollera parametrus, izmantojot seriālo interfeisu, nosūtot vadības komandas, un pēc tam saglabāt visus veiktos iestatījumus mikrokontrollera EEPROM. Pilns komandu un vērtību saraksts ir sniegts zemāk pielikumā. Seriālo interfeisu var izmantot arī, lai nosūtītu analogās vadības kanālu pašreizējās vērtības (pēc pieprasījuma).

Uz indikatora, pieslēdzot barošanas spriegumu, tiek parādīts sveiciens (lietotājs var mainīt sveicienu), un pēc tam saskaņā ar pašreizējiem iestatījumiem tiek parādīti pašreizējie parametri un PWM izeju vērtības, vērtības. no analogajiem kanāliem.

Ierīces praktiskas ieviešanas un dažādu ārējo ierīču PWM vadības piemērā ir dota šāda diagramma. Šajā piemērā parādīti shēmas risinājumi savienojumam ar 4 ventilatora motora PWM kanāliem, jaudīgu saimes LED, PWM-sprieguma pārveidotāju uz LM358 darbības pastiprinātāja. Un arī, lai varētu pārbaudīt vispārējas nozīmes izvades līnijas, ir pievienotas gaismas diodes.

PWM kontrollera izejas posmu ieviešanas piemērs

Notiek ielāde...Notiek ielāde...