Cov txheej txheem:

Flickering Candle Bridge: 6 Kauj Ruam (nrog Duab)
Flickering Candle Bridge: 6 Kauj Ruam (nrog Duab)

Video: Flickering Candle Bridge: 6 Kauj Ruam (nrog Duab)

Video: Flickering Candle Bridge: 6 Kauj Ruam (nrog Duab)
Video: Книга 10 — Аудиокнига Виктора Гюго «Горбун из Нотр-Дама» (главы 1–7) 2024, Hlis ntuj nqeg
Anonim
Image
Image

Cov lus qhia no qhia yuav ua li cas tig lub tswm ciab yooj yim nrog lub teeb zoo li qub mus rau qhov pom kev zoo nkauj ci ci nrog qhov hloov pauv tsis kawg ntawm lub teeb ci, ntsais, cov qauv yoj thiab tsis muaj dab tsi. Kuv yuav los ntawm Tom Qab Kev Muag Khoom Christmas tus tswm ciab choj rau 8 €. Nws muaj 7 lub teeb coj thiab qee qhov 33 V 3 W phab ntsa adapter. Nws ci nrog xim dawb thiab sov thiab yuav zoo rau txoj haujlwm no, qhov uas kuv yuav tso Arduino los ua tswm ciab tswm ciab. Qhov nrov tshaj plaws Arduino yog Arduino Uno. Hauv qhov haujlwm no, Kuv yuav siv Arduino Mega 2560.

Kuv yuav thim 30 V lub zog siv hluav taws xob thiab yuav siv qhov yooj yim 5 V lub txhab nyiaj tso nyiaj rau lub xov tooj ntawm tes raws li lub zog siv.

Qhov zoo uas yuav tsum paub txog lub txhab nyiaj hluav taws xob yog tias lawv muaj lub hauv paus hluav taws xob, uas hloov lub roj teeb 3.7 V rau 5 V. Yog tias lub txhab nyiaj tau siv rau Arduino raws li DIY cov khoom siv, lub cuab yeej tsis tuaj yeem tso nws tus kheej hauv kev txuag lub zog pw thiab pib dua tom qab ob peb feeb. Qhov ntawd yuav kaw lub txhab nyiaj hluav taws xob. Tus tswm ciab tswm ciab no tsis muaj hom pw. Nws siv lub hwj chim tas li, ua kom lub txhab nyiaj muaj zog, kom txog thaum lub hwj chim cable raug rub tawm.

Cov vis dis aus qhia txog tus tswm ciab choj nyob rau hauv hom zoo li qub thiab nyob hauv qhov muag tag nrho. Qhov flickering tag nrho yog qhov txaus ntshai heev rau lub qhov muag, thaum cov vis dis aus ua kom nws tawm me ntsis. Tom qab kho vajtse tau kho tas, suav nrog txiav cov hlua, txuas qhov txuas tshiab thiab ntxiv qee yam khoom siv, txhua qhov kev xav tau lub teeb yog tsim los ntawm kev sau cov cai rau Arduino. Cov qauv kuv suav nrog hauv cov lus qhia no yog:

  • 4 qhov sib txawv flickering teeb raws li tswm ciab tiag
  • 2 sib txawv twinkling (random flashing ntawm lwm yam teeb zoo li qub)
  • 2 txawv qauv txawv
  • yooj yim zoo li qub teeb

Hloov cov qauv tshwm sim los ntawm lub laub khawm, ib tus neeg siv sib cuam tshuam. Qhov ntau tus qauv xav tau thiab ntau qhov kev hloov kho uas ib tus xav tau, ntau lub nyees khawm thiab pob qhov rooj yuav tsum tau ntxiv. Tab sis kev zoo nkauj nyob hauv qhov yooj yim. Khaws tus naj npawb ntawm cov qauv xaiv tseg. Xaiv qhov chaw zoo tshaj plaws thaum ntsuas thiab ntsuas, tsis yog los ntawm kev ntxiv ntau ntawm kev tswj hwm rau kho vajtse.

