LED girliandos grandinė ant mikrovaldiklio. LED girlianda, skirta MK Attiny13. Mygtuko prijungimas prie mikrovaldiklio

Papuošimo būdai Kalėdų eglutė yra daug, čia yra vienas iš jų.

1 paveiksle parodyta diagrama Naujųjų metų girlianda. Jame yra keturi kanalai, prie kurių prijungti nuosekliai sujungti šviesos diodai, kaip parodyta 2 pav.

Grandinės šerdis yra PIC16F628A mikrovaldiklis. Mikrovaldiklis veikia pagal algoritmą, parodytą 3 paveiksle. Programos kodas parašytas asamblėjos kalba, žr. sąrašą Garland\16F628ATEMP.ASM.

Visas mikrovaldiklio PIC16F628A programavimo ir derinimo grandinėje ciklas buvo atliktas naudojant (integruota kūrimo aplinka), MPASM v5.22 kompiliatorius (įtrauktas į MPLAB IDE v8.15) ir MPLAB ICD 2 (in-circuit debugger - “ Debugger“). Tiems, kurie neturi aukščiau išvardintų įrankių, bet turi savo programą darbui su HEX failais ir kitą programuotoją, atitinkamame projekte galite rasti failą 16F628ATEMP.HEX. Techninę mikrovaldiklio specifikaciją galite rasti svetainėje ir.

Mikrovaldiklis DD1 turi funkcinius išėjimus RB4 – RB7, prie kurių prijungti stiprinantys MOSFET lauko tranzistoriai VT1 – VT4. Tranzistorių technines specifikacijas galite rasti svetainėje. Tranzistorių nutekėjimai jungiami prie įstūmimo gnybtų X2 – X5. Apkrovos maitinimo įtampa nustatoma grandinės maitinimo šaltiniu, kuris yra prijungtas prie jungties X1. Didžiausia įjungiama srovė kanale yra 0,5 A. Mikrovaldiklis DD1 neturi priverstinio atstatymo funkcijos. Laikrodžio dažniui generuoti mikrovaldiklis naudoja lusto laikrodžio generatorių. Prietaisas gali būti naudojamas temperatūros diapazone nuo –40 °C iki +85 °C.

Įrenginys maitinamas iš kintamos arba tiesioginės įtampos šaltinio, prijungto prie jungties X1. Nominali įtampa maitinimo šaltinis 12 V. Vardinė maitinimo šaltinio srovė priklauso nuo apkrovos ir yra 0,5 - 2 A. Maitinimo stabilizavimui naudojama įprastinė grandinė: diodinis tiltelis VD1, linijinis stabilizatorius DA1, filtrų kondensatoriai C1 - C4.

Mikrovaldiklis yra užprogramuotas su 3 apšvietimo efektais, paremtais „bėgimo žibintų“ efektu.
1) Girliandos pakaitomis užsidega ir užgęsta viena kryptimi ir kartojasi kita kryptimi.
2) Girliandos užsidega po vieną ir užsidegus visoms keturioms girliandoms pradeda po vieną užgesti ta pačia kryptimi, ir tas pats kartojasi atvirkštine tvarka.
3) 1 ir 2, 3 ir 4 girliandos pakaitomis mirkteli viena į kitą. Mikrovaldiklis užprogramuotas atlikti iš anksto nustatytą apšvietimo efekto pakartojimų skaičių. Verta paminėti, kad laiko intervalas tarp girliandų apšvietimo kinta (didėja, pasiekia piką, o paskui krenta), tai yra, matomas „laikino sūpynės“ efektas. Norint geriau parodyti apšvietimo efektus, girliandos (kaip jos sunumeruotos diagramoje) turi būti išdėstytos eilės tvarka toje pačioje plokštumoje. IN tokiu atveju eglės puošimas nuo šaknų iki viršūnės (vertikaliai, dalijant eglę į keturis sektorius girliandoms), atitinkamai nuo 1 iki 4 girliandų.

Girliandų maitinimas jungiamas prie maitinimo šaltinio, prijungto prie jungties X1, todėl reikia paskaičiuoti nuosekliai sujungtus šviesą skleidžiančius elementus (LED, kaitinamosios lempos). Bendra maitinimo įtampa randama iš nuosekliai sujungtų šviesą spinduliuojančių elementų įtampų sumos. Pavyzdžiui, vienoje girliandoje bus 6 nuosekliai sujungti ryškūs šviesos diodai, skirti 2 - 2,5 V įtampai. Kadangi šviesos diodai sunaudoja 20 mA, tai įmanoma lygiagretus ryšys nuosekliai sujungti šviesos diodai eilėmis.

