Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Chunguza Ulicho nacho
- Hatua ya 2: Kugawanyika
- Hatua ya 3: Uunganisho
- Hatua ya 4: Programu za Mwanga
- Hatua ya 5: Kanuni
- Hatua ya 6: Kuhusu PWM
Video: Flickering Candle Bridge: 6 Hatua (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Hii inaweza kufundisha jinsi ya kugeuza daraja rahisi la mshumaa na taa tuli kuwa nuru nzuri ya mhemko na tofauti tofauti za taa zinazoangaza, kupepesa, mifumo ya mawimbi na nini. Nilinunua kutoka kwa mauzo ya Krismasi daraja la mshumaa kwa 8 €. Ina taa 7 zilizoongozwa na zingine 33 V 3 W adapta ya ukuta. Inaangaza na rangi nyeupe na ya joto nyeupe na itakuwa kamili kwa mradi huu, ambapo nitaweka Arduino ili kufanya mishumaa iwake. Arduino maarufu zaidi ni Arduino Uno. Katika mradi huu, nitatumia Arduino Mega 2560.
Nitaenda kupeana umeme wa 30 V na nitatumia benki rahisi ya 5 V inayokusudiwa kwa simu za rununu kama usambazaji wa umeme.
Jambo zuri kujua juu ya benki za umeme ni kwamba zina mzunguko wa ndani, ambao hubadilisha betri 3.7 V hadi 5 V. Kwa sababu mchakato hutumia nguvu fulani, benki ya umeme hujifunga ikiwa haitumiki. Ikiwa benki ya umeme inatumiwa kwa vifaa vya DIY vya Arduino kulingana na kifaa, kifaa hicho hakiwezi kujiweka katika usingizi wa kuokoa nguvu na kuanza tena baada ya dakika chache. Hiyo itazima benki ya umeme. Daraja hili la mshumaa linalowaka halina hali ya kulala. Inatumia nguvu kila wakati, ikifanya benki ya nguvu iweze kufanya kazi, hadi kebo ya umeme itolewe.
Video inaonyesha daraja la mshumaa katika hali ya tuli na kwa kuangaza kabisa. Kuangaza kabisa kunakwaza sana macho, wakati video inaituliza kidogo. Baada ya vifaa kurekebishwa, pamoja na nyaya za kukata, unganisha unganisho mpya na kuongeza vifaa kadhaa, mifumo yote inayotakiwa ya taa huundwa kwa kuandika nambari ya Arduino. Mifumo ninayojumuisha katika hii inaweza kufundishwa ni:
- Taa 4 tofauti za kuangaza zinaiga mishumaa halisi
- 2 kupepesa tofauti (kuwaka bila mpangilio wa taa zingine zenye tuli)
- Mifumo 2 tofauti ya mawimbi
- mwanga rahisi wa tuli
Kubadilisha mifumo hufanyika kupitia kitufe cha kushinikiza, kipengee kimoja cha kiolesura cha mtumiaji. Mwelekeo zaidi unayotaka na urekebishaji zaidi unavyotaka, vifungo zaidi na vifungo mtu anapaswa kuongeza. Lakini uzuri uko katika unyenyekevu. Weka idadi ya mifumo inayochaguliwa chini. Chagua mipangilio bora wakati wa kuweka nambari na kujaribu, sio kwa kuongeza vidhibiti vingi kwenye vifaa.
Vifaa
- Daraja 1 la mshumaa wa LED na balbu 7. Hakikisha ni ya chini voltage DC mfano, ama na betri au na ukuta mlima chanzo cha umeme, ambayo inabadilisha mauti 110 - 240 V AC kuwa baadhi ya 6 - 30 V DC. Kwa hivyo ni salama kabisa kudanganya daraja la mshumaa.
- 1 Arduino Mega (mdhibiti mwingine yeyote mdogo atafanya, hakikisha tu unaweza kuipanga)
- Mfano wa ubao wa mkate
- waya za kuruka na waya zingine
- Chombo cha kutengeneza
- multimeter
- Vipinga 7, 120 Ω
- Kitufe 1 cha kushinikiza (Nitaonyesha jinsi unaweza kutumia kitufe kilichojengwa kwenye Arduino badala yake)
- Darlington transistor IC kwa transistors 7, ULN2803AP itafanya (Ikiwa unatumia Arduino Uno au Meaga, hauitaji hii)
- Benki ya umeme ya 5 V ilimaanisha simu za rununu
Hatua ya 1: Chunguza Ulicho nacho
Tafuta juu ya voltage gani kila LED inafanya kazi na ni kiasi gani cha sasa kinapita.
- Fungua chini ya daraja la mshumaa. Pata waya mbili ambazo huenda kwenye mshumaa mmoja.
- Vua mbali insulation kutoka kwa nyaya zinazoonyesha waya za shaba bila kukata waya za shaba.
- Washa taa (pumzika, ni volts chache tu) na upime voltage juu ya waya zilizofunuliwa za shaba.
- Kata kebo kwenye sehemu moja ya kupimia (kwa wakati huu taa huzima, kwa kweli), futa utaftaji (3 - 4 mm) katika miisho yote miwili. Pima sasa inayopita. Unachofanya ni kuunganisha tena kebo iliyokatwa na multimeter yako, ukiacha mtiririko wote wa sasa kupitia multimeter yako, ambayo sasa inakuambia kiwango cha sasa.
Masomo yangu
Voltage juu ya mshumaa mmoja (hatua 3): 3.1 V
Kumbuka kuwa chanzo cha nguvu kwenye daraja la mshumaa kilikuwa 33 V. Kwa hivyo mara saba 3.1 V ni 21.7 V tu. Kwenye mishumaa lazima kuwe na kipingaji cha ziada. Ikiwa ningepima voltage hiyo ya mshumaa, lazima ilibidi iwe 11 V.
Ya sasa inapita wakati taa za mshumaa (hatua ya 4): 19 mA
Nitawasha kila kitu na kifurushi cha betri 5 V 2. Kwa mishumaa, ninahitaji kuacha voltage kutoka 5 V hadi 3 V. Ninahitaji kipinga, ambacho kitashusha voltage 2 V kwa 19 mA ya sasa.
2 V / 0.019 A = 105 Ω
Utaftaji wa umeme ni:
2 V * 19 mA = 38 mW
Hiyo ni kidogo. Zaidi zaidi inaweza kupiga kontena yenyewe. Walakini, bila kipinzani cha 105 I ningepiga LED. Nina vipinga 100 Ω na 120.. Ninaenda na 120 Ω. Inatoa ulinzi zaidi.
Kujaribu mishumaa yote 7 na 3 V ilitoa mwangaza mkali, isipokuwa mshumaa mmoja, ambao ulikuwa na taa nyepesi sana, na tu ni 0.8 mA tu inayopita. Hii ilikuwa mshumaa wangu na kipinga cha ziada. Ilibadilika kuwa mishumaa mingine haikuwa na vipinga kabisa. Taa za LED zinazotumiwa kwenye chandelier zinalenga tu kwa 3 V! Mshumaa na kipingaji cha ziada ilibidi ufunguliwe kwa kutumia vurugu kali, lakini hakuna kitu kilichovunjika. Kontena lilipatikana chini ya mwangaza mdogo ndani ya balbu ya mshumaa wa plastiki. Ilinibidi kuifuta na kuuzia waya tena. Ilikuwa ya fujo kidogo, kwani chuma cha kutengeneza chuma kilitia moto gundi moto, ambayo ilitumika kwa mkutano.
Kwa hivyo sasa najua kuwa chanzo chochote cha nguvu ninachotumia, voltage yoyote ni nini, lazima nitoe voltage chini hadi 3 V ikiruhusu 19 mA kupitia.
Ikiwa ningekuwa najua zaidi teknolojia ya LED, ningegundua aina ya LED iliyotumiwa na ningejua inahitajika 3 V.
Hatua ya 2: Kugawanyika
Katika hatua hii ninaunganisha waya zote chanya (+) kutoka kwa mishumaa 5 hadi waya mmoja. Kisha mimi huongeza waya tofauti hasi (-) kwa kila mshumaa. Taa ya LED inaangazia tu wakati '+' na '-' huenda sawa. Kwa kuwa una waya mbili zinazofanana tu kutoka kwa kila mshumaa, lazima ujaribu ni ipi ni '+' na ambayo ni '-'. Kwa hili unahitaji chanzo cha nguvu cha 3 V. Nilikuwa na kifurushi kidogo cha betri pamoja na betri mbili za AAA. Betri ya sarafu ya 3 V inafanya kazi nzuri kwa upimaji, pia.
Daraja la mshuma linahitaji nyaya 8 kukimbia kati ya Arduino na daraja. Ukipata kebo na waya 8 zilizowekwa maboksi, hiyo itakuwa nzuri. Waya moja lazima ishikilie mA 120, wengine wote hubeba mA 20 zaidi. Nilichagua kutumia kebo 4 za waya mbili, ambazo nilikuwa nazo.
Picha ya kwanza inaonyesha jinsi nilivyoandaa waya mmoja wa kawaida kuunganisha waya zote '+' kutoka kwa mishumaa. Vua uzi wa waya wa kawaida kwa kila mshumaa. Ongeza kipande cha bomba la insulation ya kupungua (ukanda wa manjano kwenye picha) kwa kila kiungo na uweke mahali pa kulia pa kebo ya kawaida. Weka waya '+' kutoka kwa kila mshumaa kwa pamoja, funika pamoja na bomba la kupungua na uipunguze. Kwa kweli, mkanda rahisi wa wambiso ni sawa, pia, kila kitu kitafunikwa mwishowe.
Picha ya pili inaonyesha waya '-' ambayo kila mshumaa inahitaji. Waya wa kawaida '+' huenda moja kwa moja kwenye pini 5 V ya Arduino (au labda kupitia ubao wa mkate). Kila waya '-' huenda kwa pini yake mwenyewe ya transistor IC (tena, labda kupitia ubao wa mkate).
Arduino mara nyingi huitwa bodi ya prototyping. Bodi ya mkate pia ni kitu unachotumia katika prototypes. Kile ninachoelezea katika mfano huu ni mfano. Sitakuendeleza kuwa bidhaa ya kung'aa na kila kitu kimefichwa katika kesi nzuri za plastiki. Kuchukua kutoka kwa mfano kwenda ngazi inayofuata itamaanisha kuibadilisha ubao wa mkate na bodi ya mzunguko iliyochapishwa na vifaa vya kuuza na hata kuchukua nafasi ya Arduino na chip rahisi tu ya microcontroller (kwa kweli chip kama hiyo ni ubongo wa Arduino). Na kuwa na kila kitu kinachofaa katika kesi ya plastiki au ndani ya daraja la mshumaa lililodukuliwa.
Hatua ya 3: Uunganisho
Kuhusu Arduinos, zilizochukuliwa kutoka ukurasa huu:
- Jumla ya sasa ya juu kwa pini ya kuingiza / pato: 40mA
- Jumla ya mikondo kati ya pini zote za kuingiza / kutoa pamoja: 200mA
Mishumaa yangu huchota mA 19 kila moja, wakati inaendeshwa na 3 V. Kuna saba kati yao, ambayo hufanya 133 mA. Kwa hivyo ningeweza kuwapa nguvu moja kwa moja kutoka kwa pini za pato. Walakini, nina vipuri IC ya darlington transistor. Kwa hivyo nilifikiria, kwanini isiwe hivyo. Mzunguko wangu hufanya jambo kwa njia inayofaa: pini za data ni za ishara tu, sio nguvu. Badala yake mimi hutumia pini 5 V kwenye Arduino kwa kuwasha taa za LED. Wakati wa kujaribu, nina kompyuta yangu ndogo iliyounganishwa na Arduino. Kila kitu kinatumiwa kutoka kwa USB ya mbali, ambayo inatoa 5 V. Arduino Mega ina fuse yenyewe, ambayo hupiga saa 500 mA kulinda kompyuta. Mishumaa yangu huchota 133 mA kwa zaidi. Arduino labda chini sana. Kila kitu kinaenda sawa, kinapotumiwa na kompyuta ndogo, kwa hivyo kutumia kifurushi cha betri 5 V iliyounganishwa na bandari ya USB ya Arduino ni sawa.
Pini za data D3 - D9 nenda kwa IC ULN2803APGCN. LED zinafanya kazi kwa 3 V. Kila balbu imeunganishwa na chanzo cha 5 V na zaidi kwa kipinga cha 120 Ω. Zaidi ya kituo kimoja cha IC, ambayo mwishowe inaunganisha mzunguko na ardhi kupitia transistor ya darlington huko IC.
Kitufe cha kushinikiza kinaongezwa kwenye mzunguko kuwezesha kitendo cha mtumiaji. Daraja la mshuma kwa hivyo linaweza kuwa na programu chache zinazochaguliwa na watumiaji.
Kitufe cha kushinikiza kwenye mzunguko kimeunganishwa na RESET na GND. Hii ndio hasa kifungo kilichojengwa katika upya hufanya. Kwa kuwa siingilii kila kitu kwenye kesi ya plastiki, ninatumia kitufe cha kuweka upya kwenye Arduino kudhibiti programu. Kuongeza kitufe kulingana na picha itafanya kazi sawa na kitufe cha kuweka upya bodi. Programu inafanya kazi kwa kukumbuka ni mpango gani mwepesi uliotumiwa wakati wa mwisho wa programu. Kwa hivyo, kila kuweka upya kutaendelea kwa programu inayofuata ya nuru.
Picha zinaonyesha jinsi nyaya mpya zinatoka kwenye daraja, jinsi nilivyoweka transistor IC na vipinga kwenye ubao wa mkate na jinsi waya za kuruka zinaungana na Arduino Mega. Nilikata waya 4 za kiume za kuruka ndani ya waya 8 za nusu, ambazo niliuzia kwa nyaya 8 zinazotoka kwenye daraja la mshumaa. Kwa njia hii naweza kuweka tu nyaya kwenye ubao wa mkate.
Mbadala bila transistors
Katika hatua ya awali, niliandaa waya wa kawaida wa '+' kwa mishumaa na kutenganisha '-' waya, ambazo hupitia transistor IC chini. Wakati pini moja ya data inakwenda juu, waya unaofanana '-' hupata msingi kupitia transistor yake na taa za LED.
Kuunganisha waya '-' moja kwa moja kwenye pini za data za Arduino itafanya kazi, pia, lakini kila wakati fikiria ni kiasi gani pini za data zinaweza kusimama! Njia hii itahitaji mabadiliko katika programu yangu. Ingehitaji pini za data kwenda chini ili kuwasha mishumaa. Ili kutumia programu yangu kama ilivyo, unahitaji kubadili '+' na '-' kwenye mishumaa. Kuwa na waya wa kawaida '-' kwa mishumaa, ambayo huenda kwa GND kwenye Arduino. Na waya tofauti hutembea kati ya waya ya '+' ya mshumaa na pini ya data ya Arduino.
Hatua ya 4: Programu za Mwanga
Mpango wangu, ambao ninawasilisha katika hatua inayofuata, hupitia programu 9 nyepesi. Kushinikiza kitufe itazimisha taa kwa sekunde, kisha programu zifuatazo za mwangaza zinaanza. Programu ni kama ifuatavyo:
- Kubadilika kwa nguvu. Mishumaa huangaza kwa nasibu. Hii inaonekana kukasirisha sana unapowatazama kwa mbali, lakini inaweza kuonekana nzuri kutoka mbali na labda nyuma ya dirisha la dari la baridi. Ingawa, jirani yako anaweza kuita kikosi cha zima moto.
- Kubembeleza laini. Inaonekana nzuri sana. Kama mishumaa halisi kwenye chumba bila rasimu.
- Kutofautisha kuangaza. Mishumaa hubadilishana vizuri kati ya nguvu na laini ya kuzima katika vipindi 30 hivi.
- Kutofautisha kuangaza. Kama # 3, lakini kila mshuma hutofautiana kwa kasi yake kati ya 30 na 60 s.
- Kufumba haraka. Mishumaa huangaza kwa kiwango kilichopunguka na kuangaza kwa nasibu. Kwa wastani kuna mng'ao mmoja kila sekunde.
- Kupepesa polepole. Kama # 5, lakini kwa kiwango kidogo sana.
- Wimbi la haraka kutoka mshumaa wa juu katikati hadi zile za chini.
- Wimbi la polepole kutoka mshumaa wa juu katikati hadi ule wa chini.
- Nuru mkali mkali. Ilinibidi nijumuishe hii, sikutaka kuondoa kazi ya asili.
Hatua ya 5: Kanuni
/*
DALILI LA KIWANGO CHA KURUSHA * / // Tangaza ubadilishaji wa hali kushikilia hali // kupitia operesheni ya kuweka upya _sambaza _ ((kifungu (". Noinit"))) hali ya saini isiyosainiwa; // Wakati mpango unapoanza baada ya kuweka upya, kipande hiki cha kumbukumbu hakijaanzishwa, lakini kinashikilia thamani // iliyokuwa nayo kabla ya kuweka upya. Mara ya kwanza kabisa programu ya // kuendeshwa, inashikilia thamani ya nasibu. / * * Darasa la mshumaa linashikilia kila kitu kinachohitajika * kwa kuhesabu kiwango cha mwanga kwa * mshumaa unaozunguka. * / mshumaa wa darasa {faragha: muda mrefu wa barua; muda mrefu wa mint; maxlite ndefu; minlite ndefu; muda mrefu wa maana; muda mrefu wa asili; muda mrefu wa asili; origmaxlite ndefu; origminlite ndefu; muda mrefu wa asili; muda mrefu wa muda mfupi; muda mrefu wa deltamintime; deltamaxlite ndefu; deltaminlite ndefu; deltameanlite ndefu; ndefu ndefu; jioni ndefu; kuanza kwa muda mrefu; lengo refu; kuelea phactor; muda mrefu wa kulenga; muda mrefu wa kuanza; muda mrefu wa muda; lengo mpya (batili); onetarget ndefu (batili); umma: mshumaa (mkeka mrefu, mit mrefu, mal mrefu, mil mrefu, mil mrefu, muda mrefu); ngazi ndefu sasa (batili); utupu initlfo (deltamat ndefu, deltamit ndefu, deltamal ndefu, deltamil ndefu, deltamean ndefu, kiwango kirefu); batili setlfo (batili); }; mshumaa:: mshumaa (mkeka mrefu, mit mrefu, mal mrefu, mil mrefu, muda mrefu, muda mrefu) (eo), muda wa asili (kitanda), muda wa asili (mit), origmaxlite (mal), origminlite (mil), origmeanlite (mel) {target = meanlite; newtarget (); } / * * levelnow () inarudisha kiwango cha mwanga mshumaa unapaswa kuwa na hivi sasa. * Kazi hutunza kufafanua kiwango kipya cha nuru na * wakati inapaswa kuchukua kufikia kiwango hicho. Mabadiliko sio laini, * lakini inafuata sura ya sigmoid. Wakati sio wakati wa kufafanua kiwango kipya *, kazi inarudisha tu kiwango cha nuru. * / mshumaa mrefu:: levelnow (batili) {msaada mrefu, sasa; kuelea t1, t2; sasa = millis (); ikiwa (sasa> = muda wa kulenga) {msaada = lengo; newtarget (); kurudi msaada; } mwingine {// msaada = lengo * (millis () - muda wa kuanza) / deltatime + kuanza * (muda wa kulenga - millis ()) / deltatime; t1 = kuelea (muda wa kulenga - sasa) / muda wa kazi; t2 = 1. - t1; // Huu ndio usaidizi wa hesabu ya sigmoid = t1 * t1 * t1 * anza + t1 * t1 * t2 * anza * 3 + t1 * t2 * t2 * lengo * 3 + t2 * t2 * t2 * lengo; kurudi msaada; }} mshumaa batili:: newtarget (batili) {sum Jumla; jumla = 0; kwa (long i = 0; i <evenout; i ++) sum + = onetarget (); kuanza = lengo; lengo = jumla / jioni; wakati wa kuanza = millis (); wakati wa kulenga = wakati wa kuanza + bila mpangilio (wakati wa mint, muda wa maxt); deltatime = wakati wa kulenga - wakati wa kuanza; } mshumaa mrefu:: onetarget (batili) {if (random (0, 10) lastcheck + 100) {lastcheck = now; / * * Algo ya kupepesa "baada ya kiwango cha millisecond": * Anza kuangalia baada ya kiwango / millisecond 2 * Katika kipindi cha kiwango / millisecond 2, fanya * nafasi ya kupepesa kuwa 50%. * Ikiwa kiwango ni 10000 ms, wakati wa ms 5000 ni sarafu * iliyopigwa mara 50. * 1/50 = 0.02 * Ikiwa bila mpangilio (10000) kiwango cha kuanza + 2/2) {ikiwa (wakati uliopangwa wa kawaida) kurudi (kuanza - lowlite) * (muda wa kulenga - sasa) / (wakati wa kulenga - wakati wa kuanza) + lowlite; } utupu wa kupepesa:: twink (batili) {starttime = millis (); wakati wa kulenga = bila mpangilio (wakati wa chakula cha mchana, muda wa maxt) + wakati wa kuanza; anza = bila mpangilio (minlite, maxlite); } usanidi batili () {int umeongozwa; // Soma ubadilishaji wa hali ya uchawi, ambayo inapaswa kuwaambia // ni mpango gani mwepesi uliendeshwa mara ya mwisho, kuiongezea // na kuweka upya kwa sifuri ikiwa imejaa. mode ++; mode% = 9; // Hii inachukua kila kitu cha thamani // ilikuwa mara ya kwanza kabisa Arduino // kuendesha programu hii. / * * TAARIFA MUHIMU * ============== * * Jambo muhimu ambalo programu hii inafanya ni kutoa ishara za PWM * kwa taa za LED. Hapa nimeweka pini 3 hadi 9 hadi * mode ya pato. Kwenye Arduino Mega2560, pini hizi hutoa * ishara nzuri za PWM. Ikiwa una Arduino nyingine, angalia * ni pini zipi (na ngapi) unazoweza kutumia. Daima unaweza kuandika tena nambari ya kutumia PWM ya programu, ikiwa Arduino * yako haiwezi kutoa pini za vifaa vya kutosha vya PWM. * * / pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT); pinMode (6, OUTPUT); pinMode (7, OUTPUT); pinMode (8, OUTPUT); pinMode (9, OUTPUT); pinMode (LED_BUILTIN, OUTPUT); AnalogWrite (LED_BUILTIN, 0); // Zima tu nyekundu inayokasirisha iliyoongozwa kwenye mshumaa wa Arduino * inaweza [7]; // jiandae kutumia mishumaa inayowaka, iwe unatumia au la kupepesa * twink [7]; // jiandae kutumia mishumaa inayoangaza … ikiwa (mode == 8) {for (int i = 3; i <10; i ++) analogWrite (i, 255); wakati (kweli); // Kila wakati mpango huu unapoendesha, huenda kwa // aina hii ya kitanzi kisicho na mwisho, hadi kitufe cha kuweka upya kitakapobanwa. } ikiwa (mode <2) // inazungusha {muda mrefu wa muda wa muda mrefu_; muda mrefu wa mchana_; maxlite ndefu_; minlite ndefu_; ndefu ya maana_; ndefu hata_; ikiwa (mode == 0) {maxtime_ = 250; wakati wa mchana_ = 50; maxlite_ = 256; minlite_ = 0; maana_l = 128; hata_ = 1; } ikiwa (mode == 1) {maxtime_ = 400; wakati wa mchana_ = 150; maxlite_ = 256; minlite_ = 100; meanlite_ = 200; hata_ = 1; } kwa (int i = 0; i <7; i ++) {can = mshumaa mpya (maxtime_, mintime_, maxlite_, minlite_, meanlite_, even_); } wakati (kweli) // Kitanzi kisicho na mwisho cha mishumaa inayoangaza {kwa (int i = 0; i levelnow ()); }} ikiwa (mode <4) // lfo imeongezwa kwa kuzima {if (mode == 2) // sawa lfo (30 s) kwa mishumaa yote {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 30000);}} ikiwa (mode == 3) // lfo: s za mishumaa {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 20000); inaweza [1] -> initlfo (75, 50, 0, 50, 36, 25000); inaweza [2] -> initlfo (75, 50, 0, 50, 36, 30000); inaweza [3] -> initlfo (75, 50, 0, 50, 36, 35000); unaweza [4] -> initlfo (75, 40, 0, 50, 36, 40000); 26, 45000); can [6] -> initlfo (75, 20, 0, 50, 16, 50000); can [7] -> initlfo (75, 10, 0, 50, 6, 55000);} wakati kweli) // Kitanzi kisicho na mwisho cha mishumaa inayoangaza na lfo {muda mrefu wa mwisho = 0; kwa (int i = 0; i levelnow ()); (int i = 0; i setlfo ();}}} ikiwa (mode <6) // mishumaa inayoangaza {int speedo; ikiwa (mode == 4) speedo = 6000; mwingine speedo = 22000; kwa (int i = 0; i <7; i ++) twink = twinkler mpya (300, 295, 255, 250, speedo); wakati (ni kweli) {for (int i = 0; i levelnow ()); }} // Mawimbi. // Sehemu hii huanza na mabano yaliyokunjwa tu // kuhakikisha kuwa hakuna majina yanayopingana. // Hakuna haja nyingine ya mabano, hakuna haja ya kuangalia // thamani ya hali.{int lolite = 2; int hilite = 255; int maana; int ampl; kuelea fasedelta = 2.5; kuelea fase; int elong; kuelea phactor; kipindi kirefu; maana = (lolite + hilite) / 2; ampl = hilite - maana; ikiwa (mode == 6) kipindi = 1500; kipindi kingine = 3500; phactor = 6.28318530718 / kipindi; wakati (kweli) {fase = phactor * (millis ()% kipindi); elong = maana + ampl * dhambi (fase); Andika Analog (7, vidogo); AnalogWrite (9, elong); fase = phactor * ((millis () + kipindi / 4)% kipindi); elong = maana + ampl * dhambi (fase); Andika Analog (3, vidogo); Andika Analog (8, vidogo); fase = phactor * ((millis () + kipindi / 2)% kipindi); elong = maana + ampl * dhambi (fase); Andika Analog (4, vidogo); Andika Analog (5, vidogo); fase = phactor * ((millis () + 3 * kipindi / 4)% kipindi); elong = maana + ampl * dhambi (fase); Andika Analog (6, vidogo); } // Wakati wa kuunganisha waya za mshumaa na Arduino, // nilizichanganya na sikuwahi kuzipanga. // Agizo ni muhimu kwa kuunda mifumo ya mawimbi, // kwa hivyo niliandika tu meza hii ndogo: // // Mshumaa # darajani: 2 3 5 4 7 6 1 // Pini ya data kwenye Arduino: 3 4 5 6 7 8 9}} kitanzi batili () {// Kwa kuwa kila programu nyepesi ni kitanzi chake kisicho na mwisho, // niliandika vitanzi vyote katika sehemu ya kuanza () // na sikuacha chochote kwa sehemu hii ya kitanzi (). }
Hatua ya 6: Kuhusu PWM
Viongozi huangaza mkali wakati wa kutumia 3 V. Kutumia 1.5 V tu haziangazi kabisa. Taa za LED hazizimiki vizuri na voltage inayofifia, kama taa za incandescent zinavyofanya. Badala yake wanapaswa kuwashwa na voltage kamili, kisha wazime. Wakati hii inatokea mara 50 kwa sekunde, huangaza vizuri na mwangaza wa 50%, zaidi au chini. Ikiwa wanaruhusiwa kuwa kwenye ms 5 tu na mbali 15 ms, wanaweza kuangaza na mwangaza wa 25%. Mbinu hii ndio inafanya mwanga wa LED upunguzwe. Mbinu hii inaitwa upimaji wa mpigo wa sauti au PWM. Mdhibiti mdogo kama Arduino kawaida huwa na pini za data, ambazo zinaweza kutuma ishara / kuwasha. Baadhi ya pini za data zimejenga uwezo wa PWM. Lakini ikiwa hakuna pini za kutosha zilizojengwa katika PWM, kawaida inawezekana kutumia maktaba za programu zilizojitolea kuunda "pini za programu za PWM".
Katika mradi wangu, nimetumia Arduino Mega2560, ambayo ina vifaa vya PWM kwenye pini 3 - 9. Ikiwa unatumia Arduino UNO, una pini sita tu za PWM. Katika kesi hiyo, ikiwa unahitaji mshumaa wa 7 (au hata zaidi), naweza kupendekeza programu ya maktaba ya PWM ya Brett Hagman, ambayo unaweza kupata hapa.
Ilipendekeza:
Madereva madogo ya H-Bridge - Misingi: Hatua 6 (na Picha)
Madereva madogo ya H-Bridge | Misingi: Halo na karibu tena kwa mwingine anayefundishwa! Katika ile ya awali, nilikuonyesha jinsi nilivyotengeneza koili katika KiCad kwa kutumia hati ya chatu. Kisha nikaunda na kujaribu tofauti kadhaa za koili ili kuona ni ipi inayofanya kazi bora zaidi. Lengo langu ni kuchukua nafasi ya ile kubwa
Kikuza Nguvu cha LM3886, Dual au Bridge (imeboreshwa): Hatua 11 (na Picha)
Amplifier ya Nguvu ya LM3886, Dual au Bridge (iliyoboreshwa): Amplifier dual power (au daraja) amplifier ni rahisi kujenga ikiwa una uzoefu wa umeme. Sehemu chache tu zinahitajika. Kwa kweli ni rahisi hata kujenga mono amp. Maswala muhimu ni usambazaji wa umeme na baridi.Na com
Jinsi: Kuweka Raspberry PI 4 isiyo na kichwa (VNC) na Rpi-picha na Picha: Hatua 7 (na Picha)
Jinsi: Kuweka Raspberry PI 4 isiyo na kichwa (VNC) Na picha ya Rpi na Picha: Ninapanga kutumia Rapsberry PI hii kwenye rundo la miradi ya kufurahisha nyuma kwenye blogi yangu. Jisikie huru kuiangalia. Nilitaka kurudi kutumia Raspberry PI yangu lakini sikuwa na Kinanda au Panya katika eneo langu jipya. Ilikuwa ni muda tangu nilipoweka Raspberry
Uso wa Kujua Picha ya Picha ya OSD: Hatua 11 (na Picha)
Uso wa Kujua Picha ya Picha ya OSD: Maagizo haya yanaonyesha jinsi ya kutengeneza fremu ya picha na utambuzi wa uso kwenye Onyesho la Skrini (OSD). OSD inaweza kuonyesha wakati, hali ya hewa au habari nyingine ya mtandao unayotaka
Utengenezaji wa Picha / Picha ya Picha: 4 Hatua
Picha-based Modeling / Photogrammetry Portraiture: Halo kila mtu, Katika hii inayoweza kuelekezwa, nitakuonyesha mchakato wa jinsi ya kuunda vielelezo vya 3D kwa kutumia picha za dijiti. Mchakato huo unaitwa Photogrammetry, pia inajulikana kama Modeling-Image Modeling (IBM). Hasa, aina ya mchakato huu hutumiwa