Khoom siv

  • 1 LED tswm ciab choj nrog 7 qhov muag teev. Xyuas kom tseeb tias nws yog tus qauv qis DC, nrog rau roj teeb lossis nrog lub phab ntsa txuas lub zog siv hluav taws xob, uas hloov pauv cov neeg tuag 110 - 240 V AC rau qee qhov 6 - 30 V DC. Yog li nws muaj kev nyab xeeb zoo rau hack tus tswm ciab choj.
  • 1 Arduino Mega (lwm yam microcontroller yuav ua, tsuas yog xyuas kom koj tuaj yeem ua haujlwm nws)
  • 1 tsab ntawv ua zaub mov noj
  • jumper xov hlau thiab lwm cov xaim
  • soldering cuab yeej
  • multimeter
  • 7 tus tiv thaiv, 120 Ω
  • 1 lub laub khawm (Kuv yuav qhia koj li cas koj tuaj yeem siv lub khawm tsim ntawm Arduino hloov)
  • Lub darlington transistor IC rau 7 lub transistors, ULN2803AP yuav ua (Yog tias koj siv Arduino Uno lossis Meaga, koj tsis xav tau qhov no tiag)
  • Lub txhab nyiaj 5 V txhais tau rau lub xov tooj ntawm tes

Kauj Ruam 1: Txheeb Xyuas Yam Koj Tau Txais

Kuaj Yam Koj Tau Txais
Kuaj Yam Koj Tau Txais
Kuaj Yam Koj Tau Txais
Kuaj Yam Koj Tau Txais

Tshawb nrhiav seb qhov hluav taws xob txhua qhov LED ua haujlwm li cas thiab tam sim no ntws ntau npaum li cas.

  1. Qhib hauv qab ntawm tus tswm ciab choj. Nrhiav ob txoj hlua uas mus rau ib lub tswm ciab.
  2. Tshem tawm qee qhov rwb thaiv tsev los ntawm cov xov hlau qhia pom cov xov tooj tooj liab yam tsis tau txiav cov xov tooj liab.
  3. Qhib lub teeb (so, nws tsuas yog ob peb volts) thiab ntsuas qhov hluav taws xob hla cov xov tooj liab uas qhia.
  4. Txiav lub cable ntawm ib qho ntawm cov ntsuas ntsuas (ntawm qhov no lub teeb tawm mus, tau kawg), hle tawm qee qhov rwb thaiv tsev (3 - 4 hli) ntawm ob qho kawg. Ntsuas qhov tam sim no dhau los. Koj ua dab tsi yog koj rov txuas cov kab txiav nrog koj lub multimeter, tso tag nrho cov dej ntws tam sim no los ntawm koj lub multimeter, uas tam sim no qhia koj tus nqi tam sim no.

Kuv nyeem ntawv

Qhov hluav taws xob ntau dua ib lub tswm ciab (qib 3): 3.1 V

Nco ntsoov tias lub hwj chim los rau tus tswm ciab choj yog 33 V. Yog li xya zaus 3.1 V tsuas yog 21.7 V. Ntawm qee cov tswm ciab yuav tsum muaj qhov tiv thaiv ntxiv. Yog tias kuv ntsuas lub tswmciab voltage, nws yuav tsum muaj qee qhov 11 V.

Tam sim no ntws los thaum taws tswm ciab (qib 4): 19 mA

Kuv yuav ua txhua yam nrog 5 V 2 A roj teeb pob. Rau cov tswm ciab, Kuv yuav tsum tso qhov hluav taws xob los ntawm 5 V txog 3 V. Kuv xav tau tus tiv thaiv, uas yuav poob qhov hluav taws xob 2 V ntawm 19 mA tam sim no.

2 V / 0.019 A = 105 Ω

Lub zog dissipating yog:

2 V * 19 mA = 38 mW

Qhov ntawd yog qhov tsis tsim nyog. Ntau ntau tuaj yeem tshuab lub resistor nws tus kheej. Txawm li cas los xij, tsis muaj 105 Ω resistor kuv yuav tshuab lub LED. Kuv muaj 100 Ω thiab 120 Ω resistors. Kuv mus nrog 120 Ω. Nws muab kev tiv thaiv ntau dua.