Dalių montavimas yra vienpusis. Skylių dydis svyruoja nuo 0,7 mm iki 3 mm. Aplanke rasite spausdintinės plokštės gamybos failus.

Spausdintinė plokštė parodyta 4 pav. Dalių vieta parodyta 5 pav.

Šiame įrenginyje galima pakeisti šias dalis. Mikrovaldiklis DD1 iš PIC16F628A-I/P-xxx serijos su 20 MHz taktiniu dažniu DIP18 pakete. Įtampos stabilizatorius DA1 buitinis KR142EN5A (5 V, 1,5 A). MOSFET lauko tranzistoriai ir VT1 - VT4 (N kanalas) I-Pak (TO-251AA) pakuotėje, tinka diagramoje nurodytų nominalų analogai. Diodinis tiltelis VD1, kai darbinė įtampa ne mažesnė kaip 25 V ir srovė ne mažesnė kaip 2 A. Maitinimo jungtis X1 yra panaši į nurodytą diagramoje su centriniu kontaktu d = 2,1 mm. Nepoliniai kondensatoriai C1 ir C2, kurių vardinė vertė 0,01 – 0,47 µF x 50 V. Elektrolitinių kondensatorių C3 ir C4 talpa yra vienoda, o įtampa ne žemesnė nei nurodyta diagramoje. Įvairiaspalviai šviesos diodai VD1 – VD6 2 – 2,5 V įtampai.

Radioelementų sąrašas

Paskyrimas Tipas Denominacija Kiekis PastabaParduotuvėMano užrašų knygelė
DD1 MK PIC 8 bitų

PIC16F628A

1 Į užrašų knygelę
DA1 Linijinis reguliatorius

L7805AB

1 KR142EN5A Į užrašų knygelę
VT1-VT4 MOSFET tranzistorius

IRLU024N

4 Į užrašų knygelę
VD1 Diodinis tiltas2W10M1 Į užrašų knygelę
C1 Kondensatorius0,1 µF1 Į užrašų knygelę
C2 Kondensatorius0,1 µF1 Į užrašų knygelę
C3 100uF 10V1 Į užrašų knygelę
C4 Elektrolitinis kondensatorius220uF 25V1

Iki Naujųjų metų liko visai nedaug, o parduotuvėse ir turguose galima rinktis iš daugybės įvairiausių kiniškų girliandų. Visa tai gerai, bet aš nusprendžiau pats, naudodamas mikrovaldiklį, pasidaryti Kalėdų eglutės Naujųjų metų girliandą.

Pirma, man tiesiog norėjosi kūrybos, o antra, mano pačios kurta girlianda kažkaip linksmiau ir linksmiau šviečia nei pirktinės.
Girliandas surinktas ant ATmega8 mikrovaldiklio ir susideda iš 42 šviesos diodų.
Šio projekto autorius yra Dmitrijus Bazlovas (Dima9350) ir jis parašė kodą mikrovaldikliui, kuriame yra 11 efektų (programų) įrenginiui realizuoti, iš kurių 8 programos mėlyniems, raudoniems ir geltoniems šviesos diodams (pagal viršutinės eilutės schemą ), ir 3 efektai (programos ) baltiems šviesos diodams (apatinė šviesos diodų eilutė), tarp kurių yra krintančios snaigės efektas.
Girliandos maitinimo įtampa yra nuo 7 iki 15 voltų (galima iki 24 voltų, jei ant stabilizatoriaus įdėsite nedidelį radiatorių), arba jei be įtampos reguliatoriaus L7805, tada 5 voltai, pavyzdžiui: kompiuterio USB prievadas . Girliandos ilgis autoriaus variante buvo vienas metras. Žemiau yra vaizdo įrašas apie autoriaus girliandą, maitinamą iš USB prievado.

Prietaiso grandinę sudaro:
- ATmega8 mikrovaldiklis;
- lustų rezistoriai šviesos diodams 300-330 omų - 21 vnt;
- lustas L293:
- 2 kondensatoriai 16 voltų 10uF;
- 5 voltų stabilizatorius - 7805.
Mikrovaldiklio saugiklių bitai yra nustatyti į 8 MHz iš vidinio generatoriaus.

1 paveikslas.
Girliandų diagrama.

Girliandos spausdintinė plokštė.

2 pav.
Girliandos spausdintinė plokštė.

