Sissejuhatus
LED-kuubikud on olnud kasutusel pikka aega, nende valmistamise näiteid on palju. Internetist leiate mitmesuguseid, alates suurtest mahulistest 3D LED-ekraanidest. Algajatele on kõige optimaalsem suurus, millest alustada nende ehituse ja programmeerimise valdamist, 8x8x8 (512 LED-i), väiksema suurusega kuubikud ei näita valgusefekte nii selgelt ja kuubikuid alates 16x16x16 on algajatele üsna raske valmistada.
Selles artiklis tahan teile rääkida 8x8x8 suuruse LED-kuubiku loomisest, kasutades juhtmikrokontrollerina Arduino Pro Mini plaati. See kuubiku mudel võib töötada kahes režiimis: valgusefektid ja kellarežiim. See sai võimalikuks tänu RTC mooduli integreerimisele vooluringi.
Tööpõhimõte
512 LED-ist koosnevat valguskuubi juhivad MOSFET-transistorid, 64 transistori vastutavad veergude positiivse pinge andmise eest ja 8 transistori kihtidele negatiivse pinge andmise eest. LED-i voolu (ja seega ka heledust) reguleerib 64 takistit (R011-R641), mis asuvad pärast transistoride väljundit veergudel. Transistoride avamine ja sulgemine toimub nihkeregistrite abil, mida omakorda juhitakse kahe liini (eraldi veergude ja kihtide) kaudu Arduino plaadi poolt.
Kogu kuubi struktuur on jagatud osadeks:
Toiteallika valimisel võetakse arvesse LED-ide toiteallikat, kuna korraga saab põleda ainult üks kiht, see tähendab 64 LED-i. Kui võtta ühe LED-i vooluks 30mA, siis saame: 30mA*64=1920mA ehk piisab 3A toiteallikast kogu konstruktsiooni toiteks.
Vooluahela disain
Ja nii on põhiplaat peamiselt lülitit, liidestab kõiki mooduleid ja haldab kihte. Selguse huvides jagame selle kaheks osaks: ümberlülitamine ja kihihaldus.
Skeem nr 1, põhijuhtplaat:
Lülitusosa varustab seadet põhitoitega (J6). Arduino Pro Mini plaadi välgutamiseks kasutage USB-TTL-moodulit, mis on ühendatud J6-1, tihvtide J6-J1 ja J6-J2 kaudu, mida kasutatakse Arduino plaadi toite ühendamiseks moodulist (seda toidet on vaja püsivara jaoks kui toiteallikat ei kasutata). Pistikut J4 kasutatakse SD-kaardi ühendamiseks ja J5 kasutatakse RTC-mooduli ühendamiseks. Arduino Pro Mini plaat on ühendatud konnektorite rühma J1 (1-1, 1-3, 1-4) kaudu. Pistikute rühmi J2 ja J3 kasutatakse signaaliliinide ühendamiseks juhtkolonni toitejuhtplaatidega (skeem 2) ja toiteallikaga. Klaviatuuri ühendamiseks kasutatakse pistikute rühma J7 (skeem 3). Ja lõpuks, rühm J8 vastutab skeemi 1 teise osa (kihihaldus) ühendamise eest:
Skeemi 1 teine osa on äärmiselt lihtne: nihkeregister annab MOSFET-transistoridele käsklusi (1 - transistor avamine, 0 - sulgemine), nihkeregister saab andmeliini kaudu käske 1. vooluahela esimesest osast.
Vaatleme skeemi 2, see on jagatud kaheks identseks osaks, millest igaühes on kontrollimiseks 32 veergu. Kuna need on täiesti identsed, vaatleme ainult ühte:
Nii nagu eelmises skeemis, annab nihkeregister MOSFET-transistoridele käsklusi (mida saab andmeliini kaudu Arduino Pro Mini plaadilt) (välja arvatud praegu, 0 avab transistori ja 1 sulgeb selle). Transistori väljundis on ka 250-oomised takistid, mis juhivad LED-i voolu ja neid saab asendada mitte eriti ereda sära jaoks sobivama väärtusega (olenevalt kasutatavatest LED-idest).
Ja viimane, skeem 3, on nuputahvel, kus kõik on äärmiselt lihtne:
Iga kihi kontrollimine enne nende jootmist:
Arduino Pro Mini tahvli püsivara (visand)
Sketš võtab enda alla üle 500 rea, see lisatakse artikli lõppu, kuid siin püüan seda lühidalt kirjeldada.
Nihkeregistrite haldamiseks on kaks peamist funktsiooni ("veerg" - veergude täitmine ja "layer_column" - kihi valimine ja funktsiooni "veerg" kutsumine), mõlemad on realiseeritud funktsiooni shiftOut kaudu. See on lihtsaim viis registrite haldamiseks, kuid ei pruugi olla kõige kiirem. Edasi tuleb kogu kuubi "kuubiku" värvimise põhifunktsioon, funktsiooni tähendus on see, et see värvib järjestikku ja tsüklina (tsükkel selgub iseenesest) iga kuubi kihi. Selle teostuse tõttu kuubik väreleb, see on märgatav tänu kiirele mikroprotsessorile.
Kuubil on kaks töörežiimi: “Valgusefektide demonstreerimine” ja “Ajakuva”. Muutmine toimub nupu "Režiim" abil. Esimeses režiimis loetakse andmeid järjestikku SD-kaardilt, seejärel edastatakse need ülaltoodud funktsioonidele. Teise režiimi rakendamine on palju keerulisem, kuna kõik selle režiimi andmed on manustatud mikroprotsessorisse (see selgitab koodiridade arvu). Lühidalt öeldes loetakse andmed RTC moodulist ja selle põhjal saadetakse jällegi vastavad bitimuutajad ülaltoodud funktsioonidele LED-idel kuvamiseks. Kella on võimalik seadistada ka juhtnuppude abil, selleks vajutage lihtsalt kellarežiimis nuppu “Seadistamine”, seejärel kasutage režiimi (tunnid, minutid, päevad jne) muutmiseks nuppu “Muuda” ja konfigureerige nuppude "Üles" ja "Alla" abil. Lõpuks, klõpsates nuppu "Lähtesta", saate sätted salvestada.
Nuppude asukoht vastavalt joonisele 3:
Lighting Effects Creator (C++ Builder 6)
Selleks, et efektide loomine oleks lihtsustatud ja funktsionaalne, samuti eelprojitseeritud efektide vaatamine enne SD-le salvestamist, otsustati Open GL-i abil programm kirjutada C++ keeles.
Borland C++ Builder 6 lähtekood on lisatud artiklile.
Järeldus
Püüdsin esitada infot projekti teostusskeemi ja selle elektrilise osa kohta. Projekti tarkvaraline osa on üsna mahukas ja kõik on leitav lähtefailidest. Küsimuste korral kirjuta ja arutame.
Projekt ise oli mõeldud väikeseks harjutamiseks, mikrokontrolleritega töötamiseks, rakendamise käigus selgus:
Määramine | Tüüp | Denominatsioon | Kogus | Märge | Pood | Minu märkmik | |
---|---|---|---|---|---|---|---|
Skeem nr 1, põhiplaat | |||||||
Arduino plaat | Arduino Pro Mini | 1 | 5V, 16MHz | Märkmikusse | |||
USB-TTL-moodul | CP2102 | 1 | Märkmikusse | ||||
Reaalajas kell (RTC) | DS1307 | 1 | Märkmikusse | ||||
SD-kaardi moodul | SD-kaart | 1 | Märkmikusse | ||||
U1 | Vahetuste register | SN74HC595 | 1 | Märkmikusse | |||
Q1-Q8 | MOSFET transistor | IRLR024N | 8 | Märkmikusse | |||
R1-R8 | Takisti | 10 kOhm | 8 | Märkmikusse | |||
R1-R8 | Takisti | 3 kOhm | 8 | Märkmikusse | |||
C1-C2 | Elektrolüütkondensaator | 1uF | 1 | Märkmikusse | |||
Skeem nr 2, kontaktlaud | |||||||
U1-U8 | Vahetuste register | SN74HC595 | 9 | Märkmikusse | |||
Q1-Q64 | MOSFET transistor | IRLML6302TR | 64 |
Spetsiaalselt selle projekti jaoks lõime WIRING-keele raamatukogu.
MP1051.Init() – esialgne lähtestamine
MP1051.Brightness(B) - LED-ide heleduse seadistamine, B=0...32
MP1051.Set(D1,D2,D3,D4,D5,D6,D7,D8) - LED-ide juhtimine kihtide kaupa, D1-D2 - esimene kiht (A1), D7-D8 - 4. kiht (A4)
MP1051.IR(T) – IR-kaugjuhtimiskäskluse ootamine T ms jaoks. Tagastab: 0 - käsku polnud, 1 - käsk vastu võetud, 2 - kordus aktsepteeritud
MP1051.IRAdr() – tagastab infrapunasaadetise aadressi
MP1051.IRData() – tagastab IR-saatmise käsu
Kõigepealt peate ette valmistama LED-juhtmed.
Samm 1. Painutage lühikest 90 kraadi.
2. samm. Vormige pintsettide abil lühike nii, et see oleks 3 mm. terminalide vaheline samm on suurenenud.
3. samm. Nüüd painutage pikk küljele.
Järgmiste toimingute mugavuse huvides leidke 4 mutriga M3 kruvi ja kinnitage need juhtpaneeli nurgaaukudesse. Noh, kui kruvisid pole, siis päästavad neli identset plaadi nurkadesse kinnitatud pesulõksu.
Paigaldage vormitud LED-id plaadil olevatesse aukudesse. Esimene rida esimene.
Jootke pikad juhtmed kokku.
Siis teine kiht.
Jootke teise rea pikad. Kolmandas ja neljandas.
Iga rea äärmiste LED-ide pikad juhtmed ulatuvad tahvli servast kaugemale. Painutage neid ettevaatlikult piki plaati ja jootke need kokku
Selgus, et see on üks kiht 4 x 4.
Saate selle tasandada täiendavate traadijuppidega.
Valmistame neli kihti. Paigaldame hoolikalt esimese kihi juhtplaadile, sisestades LED-juhtmed aukudesse L11-L14, L21-L24, L31-L34, L41-L44. Kõigepealt jootme nurgaklemmid. Joondame kihi nurkades ühes tasapinnas, kuumutades juhtmeid jootekolbiga ja liigutades neid üles-alla (vajadusel). Kui olete veendunud, et nurga LED-id on samas tasapinnas, jootke ülejäänud juhtmed.
Teine kiht on joodetud esimese külge. Lühike juhe lühikeseks. Vaadake joonist 10 paremal pool, jootepunktid on selgelt nähtavad äärmises veerus.
Kuidas LED-dekoratiivne skulptuur töötab? Kas on võimalik ise kokku panna? Kui palju LED-e vajate ja mida peale nende vajate? Kõigile neile küsimustele leiate vastused sellest artiklist.
Kui teile meeldivad isetegemise projektid või teile meeldib elektrooniliste vooluahelate kallal nokitseda, proovige LED-kuubikut oma kätega kokku panna. Kõigepealt peate otsustama suuruse üle. Kui olete seadme tööpõhimõttest aru saanud, saate vooluringi täiendada kas rohkemate või vähemate LED-idega.
LED-kuubik tahkudega 8 dioodi jaoks
Vaatame, kuidas see toimib, kasutades kuubi näidet, mille külg on 8 LED-i. See kuubik võib olla algajatele hirmutav, kuid kui olete materjalide uurimisel ettevaatlik, saate selle hõlpsasti omandada.
LED-kuubiku 8x8x8 kokkupanemiseks vajate:
Väikesed 5 mm tüüpi LED-id võtavad tühise 20 mA voolu, kuid valgustate neid üsna palju. Selleks sobib suurepäraselt 12V ja 2A toiteallikas.
Te ei saa kõiki 512 LED-i eraldi ühendada, sest tõenäoliselt ei leia te nii paljude kontaktidega mikrokontrollerit (MK). Enamasti on mudelid korpustes, mille jalgade arv on 8 kuni 64. Loomulikult leiate valikuid suure arvu jalgadega.
Kuidas ühendada nii palju LED-e? Elementaarne! Nihkeregister on kiip, mis suudab teisendada teavet paralleelselt järjestikuseks ja vastupidi – jadareilist paralleelseks. Jada-paralleelseks teisendades saad ühest signaaliviigust 8 või enam signaaliviiku, olenevalt registri mahust.
Allpool on diagramm, mis illustreerib nihkeregistri tööpõhimõtet.
Kui sisestate jadaandmete sisendisse bitiväärtuse, nimelt nulli või ühe, edastatakse see mööda kellasignaali serva paralleelväljundi numbrile 0 (ärge unustage, et digitaalelektroonikas algab nummerdamine nullist).
Kui esimesel ajahetkel oli üks ja seejärel kolme taktimpulsi jooksul seate sisendi nullpotentsiaalile, saate selle tulemusel sisendi oleku "0001". Seda näete diagrammil ridadel Q0-Q3 - need on neli paralleelväljundi bitti.
Kuidas neid teadmisi LED-kuubi ehitamisel rakendada? Fakt on see, et saate kasutada mitte päris tavalist nihkeregistrit, vaid LED-ekraanide jaoks spetsiaalset draiverit - STP16CPS05MTR. See töötab samal põhimõttel.
Muidugi ei lahenda draiveri kasutamine täielikult suure hulga LED-ide ühendamisega seotud probleeme. 512 LED-i ühendamiseks vajate 32 sellist draiverit ja veelgi rohkem mikrokontrolleri juhtjalgasid.
Nii et me läheme teist teed ja ühendame LED-id ridadeks ja veergudeks, nii et saame kahemõõtmelise maatriksi. Jääkuubik hõivab kõik kolm telge. Olles lõpetanud idee ühendada 8x8x8 LED-kuubik, milles LED-id on kombineeritud rühmadesse, võime jõuda järgmisele järeldusele:
Ühendage LED-ide kihid (põrandad) ühise anoodiga (katoodiga) ahelateks ja kolonnid ühise katoodiga (või anoodiga, kui katoodid ühendati põrandatel) ahelateks.
Sellise konstruktsiooni juhtimiseks on vaja 8 x 8 = 16 juhttihvti veeru kohta ja igale korrusele üks, korruseid on samuti kokku 8. Kokku on vaja 24 juhtimiskanalit.
Sisendplokk saab signaali mikrokontrolleri kolmelt kontaktilt.
Vajaliku LED-i valgustamiseks, mis asub näiteks esimesel korrusel, kolmas esimeses reas, peate veerule number 3 lisama miinuse ja korrusele number 1 plussmärgi. See kehtib juhul, kui olete põrandad kokku pannud ühine anood ja veerud - katood. Kui see on vastupidi, tuleb juhtpingeid vastavalt ümber pöörata.
LED-kuubiku jootmise hõlbustamiseks vajate:
LED-kuubiku korrektseks tööks peate selle kihtidena kokku panema ühise katoodiga ja veerud anoodiga. Ühendage Arduino tihvtidega, mis on diagrammil näidatud sisendina järgmises järjestuses:
Arduino pin nr. | Keti nimi |
---|---|
2 | L.E. |
3 | SDI |
5 | CLK |
Kui te pole oma võimetes ja elektroonikaalastes teadmistes kindel, kuid soovite oma töölauale sellist kaunistust, võite osta valmis kuubi. Neile, kellele meeldib teha lihtsat elektroonilist käsitööd, on suurepärased lihtsamad 4x4x4 servadega võimalused.
Valmis komplekte kokkupanekuks saab osta raadiokomponentidega kauplustes, aga ka tohutut valikut Aliexpressist.
Sellise kuubi kokkupanek arendab algaja raadioamatööri jootmisoskust, ühenduste täpsust, korrektsust ja kvaliteeti. Mikrokontrolleritega töötamise oskused tulevad kasuks edasistes projektides ning Arduino abil saab õppida programmeerima lihtsaid mänguasju, aga ka igapäevaeluks ja tootmiseks vajalikke automatiseerimisvahendeid.
Kahjuks on Arduino programmeerimiskeele - eskiisi - iseärasuste tõttu jõudluse osas mõned piirangud, kuid uskuge mind, kui jõuate selle platvormi võimaluste lakke, on tõenäoliselt töö valdamine "puhaste" MK-dega. ei tekita teile olulisi raskusi.
Avaldatud 05.08.2011
Veel üks lihtne LED-mänguasi, kuid mitte vähem muljetavaldav kui LED-kuubik või. Videot juhtunust saad vaadata siit.
Youtubest leiab palju sarnaseid ja lahedamaid asju. Kõige väärtuslikum osa on LED-idest kokku pandud kuubik. Ehitame lihtsa kuubi, mille esikülje mõõtmed on 4x4x4 LED-i. Need. vajame 4x4x4=64 mis tahes värvi eredat LED-i. Tahtsin teha 8x8x8 kuubi, aga siis oleks vaja 512 LED-i. Arvestades LED-ide maksumust, on see lihtsa mänguasja jaoks pisut kallis, alustame lihtsast 4x4x4.
Me ei saa kõiki LED-e korraga valgustada; vajame palju mikrokontrolleri jalgu. Seetõttu on seda lihtsam teha – lülitage ükshaaval sisse üks LED-põrand. Inimsilm on inertne ega suuda nii kiiret ümberlülitust tuvastada ning meile tundub, et kõikide korruste LED-id põlevad. Kuid samal ajal peate mõistma, et iga LED-korrus ei põle kogu aeg, vaid sellele määratud aja jooksul. Hõõgumisperiood 1/korruste arv. Meie puhul 4. See on Sära heledus on 1/4 nimiväärtusest. Seetõttu võtsime ülierksad LED-id, muidu oleksime saanud kahvatu kuubikuga.
Juhtplaadil vastutab tööloogika eest mikrokontroller ATMega8, paar mikrolülitust - nihkeregistrid signaalide saatmiseks "sammastele" ja 4 transistorlülitit, mis lülitavad sisse soovitud valgusdioodide põranda. Mikrokontroller saadab vajaliku arvu nihkeregistritesse ja seejärel lülitab sisse soovitud transistori lüliti, valgustades soovitud põrandat. Seejärel korratakse toimingut iga "korruse" jaoks.
Plaadil on pistik kuubi ühendamiseks arvutiga mooduli kaudu. Seega saab kuubiku arvutist tulevate käskude põhjal helendama panna. Kuubik töötab aga suurepäraselt ka ilma arvutita, ehkki siis suudab ta ainult mällu ühendatud “filmi” läbi kerida, kuid sellest on reeglina enam kui küll.
Kuubi saab toita arvuti USB-pordist. See on mugav arvutiga ühendamisel. Toitsin seda eraldi, kuna plaanis oli teha eraldi seade. Videol on näha eraldi plaat lihtsa 5V pingestabilisaatori jaoks, mida toidetakse 12V välisest toiteallikast. Kuna korraga saab põleda mitte 64 LED-i, vaid ainult 16, on nende koguvoolutarve (iga LED-i kiirusega 20 mA) 16 * 20 = 320 mA. Mis on USB-pordi jaoks lubatud.
LEDid on joodetud nii, et üks jalg on vertikaalselt ühendatud teiste LED-ide jalgadega, moodustades "samba" ja teine jalg on ühendatud kõigi LED-idega tasapinnas ("põrandas"). Juhtmed jootame kuubi külge, ühe masti külge (16 tk) ja ühe igale põrandale (4 tk). Need 20 juhet juhivad kuubikut. Kuubik ühendatakse tahvliga järgmiselt:
Side tahvliga toimub mooduli kasutamisel COM-pordi kaudu ja UART-USB kasutamisel virtuaalse COM-pordi kaudu. Mõlemal juhul on see arvuti COM-port. Seega tarkvaraarendusega probleeme pole.
Erinevate valgusefektide loomise töö lihtsustamiseks loodi Flashis lihtne tarkvara: . Selle abiga saate luua erinevaid efekte ja salvestada faili. Fail on lihtne numbrijada, mille saab sisestada lähtekoodi, kompileerida ja toota püsivara koos oma efektidega. Lisaks saab seda faili mängida arvutiga ühendatud kuubil, kasutades lihtsat Delphis kirjutatud programmi. Selle näite saab alla laadida siit.
YouTube'is puutute sageli kokku huvitavate projektidega. Üks neist on LED-kuubik. Selle seadme ilu seisneb selles, et see kuvab tõelist 3D-pilti. Saate joonistada mis tahes kolmemõõtmelisi animeeritud kujundeid. Kuid valitud kuubi eraldusvõime piires.
Aluseks võeti Radiocati artikkel (kes tahab, võib googeldada). Kuubi suurus 5x5x5 ei valitud juhuslikult. Selle kuubi kokkupanemiseks vajate 5*5*5=125 LED-i. Kui võrrelda seda teise populaarse variandiga 8*8*8=512, st. LED-ide arv suureneb 4 korda. Seetõttu tundub 5x5x5 mulle optimaalne.
Mul ei olnud aega LED-e tellida, nii et ostsin need jaemüügist. Kahjuks oli saadaval ainult rohelised läbipaistvad 5 mm, nii et lõpptulemus sai kõvasti kannatada. Sinised matid näevad muljetavaldavamad, kuid paraku. Soovitatav on võtta jäätunud LED-id, sest läbipaistvad valgustavad naabervalgusdiode ja tekitavad efekti, et valgustamata LED helendab.
Alustasin otse kuubiku endaga. Joonistasin maatriksi mõõtmetega 100x100. Ringide vaheline kaugus on 20 mm. Läbimõõt 5mm. Printisin paberile ja liimisin puutükile.
Puuritud augud. Painutame LED-i katoodi (-) nutikalt. Me painutame anoodi 90 kraadi.
Jätame katoodi ülaosast välja ja jootke anood kõrvaloleva LED-i külge. Selgub, et see on LED-ide "põrand", millel on ühine "+".
Vasakpoolse konstruktsiooni tugevdamiseks jootsin teise juhi. Esimene korrus on valmis. Teeme samamoodi veel 4 korrust.
Kogume kõik põrandad kokku. Selleks jootme eelmised põrandad järgmistele.
Aluseks kasutasin foolium klaaskiust laminaati mõõtudega 100x100. Leedide jootmise kohad söövitasin välja. Tulemuseks oli järgmine disain:
Mitte päris sirge, aga kõik paindub kergelt. Nüüd otse diagrammi juurde. Kokkupanekuks vajate:
Ühest küljest on siin kõik lihtne, aga segadusse minna ei tohi. Erinevalt varasematest projektidest kasutatakse siin Atmega16 (Atmega16A-16PU). Kasutasin töösagedust 12 MHz, 16 MHz juures lülituvad LEDid veidi kiiremini. Lisaks kasutatakse siin päästikuid. Et mõista, miks, peate mõistma skeemi loogikat.
Kõik päästiku sisendid on ühendatud paralleelselt. Oletame, et peame sisse lülitama esimese LED-i 2. korrusel (D2.1) ja mitte sisse lülitama 1, 3, 4, 5 korruse LED-e (D1.1, D3.1, D4.1, D5. 1). Väljastame PORTC.0=0, kuna sel juhul lülitab LED sisse 0. Päästiku sisendisse ilmub 0, kuid selle olek ei muutu väljundis. Oleku muutmiseks tuleb CLK sisendile panna impulss, st. väljundiks vaheldumisi loogiline null ja loogiline üks, et kinnitada PA1. Nüüd on kõik katoodid DA1.1-DA5.1 maandusega ühendatud, D2.1 süütamiseks tuleb vaid 2. korrus sisse lülitada, st. avatud transistor Q2, väljund loogiline null kuni PD6.
Üritasin ise efekte kirjutada, see töötas, aga kuidagi ei tulnud midagi meelde, mida poleks valmis püsivaras. Seetõttu võttis viimane valmis püsivara, 5x5x5 kuubi jaoks oli Internetis mitu võimalust. Kokkupanekuks kulus kõigest 3 päeva. Hea kingitus, oma kätega kokku pandud.
Lõpuks näeb video saadud kuubist pimedas eriti efektne välja.