Kuaj txhua 7 lub tswm ciab nrog 3 V muab lub teeb ci, tshwj rau ib lub tswm ciab, uas tsuas muaj lub teeb ci heev, tsuas muaj qee qhov 0.8 mA hla mus. Nov yog kuv lub tswm ciab nrog tus tiv thaiv ntxiv. Nws muab tawm tias lwm cov tswm ciab tsis muaj cov tiv thaiv txhua. Cov teeb LED siv hauv chandelier tsuas yog txhais rau 3 V! Cov tswm ciab nrog cov tshuaj tiv thaiv ntxiv yuav tsum tau qhib siv kev ua phem me me, tab sis tsis muaj dab tsi tawg. Tus tiv thaiv tau pom tsuas yog hauv qab me me LED sab hauv lub teeb tswm ciab yas. Kuv yuav tsum tau desolder nws tam sim ntawd thiab resolder cov xov hlau. Nws tau ntxhov me ntsis, txij li cov hlau txuas ua kom sov qee cov kua nplaum kub, uas tau siv rau kev sib dhos.

Yog li tam sim no kuv paub tias lub zog twg los xij kuv siv, txawm tias qhov hluav taws xob yog dab tsi, Kuv yuav tsum tso qhov hluav taws xob qis rau 3 V tso cai 19 mA hla mus.

Yog tias kuv tau paub dua nrog thev naus laus zis LED, Kuv yuav tau lees paub hom LED siv thiab kuv yuav paub tias nws xav tau 3 V.

Kauj Ruam 2: Qee Qhov Muag

Qee qhov Soldering
Qee qhov Soldering
Qee qhov Soldering
Qee qhov Soldering

Hauv cov kauj ruam no kuv txuas txhua qhov zoo (+) xov hlau los ntawm 5 tswm ciab rau ib lub xaim. Tom qab ntawd kuv ntxiv qhov tsis zoo cais (-) xaim rau txhua lub tswm ciab. Lub teeb LED tsuas yog teeb thaum '+' thiab '-' mus zoo. Txij li thaum koj tsuas muaj ob lub xov tooj zoo ib yam xaus los ntawm txhua lub tswm ciab, koj yuav tsum ntsuas qhov twg yog '+' thiab uas yog '-'. Rau qhov no koj xav tau 3 V lub zog siv. Kuv muaj lub roj teeb me me suav nrog ob lub roj teeb AAA. Lub roj teeb 3 V ua haujlwm zoo rau kev sim, ib yam nkaus.

Tus tswm ciab choj xav tau 8 kab txuas los ntawm Arduino thiab tus choj. Yog tias koj pom ib lub xov tooj nrog 8 lub xov hlau thaiv, uas yuav zoo heev. Ib lub xaim yuav tsum tuav 120 mA, tus so ntawm lawv tsuas yog nqa 20 mA ntau tshaj. Kuv xaiv siv 4 ob txoj hlua hlau txuas, uas kuv tau tshwm sim muaj.

Thawj daim duab qhia pom tias kuv tau npaj ib qho xaim txuas mus rau txhua qhov '+' xov ntawm cov tswm ciab. Tshem tawm qee qhov rwb thaiv tsev ntawm cov xaim hluav taws xob rau txhua lub tswm ciab. Ntxiv ib qho ntawm cov raj rwb thaiv tsev ntsws (kab txaij daj hauv daim duab) rau txhua qhov sib koom ua ke thiab muab tso rau ntawm qhov chaw raug ntawm txoj kab sib txuas. Solder '+' xaim los ntawm txhua lub tswm ciab rau nws qhov sib koom, npog qhov sib koom nrog lub raj ntsws thiab ntsws nws. Tau kawg, daim kab xev nplaum yooj yim zoo, ib yam, txhua yam yuav raug npog thaum kawg.

Daim duab thib ob qhia txog '-' xov hlau uas txhua lub tswm ciab xav tau. Cov '+' xaim mus ncaj qha rau 5 V tus pin ntawm Arduino (lossis tej zaum dhau los ntawm lub khob cij). Txhua '-' xaim mus rau nws tus kheej tus pin ntawm transistor IC (dua, tej zaum dhau los ntawm lub khob cij).