Išvaizda surinkta girlianda ant spausdintinė plokštė iš detalių pusės.

3 pav.
Surinktos girliandos išvaizda ant spausdintinės plokštės iš dalių pusės.

Surinktos girliandos išvaizda ant spausdintinės plokštės iš montavimo pusės.

4 pav.
Surinktos girliandos išvaizda ant spausdintinės plokštės iš montavimo pusės.

Taigi, kaip ir autoriaus grandinės versijoje, girliandoje yra L293 mikroschema (4 kanalų LED valdymo tvarkyklė), kurios kaina prilygsta mikrovaldiklio kainai ir tikriausiai nėra visur, grandinė buvo šiek tiek pakeista, o vairuotojas buvo pakeistas dviem skirtingo laidumo tranzistoriais (KT814, KT815 ir vienas 1 kOhm rezistorius), kurie savo darbą atlieka gana gerai.
Atnaujinta girliandos schema parodyta paveikslėlyje žemiau.

5 pav.
Girliandų diagrama.

Diagramoje apatinė šviesos diodų eilutė yra šviesos diodai baltasšvytėjimas, viršutinė eilutė - kintami šviesos diodai pagal spalvą: mėlyna, geltona, raudona ir pan.
Spalvos gali būti jūsų nuožiūra. Patartina naudoti padidinto ryškumo šviesos diodus.
Girliandos pradžia (arba jos pabaiga, kaip norite) eina iš dešinės į kairę. „Snaigės“ krenta nuo balto LED HL2 iki LED HL42, tai yra, šviesos diodai HL1 ir HL2 turėtų būti pačiame viršuje (girlianda baigiasi arba prasideda jais).
Čia kaip vairuotojas naudojami du skirtingų struktūrų tranzistoriai. Kaip minėta aukščiau, buvo naudojami tranzistoriai KT814 ir KT815. Tranzistoriai KT315 ir KT361 taip pat gana gerai veiks šioje grandinėje, bet aš nebandžiau jų įdiegti.

Autoriaus versijoje balti šviesos diodai yra sumontuoti tame pačiame lygyje kaip ir spalvoti, nes jie yra sujungti lygiagrečiai su jais, tačiau skirtingais poliais. Atstumas tarp šviesos diodų yra 4-5 cm, todėl girliandos ilgis buvo metras.
Baltus ir spalvotus šviesos diodus padėjau atskirai vienas nuo kito, o 5-6 cm atstumu girliandos ilgis mano variante yra šiek tiek daugiau nei du metrai, tai gana tinka vidutinio dydžio eglutei. Be to, plokštę sulitavau per pusvalandį, tačiau teko šiek tiek padirbėti su girlianda. Šviesos diodų prijungimui patartina naudoti plonus, suvytusius laidus. Naudojau sujungtus, suvytusius 0,5-0,6 mm skersmens laidus. (kartu su izoliacija), ir styginėmis girliandomis prie lentos, pasirodė nestora.

Žiūrėkite demonstracinį vaizdo įrašą, kaip veikia Naujųjų metų girlianda.

ATtiny2313 girliandą labai lengva surinkti. Šiame paprastame straipsnyje pagaminsime mini girliandą iš 4 šviesos diodų.

Ar tu, mūsų mygtukas, paspaustas ar paleistas?“ – būtent tokį klausimą uždavėme paskutiniame straipsnyje. Ir priklausomai nuo mygtuko būsenos padarėme 4 šviesos diodų efektą. Šiame straipsnyje mes analizuosime panašią situaciją. Taigi, eime!

Prisimeni kinišką girliandą už 100 rublių?

Paspaudžiame mygtuką ir mirksėjimo efektas tampa visai kitoks;-) Šiame straipsnyje būtent tai ir padarysime;-)

Mes nedarysime kiniškos girliandos su N skaičiumi lempučių, o padarysime supaprastintą tokios girliandos schemą naudodami AVR Tiny2313 MK ir keturis šviesos diodus. Mygtuku pakeisime mirksėjimo efektą.

Taigi, mūsų užduotis skamba taip:

