Satura rādītājs:
- 1. darbība: kontrolieris
- 2. solis: koka iesaiņošana
- 3. solis: neaizmirstiet zvaigzni virsū
- 4. darbība. Izmēģiniet to
Video: LED spirālveida koks: 4 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Es mīlu visu veidu LED sloksnes. Es ar viņiem izveidoju jauku varavīksnes gaismu. Pat tie, kas nav adresējami, ir noderīgi. Es esmu izveidojis spilgtu tirgus lietussargu āra gaismu, piestiprinot tās pie jumta ribām, tāpēc, kad mans spirālveida koks izpūstas, es nolēmu aptīt tam apkārt garu led sloksni.
1. darbība: kontrolieris
Es nolēmu izmantot neadresējamus RGB gaismas diodes. Tas nozīmē, ka man var būt ieprogrammēts efekts, bet visi gaismas diodes vienlaikus maina krāsu. Tas arī nozīmē, ka būs nepieciešams kontrolieris. Es būtu varējis izmantot arduino uno un veikt sākotnējos testus, izmantojot RGB vairogu, bet galu galā izmantoju pielāgotu vienu dēli ar tukšu Atmega328 mikroshēmu. Vienkārši nācās pārslēgt mērķprogrammētāju un tieši ieprogrammēt mikroshēmu.
Man bija daudz šo dēļu, kas palikuši no citiem lampu projektiem. Jūtieties brīvi izmantot lētu ieprogrammētu kontrolieri, kā es to darīju uz lietussarga.
Es kā koku pamatu izmantoju lēnu krustošanās demonstrāciju.
/** Kods, kas izgaismo 3 gaismas diodes, sarkanas, zaļas un zilas (RGB) * Lai izveidotu izbalēšanu, jums jādara divas lietas: * 1. Aprakstiet krāsas, kuras vēlaties parādīt * 2. Norādiet vēlamo secību tās izgaist * * KRĀSAS APRAKSTĪŠANA: * Krāsa ir tikai trīs procentu masīvs, 0–100, * kas kontrolē sarkanās, zaļās un zilās gaismas diodes * * Sarkanā ir pilnībā sarkana gaismas diode, zila un zaļa * sarkans = {100, 0, 0} * blāvi balts ir visas trīs gaismas diodes ar 30% * int dimWhite = {30, 30, 30} * utt. * * Dažas izplatītākās krāsas ir norādītas zemāk vai arī izveidojiet savu PASŪTĪJUMS: * Programmas galvenajā daļā ir jāuzskaita secība *, kādā vēlaties parādīt krāsas, piem. * crossFade (sarkans); * crossFade (zaļš); * crossFade (zils); * * Šīs krāsas parādīsies šādā secībā, izzūdot * vienā krāsā un nākamajā * * Turklāt ir pieejami 5 papildu iestatījumi, kurus varat pielāgot: * 1. Sākotnējā krāsa ir iestatīta uz melnu (tātad pirmā krāsa izbalē in), bet * sākotnējo krāsu var iestatīt uz jebkuru citu krāsu * 2. Iekšējā cilpa darbojas 1020 mijiedarbībās; mainīgais “gaidīt” * nosaka aptuvenu vienas krustošanās ilgumu. Teorētiski * 10 ms gaidīšanai vajadzētu radīt ~ 10 sekunžu krustu. * Praksē citas funkcijas, kuras kods veic lēni, šajā manā panelī līdz ~ 11 sekundēm. YMMV. * 3. Ja “atkārtot” ir iestatīts uz 0, programma darbosies bezgalīgi. * ja tas ir iestatīts uz skaitli, tas atkārtos šo skaitu ciklu, * tad apstāsies pie pēdējās krāsas secībā. (Iestatiet “atgriešanās” uz 1, * un padariet pēdējo krāsu melnu, ja vēlaties, lai tā izbalētu beigās.) * 4. Pastāv neobligāts “aizturēšanas” mainīgais, kas ievieto * programmu “turēt” milisekundēs, kad krāsa ir pabeigta, * bet pirms nākamās krāsas sākuma. * 5. Iestatiet DEBUG karodziņu uz 1, ja vēlaties, lai atkļūdošanas izvade tiktu * nosūtīta uz sērijas monitoru. * * Programmas iekšpuse nav sarežģīta, taču tā ir nedaudz satraukta - iekšējā darbība ir izskaidrota * zem galvenās cilpas. * * 2007. gada aprīlis, Clay Shirky *
/ Izeja
int grnPin = 9; // Zaļā gaismas diode, savienota ar digitālo tapu 10 int redPin = 10; // Sarkana gaismas diode, savienota ar ciparu tapu 9 int bluPin = 11; // Zila gaismas diode, savienota ar ciparu tapu 11
// Krāsu masīvi
int melns [3] = {0, 0, 0}; int balts [3] = {100, 100, 100}; int red [3] = {100, 0, 0}; int zaļš [3] = {0, 100, 0}; int blue [3] = {0, 0, 100}; int dzeltens [3] = {40, 95, 0}; int dimWhite [3] = {30, 30, 30}; // utt.
// Iestatiet sākotnējo krāsu
int redVal = melns [0]; int grnVal = melns [1]; int bluVal = melns [2];
int gaidīt = 3; // 10 ms iekšējā crossFade aizture; palielināt lēnākam izbalēšanai
int aizturēt = 0; // Neobligāti turiet, kad krāsa ir pabeigta, pirms nākamā crossFade int DEBUG = 0; // DEBUG skaitītājs; ja iestatīts uz 1, rakstīs vērtības atpakaļ, izmantojot seriālo int loopCount = 60; // Cik bieži vajadzētu ziņot par DEBUG? int atkārtojums = 0; // Cik reizes mums vajadzētu pārtraukt pirms apstāšanās? (0 bez apstāšanās) int j = 0; // Cilpas skaitītājs atkārtojumam
// Inicializēt krāsu mainīgos
int prevR = redVal; int prevG = grnVal; int prevB = bluVal;
// Iestatiet LED izejas
void setup () {pinMode (redPin, OUTPUT); // uzstāda tapas kā izejas pinMode (grnPin, OUTPUT); pinMode (bluPin, OUTPUT);
if (DEBUG) {// Ja mēs vēlamies redzēt atkļūdošanas vērtības…
Sērijas sākums (9600); //… iestatīt sērijas izvadi}}
// Galvenā programma: uzskaitiet krustošanās secību
void loop () {crossFade (sarkans); crossFade (zaļš); crossFade (zils); crossFade (dzeltens);
ja (atkārtot) {// Vai mēs cilpojam ierobežotu skaitu reižu?
j += 1; ja (j> = atkārtot) {// Vai mēs jau esam tur? izeja (j); // Ja tā, tad apstājies. }}}
/* Zemāk šī līnija ir matemātika - jums tas nebūtu jāmaina uz pamatiem
* * Programma darbojas šādi: * Iedomājieties krustošanos, kas pārceļ sarkano gaismas diodi no 0-10, * zaļo no 0-5 un zilo no 10 līdz 7, veicot * desmit soļus. * Mēs vēlamies saskaitīt 10 soļus un palielināt vai * samazināt krāsu vērtības vienmērīgi. * Iedomājieties, ka + norāda vērtības paaugstināšanu par 1, bet a - * ir vienāda ar tās pazemināšanu. Mūsu 10 soļu izbalēšana izskatītos šādi: * * 1 2 3 4 5 6 7 8 9 10 * R + + + + + + + + + + + + * G + + + + + * B - - - * * Sarkanais paceļas no plkst. No 0 līdz 10 desmit soļos, zaļā krāsā no * 0-5 ar 5 soļiem un zilā krāsā no 10 līdz 7 trīs soļos. * * Reālajā programmā krāsu procenti tiek pārvērsti par * 0-255 vērtībām, un ir 1020 soļi (255 * 4). * * Lai noskaidrotu, cik lielam solim vajadzētu būt starp vienu augšup vai lejup vērstu atzīmi no vienas no LED vērtībām, mēs saucam calcStep (), *, kas aprēķina absolūto atstarpi starp sākuma un beigu vērtībām, * un pēc tam sadala šo atstarpi ar 1020, lai noteiktu soli * starp vērtības korekcijām. */
int calcStep (int prevValue, int endValue) {
int solis = endValue - prevValue; // Kāda vispār ir plaisa? if (solis) {// Ja tā nav nulle, solis = 1020/solis; // dalīt ar 1020} atgriešanās solis; }
/* Nākamā funkcija ir calcVal. Kad cilpas vērtība, i, * sasniedz soli, kas piemērots kādai no * krāsām, palielina vai samazina šīs krāsas vērtību par 1. * (R, G un B tiek aprēķināti atsevišķi.) */
int calcVal (int solis, int val, int i) {
if ((solis) && i % solis == 0) {// Ja solis nav nulle un ir pienācis laiks mainīt vērtību, if (solis> 0) {// vērtības palielināšana, ja solis ir pozitīvs… val += 1; } cits if (255. solis) {val = 255; } cits, ja (val <0) {val = 0; } atgriešanās val; }
/* crossFade () pārvērš procentuālās krāsas uz a
* Diapazons 0-255, pēc tam cilpas 1020 reizes, pārbaudot, vai * vērtība ir jāatjaunina katru reizi, pēc tam ierakstot * krāsu vērtības pareizajās tapās. */
void crossFade (int krāsa [3]) {
// Pārvērst par 0-255 int R = (krāsa [0] * 255) / 100; int G = (krāsa [1] * 255) / 100; int B = (krāsa [2] * 255) / 100;
int stepR = aprēķinātStep (prevR, R);
int stepG = aprēķinātStep (prevG, G); int solisB = aprēķinātStep (prevB, B);
par (int i = 0; i <= 1020; i ++) {redVal = calcVal (stepR, redVal, i); grnVal = aprēķinātVal (solisG, grnVal, i); bluVal = aprēķinātVal (solisB, bluVal, i);
analogWrite (redPin, redVal); // Ierakstiet pašreizējās vērtības LED tapās
analogWrite (grnPin, grnVal); analogWrite (bluPin, bluVal);
aizkavēties (gaidīt); // Pirms cilpas atsākšanas pauzējiet uz “gaidīšanas” milisekundēm
if (DEBUG) {// Ja mēs vēlamies sērijveida izvadi, izdrukājiet to
if (i == 0 vai i % loopCount == 0) {// sākums, un katra loopCount reizes Serial.print ("Loop/RGB: #"); Sērijas nospiedums (i); Serial.print ("|"); Serial.print (redVal); Serial.print (" /"); Serial.print (grnVal); Serial.print (" /"); Serial.println (bluVal); } DEBUG += 1; }} // Atjaunināt pašreizējās vērtības nākamajai cilpai prevR = redVal; prevG = grnVal; prevB = bluVal; kavēšanās (aizturēšana); // Pauze, lai pēc izvēles atjaunotu cikla gaidīšanas milisekundes}
2. solis: koka iesaiņošana
Es izmantoju ūdensnecaurlaidīgas sloksnes, jo tās būs ārā. Viņi palika paši, bet es ātri sekoju vadu saitēm, lai pārliecinātos, ka tie paliek. Vienkārša un viegla uzlaušana. Sloksnes caurplūdes spēja atvieglo barošanas avota ievadīšanu apakšā un strāvas padevi no augšas līdz zvaigznei.
3. solis: neaizmirstiet zvaigzni virsū
Zvaigznei es izmantoju 10W mikroshēmu pāri, lai pievērstu uzmanību. Es pielodēju tos pie vara loksnes kā radiatoru. Es varēju izmantot vairāk sloksnes, jo nedaudz palika pāri.
4. darbība. Izmēģiniet to
Pirmajā mēģinājumā ātrums bija pārāk ātrs …
Kad es to nomierināju, tas izskatījās diezgan labi.
Ieteicams:
RGB-LED stieples koks: 9 soļi (ar attēliem)
RGB-LED stiepļu koks: Es vēlos dalīties ar jums savā RGB-LED stiepļu kokā. Kādu vakaru es atcerējos, ka bērnībā būvēju stiepļu kokus. Mūsdienās man ļoti patīk veidot mazus elektroniskus projektus ar arduino līdzīgiem mikrokontrolleriem, īpaši ar gaismas diodēm. Tāpēc pie sevis nodomāju
DIY indukcijas sildītāja ķēde ar plakanu spirālveida spoli (pankūku spole): 3 soļi
DIY indukcijas sildītāja ķēde ar plakanu spirālveida spoli (pankūku spole): Indukcijas sildīšana ir elektriski vadoša objekta (parasti metāla) sildīšanas process ar elektromagnētisko indukciju, izmantojot siltumu, ko objektā rada virpuļstrāvas. Šajā video es jums parādīšu, kā padarīt spēcīgu
RGB LED veidotāja koks: 15 soļi (ar attēliem)
RGB LED veidotāju koks: mūsu vietējā veidotāju telpa sponsorēja koku, kas tiks parādīts galvenajā ielā decembra mēnesī (2018). Prāta vētras laikā mēs nonācām pie idejas tradicionālā ornamenta vietā uzlikt kokam smieklīgu gaismas diožu daudzumu
Spirālveida lampa (pazīstama arī kā Loxodrome galda lampa): 12 soļi (ar attēliem)
Spirālveida lampa (pazīstama arī kā Loxodrome galda lampa): Spirālveida lampa (pazīstama arī kā Loxodrome galda lampa) ir projekts, kuru es sāku 2015. gadā. To iedvesmoja Pola Nīlandera Loxodrome Sconce. Mana sākotnējā ideja bija par motorizētu galda lampu, kas projicētu plūstošus gaismas virpuļus uz sienas. Es projektēju un
Spirālveida Ziemassvētku eglīte: 4 soļi (ar attēliem)
Spirālveida Ziemassvētku eglīte: Sveiki draugi Šajā neizpratnē mēs izgatavosim spirālveida Ziemassvētku eglīti