Ib qho Arduino feem ntau hu ua pawg thawj coj. Daim ntawv qhia zaub mov tseem yog ib yam uas koj siv hauv cov qauv. Qhov kuv piav qhia hauv phau ntawv qhia no yog tsab ntawv. Kuv yuav tsis tsim nws mus rau hauv cov khoom ci ci nrog txhua yam zais hauv cov yas zoo. Kev coj nws los ntawm tsab ntawv mus rau qib tom ntej yuav txhais tau tias hloov lub khob cij nrog cov ntawv luam tawm Circuit board thiab cov khoom siv sib txuas thiab txawm tias hloov Arduino nrog tsuas yog ib qho yooj yim microcontroller nti (qhov zoo li nti yog lub hlwb ntawm Arduino). Thiab muaj txhua yam haum rau hauv rooj plaub yas lossis sab hauv tus choj raug tsoo.

Kauj Ruam 3: Kev Sib Txuas

Cov Kev Sib Txuas
Cov Kev Sib Txuas
Cov Kev Sib Txuas
Cov Kev Sib Txuas
Cov Kev Sib Txuas
Cov Kev Sib Txuas
Cov Kev Sib Txuas
Cov Kev Sib Txuas

Txog Arduinos, coj los ntawm nplooj ntawv no:

  • Tag nrho max tam sim no rau cov tswv yim/tso tawm tus pin: 40mA
  • Qhov sib npaug ntawm cov dej tawm ntawm txhua qhov kev tawm tswv yim/tawm pins ua ke: 200mA

Kuv cov tswm ciab kos 19 mA txhua, thaum siv los ntawm 3 V. Muaj xya ntawm lawv, uas ua rau 133 mA. Yog li kuv tuaj yeem txhawb lawv ncaj qha los ntawm cov pins tso tawm. Txawm li cas los xij, Kuv muaj qee qhov seem darlington transistor ICs. Yog li kuv xav, vim li cas tsis. Kuv lub voj voog ua qhov yog qhov tsim nyog: cov ntaub ntawv pins tsuas yog rau cov cim, tsis yog rau lub zog. Hloov chaw kuv siv 5 V tus pin ntawm Arduino rau lub zog LED teeb. Thaum sim khiav, Kuv muaj kuv lub laptop txuas nrog Arduino. Txhua yam yog siv los ntawm lub laptop USB, uas muab 5 V. Arduino Mega muaj lub fuse ntawm nws tus kheej, uas tshuab ntawm 500 mA los tiv thaiv lub computer. Kuv cov tswm ciab kos ntau tshaj 133 mA. Arduino tej zaum tsawg dua. Txhua yam ua haujlwm tau zoo, thaum siv los ntawm lub khoos phis tawj, yog li siv lub roj teeb 5 V txuas nrog USB chaw nres nkoj ntawm Arduino tsuas yog zoo.

Cov ntaub ntawv pins D3 - D9 mus rau IC ULN2803APGCN. Cov LEDs ua haujlwm ntawm 3 V. Txhua lub teeb txuas nrog 5 V qhov chaw thiab txuas ntxiv rau 120 Ω resistor. Txuas ntxiv mus rau ib qho channel ntawm IC, uas thaum kawg txuas lub Circuit Court rau hauv av los ntawm darlington transistor hauv IC.

Lub laub khawm tau ntxiv rau hauv Circuit kom pab qee tus neeg siv. Tus choj tswm ciab tuaj yeem yog li muaj ob peb tus neeg siv xaiv cov haujlwm.

Lub laub khawm hauv Circuit Court txuas nrog RESET thiab GND. Qhov no yog qhov ua tau zoo hauv lub khawm pib dua ua. Txij li thaum kuv tsis suav txhua yam hauv rooj plaub yas, kuv siv lub khawm pib dua ntawm Arduino rau kev tswj hwm txoj haujlwm. Ntxiv ib lub pob raws li daim duab yuav ua haujlwm zoo ib yam li lub pob pib dua. Qhov haujlwm ua haujlwm los ntawm kev nco qab tias lub teeb pom kev zoo tau siv lub sijhawm kawg qhov haujlwm tau ua haujlwm li cas. Yog li, txhua qhov pib dua yuav nce mus rau qhov kev pab cuam tom ntej.

Cov duab qhia yuav ua li cas cov kab hluav taws xob tshiab tawm ntawm tus choj, yuav ua li cas kuv tso lub transistor IC thiab tus tiv thaiv ntawm lub khob cij thiab yuav ua li cas cov jumper xov hlau txuas rau Arduino Mega. Kuv txiav 4 tus txiv neej-txiv neej jumper xov hlau rau hauv 8 ib nrab xov hlau, uas kuv tau muab txuas rau 8 kab hluav taws xob tawm los ntawm tus tswm ciab choj. Txoj kev no kuv tsuas tuaj yeem txuas cov kab hluav taws xob rau hauv lub khob cij.