Sukurkite girliandą ant AVR Tiny2313 mikrovaldiklio iš keturių šviesos diodų ir vieno savaime grįžtančio mygtuko (mygtuko, kuris paspaudžiamas ir atleidžiamas pats). Mygtuką paspaudžiame vieną kartą – atsiranda pirmasis mygtuko mirksėjimo efektas, spaudžiame antrą kartą – atsiranda antras mirksėjimo efektas ir t.t. Iš viso turėsime septynis efektus. Sąlyga yra ta, kad kol šviesos diodai mirksi, mūsų MK nereaguoja į mygtuką. Tai yra, kol efektas nepraeis, mygtuko paspaudimas jokiu būdu neatsispindi efekte. Poveikis NĖRA nutrūkęs. Kai poveikis pasibaigs, tik tada MK apdoros mygtuko paspaudimą.

Užduotis atrodo aiški. Pirmiausia sukurkime paprastą „Proteus“ grandinę. Diagrama atrodys maždaug taip (spustelėkite norėdami padidinti, atsidaro naujame lange):


Visi? Ne, ne visi! Dabar mes siuvame savo MK su HEX dilde. Kur galiu jį gauti? Iš Atmel Studio 6. Bet norėdami ją sukurti, pirmiausia turime parašyti programą, kurią naudos mūsų MK. Kaip visa tai padaryti, skaitykite šiame straipsnyje.

Žemiau yra tekstas su komentarais:



Taip pat atkreipkite dėmesį į kodo eilutę:

(_delay_ms(50); // įjungti 50 milisekundžių delsą apsaugai nuo atmetimo

„Proteus“ programa veiktų be šios kodo eilutės. Kodėl tada įdėjome? Esmė ta, kad tikroji padėtis yra šiek tiek prastesnė. Atpirkimo ožiu šiuo atveju bus nekenksmingiausias mygtukas, kurį įdėsime į girliandų perjungimo grandinę, surinkdami ją ant duonos lentos.

Ką mygtukas veikia grandinėje pagal MK grandinės konstrukciją? Jis tiekia loginį nulį arba vienetą į MK kaištį. Taigi? Taigi. Tačiau tikroje grandinėje ji iškart neužsidaro ir neatidaro grandinės. Uždarius ar atidarant mygtuką, mes neturime aiškaus signalo lygių perjungimo iš loginio vieno į nulį ir atvirkščiai. Perjungimas naudojant mygtuką atrodo maždaug taip:

Nuo loginio vieno iki nulio maždaug taip:


Nuo nulio iki vieno maždaug taip:


Visa ši reklaminė lenta perjungiant mygtuką vadinamas kontaktų atšokimu ir trukdo kūrėjams loginiai įrenginiai. Faktas yra tas, kad MK gali suskaičiuoti šiuos chaotiškus impulsus kaip loginį vienetą arba nulį. Šis nesusipratimas dabar buvo išspręstas naudojant paprastą kodo eilutę.

Prie projekto pridedu SIshnik, HEX ir Proteus failą.

Visi esame susipažinę su Kalėdų eglučių girliandomis, kurias sudaro įvairiaspalvės lemputės. Tačiau pastaruoju metu labai išpopuliarėjo produktai, kurių pagrindą sudaro šviesos diodai.

Šiame straipsnyje bus išsamiai aptarta, kaip jie suprojektuoti, kokią jungčių schemą turi ir ką daryti, jei girlianda nustos švytėti.

Iš ko susideda Kalėdų eglutės girlianda?

Kas yra šviesos diodų girlianda, blogesnė ar geresnė už įprastą?

Išoriškai tai beveik toks pat gaminys kaip ir anksčiau – laidai, lemputės (LED), valdymo blokas.

Dauguma pagrindinis elementas- tai, žinoma, valdymo blokas. Maža plastikinė dėžutė, ant kurios rodomi įvairūs foninio apšvietimo veikimo režimai.

Juos galima pakeisti tiesiog paspaudus mygtuką. Pats įrenginys gali būti gana gerai apsaugotas IP44 drėgmės ir dulkių apsaugos lygiu.

Kas viduje? Norėdami jį atidaryti, aštriu peilio galiuku arba plonu atsuktuvu ištraukite skląsčius iš apačios ir nuimkite apsauginį dangtelį.

Beje, kartais jis yra klijuojamas, o ne tik sėdimas ant skląsčių.

Visų pirma viduje pamatysite prie plokštės prilituotus laidus. Storesnis laidas paprastai yra tinklo laidas, tiekiantis 220 V įtampą.

Lituota ant lentos:

  • valdiklis, sukuriantis visus apšvietimo efektus
  • tiristoriai, kiekvienas iš jų eina į atskirą girliandos kanalą
  • rezistoriai
  • kondensatorius
  • ir diodiniai tilteliai

Lentos elementų skaičius visų pirma priklauso nuo girliandos šviesos kanalų skaičiaus. Brangesni modeliai gali turėti saugiklį.

LED girliandos schema

Tinklas kintamoji įtampa per rezistorius ir diodinį tiltelį, jau ištaisytą ir išlygintą per kondensatorių, tiekiamas į maitinimo valdiklį.

Šiuo atveju ši įtampa tiekiama per mygtuką, kuris įprastoje būsenoje yra atidarytas. Kai uždarote, valdiklio režimai persijungia.

Valdiklis savo ruožtu valdo tiristorius. Jų skaičius priklauso nuo foninio apšvietimo kanalų skaičiaus. O po tiristorių išėjimo galia eina tiesiai į girliandoje esančius šviesos diodus.

Kuo daugiau tokių išėjimų, tuo įvairesnių spalvų gaminys gali turėti. Jei jų yra tik dvi, tai reiškia, kad skirtingais režimais veiks tik dvi girliandos dalys (arba pusės) – vienos lemputės užges, kitos užsidegs ir pan.

Tiesą sakant, šios dvi diodų linijos bus sujungtos dviem kanalais nuosekliai. Jie susijungs vienas su kitu galutiniame taške – paskutiniame šviesos diodo.

Jei dėl kokių nors priežasčių jus erzina girliandos mirksėjimas ir norite, kad ji tolygiai švytėtų tik viena spalva, užtenka litavimo pagalba trumpai sujungti tiristoriaus katodą ir anodą galinėje plokštės pusėje.

Kuo brangesnė girlianda, tuo daugiau išeinančių kanalų ir laidų paliks valdymo plokštę.

Tuo pačiu metu, jei sekate plokštės pėdsakus, vienas iš tinklo įtampos išėjimų visada tiekiamas tiesiai į galutinį girliandos šviesos diodą, apeinant visus grandinės elementus.

Gedimo priežastys

Situacijų su girliandos gedimais yra labai įvairių.

Tuo pačiu atminkite, kad svarbiausias elementas - plokštės mikroschema - „dega“ labai, labai retai.

Maždaug 5-10% visų atvejų.

  • Prastas kontaktas su laidais
  • LED vienoje iš lempučių
  • Kondensatorius
  • Atsparumas
  • Vienas iš diodų
  • Vienas iš tiristorių
  • Valdiklio lustas

Blogas litavimas

Jei jūsų apšvietimas staiga nustoja veikti, pirmiausia patikrinkite maitinimo ir išvesties laidų litavimą. Gali būti, kad visą kontaktą laikė tik karšti klijai.

Verta perkelti laidus ir kontaktus kaip įprasta.

Dažniausia kiniškų girliandų problema – naudojami labai ploni laidai, kurie plokštės litavimo vietose tiesiog nutrūksta.

Kad taip neatsitiktų, visi kontaktai po litavimo turi būti padengti storu karšto lydalo klijų sluoksniu.

O išlukštenant tokias venas patariama naudoti ne peilį, o žiebtuvėlį. Užuot nuplėšę izoliaciją peiliuku, lengvai pašildykite ir ištirpinkite žiebtuvėliu.

Po to tiesiog pašalinkite išorinį sluoksnį nagais, nepažeisdami pačių venų.

LED pažeidimai

Jei laidų kontaktai yra gerai ir jūs nusidedate ant vieno iš diodų, kaip galite patikrinti, ar jis sugedęs? Ir svarbiausia, kaip jį rasti tarp visos lempučių serijos?

Visų pirma ištraukite girliandą iš lizdo. Pradėkite nuo paskutinio diodo. Maitinimo laidas ateina tiesiai iš valdymo bloko.

Prie tos pačios kojos prilituojamas išeinantis laidininkas. Jis eina į kitą šviesos kanalo atšaką. Taip pat turite išbandyti diodą tarp dviejų maitinimo laidų (įvesties-išvesties).

Jums reikės multimetro ir šiek tiek modernizuotų jo zondų.

Plonos adatos tvirtai pririšamos prie testerio zondų galiukų sriegiu, kad jų taškai išsikištų ne daugiau kaip 5-8 mm.

Viską ant viršaus apvyniokite storu elektros juostos sluoksniu.

Kadangi šviesos diodai yra lituoti, negalėsite tiesiog ištraukti jų iš lemputės kaip įprastų girliandų.

Todėl, norėdami patekti į laidų varinius laidus, turėsite perverti laidų izoliaciją. Perjunkite multimetrą į diodų testavimo režimą.

Ir jūs pradedate nuosekliai pradurti maitinimo laidus šalia kiekvieno įtartino diodo.

Jei turite ne 220 V, o 12 V arba 24 V girliandą, kuri jungiama iš šio maitinimo šaltinio:

tada turėtų užsidegti multimetro akumuliatoriaus darbinis šviesos diodas.

Jei tai yra 220 V foninis apšvietimas, patikrinkite multimetro rodmenis.

Ant darbinių elementų jie bus maždaug vienodi, tačiau sugedusiame pasirodys lūžis.

Žinoma, šis metodas yra barbariškas ir pažeidžia izoliaciją, tačiau jis veikia gana gerai. Tiesa, po tokių pradūrimų lauko girliandų lauke geriau nenaudoti.

Chaotiškas mirksėjimas

Būna situacija, kai įjungi girliandą ir ji pradeda chaotiškai mirksėti, kartais ryškiau, kartais blankiau. Ji savaime rūšiuojasi per kanalus.

Apskritai susidaro įspūdis, kad čia ne kažkoks gamyklinis efektas, o tarsi girlianda „išprotėjo“.

Dažniausiai problema čia yra elektrolitinis kondensatorius. Jis gali šiek tiek išsipūsti ir išsipūsti, ir tai bus aiškiai matoma net plika akimi.

Viską galima išspręsti pakeitus. Nominalas nurodytas ant korpuso, tad nesunkiai įsigysite ir išsirinkite panašų radijo dalių parduotuvėse.

Jei pakeitėte kondensatorių, bet jis nedavė jokio efekto, kur ieškoti toliau? Greičiausiai vienas iš rezistorių perdegė (sugedo). Gana problematiška vizualiai nustatyti gedimą. Jums reikės testerio.

Atliekate varžos matavimus, prieš tai sužinoję jo vardinę (normalią) vertę iš žymenų. Jei nesutampa, pakeiskite.

Dalis girliandos nešviečia

Kai kuris nors iš girliandos kanalų neveikia visiškai, gali būti dvi priežastys.

Pavyzdžiui, vieno iš tiristorių ar diodų, atsakingų už tai, gedimas.
Norėdami tuo įsitikinti, tiesiog išlituokite šio kanalo laidus ant plokštės iš jo vietos ir prijunkite šalia esantį kanalą, kuris, kaip žinoma, veikia.

Ir jei tuo pačiu metu nustoja veikti kitas kanalas, tada problema yra ne pačioje girliandoje, o jos plokštės komponentuose - tiristorius ar diodas.

Patikrini juos multimetru, susirandi atitinkančius parametrus ir pakeiti.

Girliandas blankiai šviečia

Pasitaiko ir ne visai akivaizdžių nelaimingų atsitikimų, kai atrodo, kad dega atskiro kanalo šviesos diodai, o blankiai, palyginti su kitais.

Ką tai reiškia? Valdiklio grandinė veikia gerai. Paspaudus mygtuką, visi režimai persijungia.

Diodinio tiltelio ir varžos parametrų testavimas testeriu taip pat neatskleidžia jokių problemų. Šiuo atveju kalti lieka tik laidai. Jie jau gana silpni, bet su tokia ašara suvyta viela jo skerspjūvis dar labiau sumažėja.

Dėl to girlianda tiesiog negali įjungti šviesos diodų vardinio ryškumo režimu, nes jiems tiesiog nėra pakankamai įtampos. Kaip rasti šią suplyšusią veną ilgoje girliandoje?

Norėdami tai padaryti, turėsite vaikščioti per visą liniją rankomis. Įjunkite girliandą ir pradėkite judinti laidus šalia kiekvieno šviesos diodo, kol visas foninis apšvietimas užsidegs visu galingumu.

Pagal Merfio dėsnį, tai gali būti pati paskutinė girlianda, todėl būkite kantrūs.

Kai tik rasite šią sritį, paimkite lituoklį ir išardykite LED laidus. Nuvalykite juos žiebtuvėliu ir vėl viską lituokite.

Tada izoliuokite litavimo vietą šilumos susitraukiančia medžiaga.

Mes jau išmokome anksčiau, tačiau daug įdomiau šį procesą valdyti naudojant mygtukus, o LED girlianda bus geras vaizdinis pavyzdys.

Mygtuko prijungimas prie mikrovaldiklio

Girliandų schema parodyta žemiau.

Kai mygtukas (raktas) yra prijungtas prie mikrovaldiklio, atitinkamas MK kaištis turi būti sukonfigūruotas kaip įėjimas. Tokiu atveju mikrovaldiklis nuolat skaitys būseną, tiksliau, potencialų lygį šiame kaištyje. Todėl programos algoritmas gali būti sukonstruotas taip, kad jei prie tam tikro MK kaiščio potencialas pasikeis iš didelio į žemą arba atvirkščiai, tada bus atliktas tam tikras veiksmas, pavyzdžiui, užsidegs šviesos diodas.

Norint konfigūruoti tam tikrus MK kaiščius kaip įvestį, atitinkamuose DDR registro bituose reikia įrašyti nulius. Beje, jei MK kaiščiai nenaudojami, taip pat rekomenduojama juos sukonfigūruoti įėjimui. Kadangi prie B prievado jungsime tik mygtukus, visus nulius į DDRB registrą įrašysime tokia komanda:

DDRB = 0b00000000;

Kai mikrovaldiklio kaištis sukonfigūruotas kaip įvestis, iš pradžių jis gali būti dviejų būsenų, kurios nustatomos naudojant PORT registrą.

Jei PORT registro bitas yra nustatytas į nulį, tada kaiščio įvesties varža yra didelė.

Kai antgalis nustatytas į vieną, prie MK kaiščio prijungiamas traukimo rezistorius. Rezistorius taip vadinamas, nes per jį didelis potencialas (+ 5 V) „traukiamas“ į atitinkamą tašką. elektros grandinė; šiuo atveju - į mikrovaldiklio kaištį.

MK išvesties būsenos tikrinimas naudojant PINx

Norėdami bet kuriuo metu sužinoti, koks potencialas yra kaištyje, turėtumėte patikrinti (perskaityti) atitinkamą bitą PIN registre.

Pagal analogiją šį registrą galima palyginti su jutikliu. Iš jo galite tik skaityti informaciją. Jūs negalite nieko į jį rašyti. PIN yra priešingas registrui PORT, kuris tik įrašo duomenis, bet neskaito.

PORT registre labiau pageidautina nustatyti vieną, t.y. vidinio traukimo rezistoriaus MK naudojimas. Ši parinktis turi didelį atsparumą triukšmui, nes norint pakeisti didelį potencialą į žemą, išėjimas turi būti tiesiogiai prijungtas prie žemės arba bendro laido.

Jei kaištis pagamintas su didele įėjimo varža, tai bet kokie daugiau ar mažiau galingi elektromagnetiniai trukdžiai gali sukelti tam tikrą potencialą, viršijantį tam tikrą vertę, ir mikrovaldiklis suvoks trukdžius kaip pokytį iš mažo potencialo į aukštą. Todėl savo programoje naudosime vidinį traukimo rezistorių.

Vieną rakto kontaktą prijungiame prie žemės (bendras laidas), o antrąjį - prie mikrovaldiklio kaiščio. Kai raktas atidarytas, išėjimas yra didelio potencialo (+ 5 V), kurį ištraukia vidinis MK rezistorius. Tokiu atveju atitinkamas PIN kodo registro bitas bus nustatytas į vieną.

Kai paspausite mygtuką, šis kaištis prisijungs prie bendro laido („minuso“) ir ant jo atsiras mažas potencialas. Ir PIN registro bitas bus automatiškai nustatytas į nulį.

Atkreipkite dėmesį, kad ištraukimo rezistorius vis tiek apsaugo grandinę nuo trumpas sujungimas paspaudus mygtuką.

LED girlianda su kodu

Dabar parašykime visą programos kodą, o tada pažvelkime į atskirus jo elementus. Programos algoritmas toks: uždarius pirmąjį klavišą „žiburiai“ užsidegs viena seka, o uždarius antrą – „šviesos“ – kitaip. Jei paspausti abu mygtukai, visi šviesos diodai turi būti išjungti.

#apibrėžti F_CPU 1000000UL // Nurodykite mikrovaldiklio veikimo dažnį 1 MHz

#įtraukti

#įtraukti // Prijunkite delsos biblioteką

#define Z 300 // Pavadinkite delsos reikšmę Z

#define VD PORTD // Prievadui D priskirkite pavadinimą VD

#define K PORTB // Prievadui B, prie kurio prijungti mygtukai, priskirkite pavadinimą K

int main (tuščia)

DDRB = 0b00000000; // Konfigūruokite B prievadą įėjimui

DDRD = 0b11111111; // Konfigūruokite D prievadą išvestiei

VD = 0b00000000; // Išjunkite visas šviesas

K = 0b11111111; // Įjungti ištraukiamuosius rezistorius

kol (1)

if (PINB == 0b11111110) // Patikrinkite, ar paspaustas 1 mygtukas

VD = 0b11111111; // Jei raktas uždarytas, mes mirksime „šviesomis“

_delay_ms(Z);

VD = 0b00000000;

_delay_ms(Z);

Kitas

VD = 0b00000000; // Jei raktas atidarytas, visi šviesos diodai yra išjungti

if (PINB == 0b11111101) // Patikrinkite, ar paspaustas 2-asis mygtukas

VD = 0b00000001; // Jei mygtukas paspaustas, po vieną įjunkite LED

_ delsimas_ ms(Z); // su 0,3 s vėlavimu

VD = 0b00000011;

_delay_ms(Z);

VD = 0b00000111;

_delay_ms(Z);

VD = 0b00001111;

_delay_ms(Z);

LED = 0b00011111;

_delay_ms(Z);

VD = 0b00111111;

_delay_ms(Z);

VD = 0b01111111;

_ delay_ms(Z);

VD = 0b11111111;

_delay_ms(Z);

VD = 0b00000000;

_ delsimas_ ms(Z);

Kitas

VD = 0b00000000; // Jei raktas neuždarytas, visi šviesos diodai išjungiami

Operatoriai jeigu Ir Kitas

Pirminių procesorių ir jų paskirtis gerai žinoma iš ankstesnių straipsnių. Kas naujo mums čia yra if teiginys. Jei iš anglų kalbos išverstas kaip „jei“. Jeigu tenkinama skliausteliuose nurodyta sąlyga, t.y. tiesa, tada vykdomas programos kodas riestiniuose skliaustuose. Pavyzdžiui, jei kintamasis a yra didesnis nei 1 vienetas, tada kintamajam c bus priskirta reikšmė a + b.

jei (a > 1)

c = a + b;

Priešingu atveju, kai a reikšmė yra mažesnė arba lygi vienetui, programos kodas riestiniuose skliaustuose nebus vykdomas.

Jei riestiniuose skliaustuose vykdoma tik viena komanda, C sintaksė leidžia supaprastinti žymėjimą ir apsieiti be riestinių skliaustų:

jei (a > 1) c = a + b;

Jei sakinys taip pat veikia kartu su teiginiu else.

jei (a >1) → jei a >1, tai = a + b

c = a + b;

kitaip → kitaip, c = a - b

c = a - b;

Tai veikia taip. Jei a > 1, tai c = a + b. Priešingu atveju, t.y. kai a yra mažesnis arba lygus vienetui, tai c = a – b.

Programos kodo paaiškinimas

Dabar grįžkime prie mūsų programos. Jei paspaudžiamas mygtukas, prijungtas prie PB0, tada ant kaiščio atsiranda mažas potencialas ir atitinkamas PINB registro bitas nustatomas į nulį. Tokiu atveju bus įvykdyta sąlyga garbanotuose skliaustuose, t.y. girlianda pradės mirksėti.

Atkreipkite dėmesį, kad priskyrimo komanda susideda iš vieno lygybės ženklo "=", o komandą patikrinti sąlygą "lygu" sudaro du lygybės ženklai, parašyti be tarpo "==".

Kai mygtukas nepaspaudžiamas, PINB registro bitas parodys bitą, kurį sukelia aukštas ištraukimo rezistorius. Tokiu atveju valdymas pereis prie teiginio else ir visi šviesos diodai bus išjungti.

Uždarius antrąjį klavišą, kurio išėjimas prijungtas prie PB1 prievado, bus vykdomas antrasis programos kodas, o šviesos diodai po vieną pradės degti su 0,3 sekundės vėlavimu.

Taigi, mikrovaldiklio girliandoje gali būti skirtingas šviesos diodų ir klavišų skaičius. Be to, kiekvienam raktų kontaktų uždarymui ar atidarymui galite nurodyti savo girliandos veikimo algoritmą.

Jį taip pat galima valdyti tik vienu mygtuku. Ši parinktis turi šiek tiek sudėtingesnį kodą, ir mes jį apsvarstysime atskirame straipsnyje. Ten taip pat apžvelgsime, kaip prijungti galingus šviesos diodus prie MK.

Anksčiau straipsnyje jūs išsamiai apžvelgėte išvesties nustatymą, o čia - įvestį. Dabar viską sudėliokime ir pateiksime paprastą vaizdinį algoritmą.