Lwm yam tsis muaj transistors

Hauv cov kauj ruam dhau los, Kuv tau npaj ib qho '+' xaim rau tswm ciab thiab cais '-' xov hlau, uas hla dhau transistor IC mus rau hauv av. Thaum ib cov ntaub ntawv tus pin mus siab, qhov sib xws '-' xaim tau txais hauv av los ntawm nws cov transistor thiab LED teeb.

Txuas cov xov '-' ncaj qha mus rau cov ntaub ntawv pins ntawm Arduino yuav ua haujlwm, ib yam, tab sis nco ntsoov nco npaum li cas tam sim no cov ntaub ntawv pins tuaj yeem sawv! Txoj hauv kev no yuav xav tau kev hloov pauv hauv kuv qhov haujlwm. Nws yuav xav tau cov ntaub ntawv pins mus qis kom qhib lub tswm ciab. Txhawm rau siv kuv txoj haujlwm zoo li nws yog, koj yuav tsum hloov '+' thiab '-' hauv cov tswm ciab. Muaj ib qho '-' xaim rau tswm ciab, uas mus rau GND ntawm Arduino. Thiab cov xov hlau sib cais khiav ntawm '+' xaim ntawm tswm ciab thiab cov ntaub ntawv tus pin ntawm Arduino.

Kauj Ruam 4: Cov Kev Pab Cuam Teeb

Kuv qhov program, uas kuv nthuav qhia hauv cov kauj ruam tom ntej, mus dhau 9 qhov kev pab cuam lub teeb. Thawb lub pob yuav dub tawm lub teeb rau ib pliag, tom qab ntawd cov teeb pom kev zoo hauv qab no pib. Cov kev pabcuam yog raws li hauv qab no:

  1. Muaj zog flickering. Cov tswm ciab tswm ciab. Qhov no zoo li tsis txaus ntseeg thaum koj ntsia lawv los ntawm qhov ze, tab sis yuav saib zoo los ntawm qhov deb thiab tej zaum tom qab lub qhov rais ci ntsa iab. Txawm li cas los xij, koj tus neeg nyob ze yuav hu xov tooj rau hluav taws.
  2. Mos muag. Zoo heev Zoo li cov tswm ciab tiag tiag hauv ib chav uas tsis muaj cua ntsawj ntshab.
  3. Txawv txawv flickering. Cov tswm ciab hloov pauv tau zoo ntawm qhov muaj zog thiab muag muag muag hauv qee qhov 30 s sib nrug.
  4. Txawv txawv flickering. Zoo li #3, tab sis txhua lub tswm ciab sib txawv ntawm nws tus kheej ntawm 30 s thiab 60 s.
  5. Fast twinkle. Cov tswm ciab ci ntawm ib qib zoo li qub dimmed thiab ua rau twinkle. Hauv nruab nrab muaj ib twinkle txhua ob.
  6. Qeeb twinkle. Zoo li #5, tab sis ntawm tus nqi qeeb dua.
  7. Yoj nrawm los ntawm nruab nrab sab saum toj tswm ciab mus rau qhov qis.
  8. Qoj qeeb los ntawm nruab nrab sab saum toj tswm ciab mus rau qhov qis.
  9. Lub teeb ci zoo li qub. Kuv yuav tsum suav nrog qhov no, tsis xav kom tshem ntawm qhov ua haujlwm qub.

Kauj ruam 5: Txoj Cai

/*

FLICKERING CANDLE BRIDGE */ // Tshaj tawm hom kev sib txawv los tuav lub xeev // los ntawm kev rov ua haujlwm _attribute _ ((ntu ("noinit"))) tsis tau kos npe hom; // Thaum qhov kev zov me nyuam pib tom qab rov pib dua, daim ntawv no // ntawm lub cim xeeb tsis tau pib ua ntej, tab sis tuav tus nqi // nws muaj ua ntej rov pib dua. Thawj thawj zaug ntawm // program tau khiav, nws tuav tus nqi tsis raug. / * * Chav tswm ciab tuav txhua yam xav tau * rau xam lub teeb theem rau * tswm ciab flickering. */ chav kawm tswm ciab {ntiag tug: ntev maxtime; ntev mintime; ntev maxlite; ntev minlite; ntev meanlite; ntev origmaxtime; ntev keeb kwm; ntev origmaxlite; ntev origminlite; ntev origmeanlite; ntev deltamaxtime; ntev sij hawm; ntev deltamaxlite; ntev deltaminlite; ntev deltameanlite; ntev lforate; ntev ntev; pib ntev; lub hom phiaj ntev; ntab phactor; sij hawm ntev; ntev pib; ntev sij hawm; void newtarget (tsis muaj dab tsi); ntev onetarget (tsis muaj dab tsi); pej xeem: tswm ciab (ntev lev, ntev mit, ntev mal, ntev mil, ntev mel, ntev eo); ntev levelnow (tsis muaj dab tsi); void initlfo (ntev deltamat, ntev deltamit, ntev deltamal, ntev deltamil, ntev deltamean, ntev npaum li cas); tsis muaj teeb meem setlfo (tsis muaj dab tsi); }; tswmciab:: tswmciab (ntev mat, ntev mit, ntev mal, ntev mil, ntev mel, ntev eo): maxtime (mat), mintime (mit), maxlite (mal), minlite (mil), meanlite (mel), evenout (eo), origmaxtime (mat), origmintime (mit), origmaxlite (mal), origminlite (mil), origmeanlite (mel) {phiaj = meanlite; newtarget (); } / * * levelnow () rov qab teeb lub tswm ciab yuav tsum muaj tam sim no. * Lub luag haujlwm saib xyuas kev txheeb xyuas qib teeb pom kev tshiab tshiab thiab * lub sijhawm nws yuav tsum siv kom mus txog qib ntawd. Qhov kev hloov pauv tsis yog kab, * tab sis ua raws kab nkhaus sigmoid. Thaum nws tsis yog lub sijhawm los txheeb xyuas qib * qib tshiab, kev ua haujlwm tsuas yog rov ua lub teeb ci. */ ntev tswm ciab:: levelnow (tsis muaj dab tsi) {pab ntev, tam sim no; ntab t1, t2; tam sim no = millis (); yog (tam sim no> = phiaj sijhawm) {pab = phiaj; newtarget (); rov qab pab; } lwm tus {// pab = phiaj * (millis () - pib lub sijhawm) / ncua sijhawm + pib * (phiaj sijhawm - millis ()) / ncua sijhawm; t1 = ntab (phiaj sijhawm - tam sim no) / ncua sijhawm; t2 = 1. - t1; // Qhov no yog sigmoid suav pab = t1*t1*t1*pib + t1*t1*t2*pib*3 + t1*t2*t2*phiaj*3 + t2*t2*t2*phiaj; pab rov qab; }} tsis muaj tswm ciab:: newtarget (tsis muaj dab tsi) {ntev sum; sum = 0; rau (ntev i = 0; i <evenout; i ++) sum+= onetarget (); pib = phiaj; phiaj = sum / evenout; starttime = millis (); lub sij hawm phiaj = pib lub sijhawm + random (sijhawm, sijhawm) deltatime = phiaj sijhawm - pib; } tswm ciab ntev:: onetarget (tsis muaj dab tsi) {yog (random (0, 10) checkcheck + 100) {lastcheck = tam sim no; / * * Algo rau twinkling "tom qab tus nqi milliseconds": * Pib tshawb xyuas tom qab tus nqi / 2 milliseconds * Lub sijhawm tus nqi / 2 milliseconds, ua * lub sijhawm twinkle kom tau 50 %. * Yog tias tus nqi yog 10,000 ms, thaum 5000 ms lub npib yog * ntxeev 50 zaug. * 1/50 = 0.02 * Yog random (10000) lub sijhawm pib + tus nqi / 2) {yog (random (tus nqi) lub sijhawm)) rov qab lowlite; rov qab (pib - lowlite) * (phiaj sijhawm - tam sim no) / (phiaj sijhawm - pib sijhawm) + lowlite; } tsis muaj dab tsi twinkler:: twink (tsis muaj dab tsi) {starttime = millis (); lub sij hawm = random (sijhawm, sijhawm) + sijhawm pib; pib = random (minlite, maxlite); } void teeb () {int coj; // Nyeem hom khawv koob sib txawv, uas yuav tsum qhia // dab tsi lub teeb pom kev zoo tau khiav lub sijhawm kawg, nce nws // thiab rov pib dua rau xoom yog tias dhau los. hom ++; hom %= 9; // Qhov no saib xyuas txhua yam muaj txiaj ntsig // yog thawj zaug uas Arduino // tau ua txoj haujlwm no. / * * TSEEM CEEB TSEEM CEEB * ============== * * Qhov tseem ceeb uas txoj haujlwm no ua yog tso tawm PWM * teeb liab rau LED teeb. Ntawm no kuv teeb tus pin 3 txog 9 rau * hom tso zis. Ntawm Arduino Mega2560, cov pins tso tawm * zoo PWM cov cim. Yog tias koj muaj lwm tus Arduino, txheeb xyuas * tus pin (thiab pes tsawg tus) koj tuaj yeem siv. Koj tuaj yeem ib txwm * sau cov cai kom siv software PWM, yog tias koj Arduino * tsis tuaj yeem muab kho vajtse PWM txaus. * */ pinMode (3, OUTPUT); pinMode (4, NTAWV); pinMode (5, NTAWV); pinMode (6, NTAWV); pinMode (7, NTAWV); pinMode (8, NTAWV); pinMode (9, NTAWV); tus pinMode (LED_BUILTIN, OUTPUT); analogWrite (LED_BUILTIN, 0); // Tsuas yog hloov qhov teeb meem liab coj ntawm Arduino tswm ciab *tuaj yeem [7]; // npaj siv cov tswm ciab flickering, txawm tias koj siv lawv lossis tsis twinkler *twink [7]; // npaj siv cov tswm ciab twinkling… yog (hom == 8) {rau (int i = 3; i <10; i ++) analogWrite (i, 255); thaum (muaj tseeb); // Txhua lub sijhawm qhov haujlwm no ua haujlwm, nws nkag mus rau // yam zoo li tsis muaj qhov xaus, kom txog rau thaum pib dua // khawm raug nias. } yog (hom <2) // flickering {ntev maxtime_; ntev mintime_; ntev maxlite_; ntev minlite_; ntev meanlite_; ntev txawm _; yog (hom == 0) {maxtime_ = 250; mintime_ = 50; maxlite_ = 256; minlite_ = 0; meanlite_ = 128; sib_ = 1; } yog (hom == 1) {maxtime_ = 400; mintime_ = 150; maxlite_ = 256; minlite_ = 100; meanlite_ = 200; sib_ = 1; } rau (int i = 0; i <7; i ++) {tau = tswmciab tshiab (maxtime_, mintime_, maxlite_, minlite_, meanlite_, even_); } thaum (muaj tseeb) // Lub voj tsis kawg rau cov tswm ciab flickering {rau (int i = 0; kuv levelnow ()); }} yog (hom <4) // lfo ntxiv rau qhov flickering {yog (hom == 2) // tib lfo (30 s) rau txhua lub tswm ciab {rau (int i = 0; kuv initlfo (75, 50, 0, 50, 36, 30000);}} yog (hom == 3) // sib txawv lfo: s rau cov tswm ciab {rau (int i = 0; kuv initlfo (75, 50, 0, 50, 36, 20000); tau [1]-> initlfo (75, 50, 0, 50, 36, 25000); tuaj yeem [2]-> initlfo (75, 50, 0, 50, 36, 30000); tuaj yeem [3]-> initlfo (75, 50, 0, 50, 36, 35000); tau [4]-> initlfo (75, 40, 0, 50, 36, 40000); tuaj yeem [5]-> initlfo (75, 30, 0, 50, 26, 45000); tau [6]-> initlfo (75, 20, 0, 50, 16, 50000); tuaj yeem [7]-> initlfo (75, 10, 0, 50, 6, 55000);} thaum (muaj tseeb) // Lub voj tsis kawg rau cov tswm ciab flickering nrog lfo {ntev kawg = 0; rau (int i = 0; kuv levelnow ()); yog (millis ()> lastclock + 4000) {lastclock = millis (); rau (int kuv = 0; kuv setlfo ();}}} yog (hom <6) // taws tswm ciab {int speedo; yog (hom == 4) speedo = 6000; lwm qhov speedo = 22000; rau (int i = 0; i <7; i ++) twink = twinkler tshiab (300, 295, 255, 250, speedo); thaum (tseeb) {rau (int i = 0; kuv levelnow ())); }} // Woj. // Tshooj lus no pib nrog cov kab zauv xwb // kom ntseeg tau tias tsis muaj qhov sib txawv ntawm cov npe sib txawv. // Tsis muaj lwm qhov xav tau rau cov kab zauv, tsis xav tau kev tshuaj xyuas // tus nqi ntawm hom.{int lolite = 2; int cov = 255; koj mean; ua ampl; ntab fasedelta = 2.5; ntab fase; koj elong; ntab phactor; ntev ntev; txhais = (lolite + hilite) / 2; ampl = hilite - txhais; yog (hom == 6) lub sijhawm = 1500; lwm lub sijhawm = 3500; phactor = 6.28318530718 / sijhawm; thaum (tseeb) {fase = phactor * (millis () % sijhawm); elong = txhais + ampl * sin (fase); analogWrite (7, ntev); analogWrite (9, ntev); fase = phactor * ((millis () + period / 4) % period); elong = txhais + ampl * sin (fase); analogWrite (3, ntev); analogWrite (8, qhov ntev); fase = phactor * ((millis () + period / 2) % period); elong = txhais + ampl * sin (fase); analogWrite (4, qhov ntev); analogWrite (5, qhov ntev); fase = phactor * ((millis () + 3 * period / 4) % period); elong = txhais + ampl * sin (fase); analogWrite (6, ntev); } // Thaum txuas cov tswm ciab xov mus rau Arduino, // Kuv tau muab lawv sib xyaw thiab tsis tau txais lawv nyob rau hauv kev txiav txim. // Qhov kev txiav txim yog qhov tseem ceeb rau kev tsim cov qauv nthwv dej, // yog li kuv tsuas yog sau lub rooj me me no rau kuv: // // Tswmciab# hauv tus choj: 2 3 5 4 7 6 1 // Cov ntaub ntawv pin ntawm Arduino: 3 4 5 6 7 8 9}} tsis muaj dab tsi voj () {// Txij li txhua lub teeb pom kev zoo yog nws tus kheej lub voj tsis muaj qhov kawg, // Kuv tau sau tag nrho cov loops hauv qhov pib () ntu // thiab tsis muaj dab tsi rau lub voj () ntu no. }

Kauj Ruam 6: Txog PWM

Cov leds ci ci thaum siv nrog 3 V. Siv tsuas yog 1.5 V lawv tsis pom kev txhua. LED teeb tsis ploj zoo nrog qhov hluav taws xob ploj, zoo li cov teeb ci ua. Hloov chaw lawv yuav tsum tau tig nrog lub zog hluav taws xob tag nrho, tom qab ntawd tua tawm. Thaum qhov no tshwm sim 50 zaug hauv ib pliag, lawv ci zoo nkauj nrog 50 % ci ci, ntau dua lossis tsawg dua. Yog tias lawv raug tso cai tsuas yog 5 ms thiab tawm 15 ms, lawv yuav ci nrog 25 % ci ci. Cov txheej txheem no yog qhov ua rau LED teeb dimmable. Cov txheej txheem no hu ua pulse width modulation lossis PWM. Ib lub microcontroller zoo li Arduino feem ntau muaj cov ntaub ntawv pins, uas tuaj yeem xa tawm/tawm cov cim qhia. Qee cov ntaub ntawv pins tau tsim muaj peev xwm rau PWM. Tab sis yog tias tsis muaj cov pins txaus nrog ua hauv PWM, feem ntau nws muaj peev xwm siv cov tsev qiv ntawv tshwj xeeb los tsim "software PWM pins".

Hauv kuv qhov haujlwm, Kuv tau siv Arduino Mega2560, uas muaj kho vajtse PWM ntawm tus pin 3 - 9. Yog tias koj siv Arduino UNO, koj tsuas muaj 6 tus PWM pins. Hauv qhov xwm txheej ntawd, yog tias koj xav tau lub tswm ciab 7 (lossis ntau dua), Kuv tuaj yeem pom zoo Brett Hagman lub software PWM tsev qiv ntawv, uas koj tuaj yeem pom ntawm no.

Pom zoo: