Բովանդակություն:

Միկրո ՝ բիթ Աղմուկի մակարդակի հայտնաբերիչ ՝ 3 քայլ
Միկրո ՝ բիթ Աղմուկի մակարդակի հայտնաբերիչ ՝ 3 քայլ

Video: Միկրո ՝ բիթ Աղմուկի մակարդակի հայտնաբերիչ ՝ 3 քայլ

Video: Միկրո ՝ բիթ Աղմուկի մակարդակի հայտնաբերիչ ՝ 3 քայլ
Video: Check out the Ulanzi UW-MIC, the most cost-effective wireless microphone! 2024, Հուլիսի
Anonim
Միկրո ՝ բիթերի աղմուկի մակարդակի հայտնաբերիչ
Միկրո ՝ բիթերի աղմուկի մակարդակի հայտնաբերիչ
Միկրո ՝ բիթերի աղմուկի մակարդակի հայտնաբերիչ
Միկրո ՝ բիթերի աղմուկի մակարդակի հայտնաբերիչ
Միկրո ՝ բիթերի աղմուկի մակարդակի հայտնաբերիչ
Միկրո ՝ բիթերի աղմուկի մակարդակի հայտնաբերիչ

Սա ընդամենը մի կարճ օրինակ է աղմուկի մակարդակի դետեկտորի համար, որը հիմնված է միկրո: բիթի և Pimoroni enviro: բիթի վրա:

Խոսափողը շրջակա միջավայրում. Չափվող առավելագույն արժեքները պահվում և մնում են ցուցադրված LED մատրիցի վրա:

Արժեքները կարող են ցուցադրվել նաև թվերով:

Այսպիսով, դա հիմնականում աղմուկի մակարդակի հայտնաբերման շատ պարզ գործիք է, օրինակ. դասասենյակի փորձերի համար:

Նկարագրված մեթոդը, որը ցույց է տալիս միկրո վրա սենսորի կողմից հայտնաբերված փաստացի և առավելագույն արժեքները. Բիթ 5x5 LED մատրիցը կարող է օգտագործվել նաև այլ պարամետրերի համար `որպես ջերմաստիճան, խոնավություն կամ ճնշում:

Քայլ 1: Օգտագործված մասեր և ծրագրակազմ

Սարքավորումներ:

  • Միկրո: բիթ
  • A Pimoroni enviro: bit - գալիս է ձայնի, լույսի և գույնի և ճնշման/ջերմաստիճանի/խոնավության երեք տվիչներով (20 GBP Pimoroni- ում)
  • Պիմորոնի հզորություն. Բիթ - սարքը մարտկոցներից սնուցելու համար (պարտադիր չէ, կամ միկրոբիտը սնուցելու որևէ այլ եղանակ, 6 ֆունտ ստեռլինգ Pimoroni- ում)

Softwareրագրային ապահովում:

  • Microsoft MakeCode
  • The Pimoroni enviro. Bit MakeCode ընդլայնում

Սցենարը ձեր micro: bit- ում բեռնելու համար պարզապես պատճենեք տրամադրված hex ֆայլը ձեր micro: bit- ին `կցված միջավայրով` bit:

Քայլ 2: Կոդ

Կոդը գրված է Microsoft MakeCode- ի միջոցով ՝ արգելափակման ռեժիմում, օգտագործելով Enviro: Bit ընդլայնումը: Ստորև կգտնեք համապատասխան JavaScript ծածկագիրը:

Envirobit.getSoundLevel () ֆունկցիան կարդում է սենսորից ձայնի մակարդակը ՝ արժեքը վերադարձնելով 0 -ից մինչև 443:

Հաստատուն signal_max- ը սահմանում է դինամիկ տիրույթի առավելագույն արժեքը, որը կցուցադրվի LED մատրիցի վրա, վերը նշված արժեքները կդիտարկվեն որպես ազդանշանային_մաքս: Սա թույլ է տալիս օպտիմալացնել ձեր դիմումի համար սարքի զգայունությունը:

Չափման շրջանակում հայտնաբերված առավելագույն արժեքը պահվում է աղմուկ_մաքս տարբերակում և մնում է ցուցադրված LED մատրիցի վրա:

Սեղմելով «A» կոճակը վերականգնում է noise_max- ը և մաքրում էկրանը, «B» կոճակը սեղմելով ՝ չափված աղմուկի արժեքը ցուցադրվում է որպես իրական թիվ:

Արժեքը ցուցադրելու համար signal_max- ի ներքևի արժեքները տեղադրվում են 25 «աղբարկղի» մեջ, որոնք ներկայացված են մեկ LED- ով ՝ սկսած 0 -ից (վերև ձախ) մինչև 24 (ներքևի աջ): Այնուհետեւ հաշվարկվում է x/y դիրքը, եւ համապատասխան LED- ը միացված է: Signal_max- ից բարձր արժեքները տեղադրվում են աղբարկղ 24 -ում: Եթե արժեքը ցածր է noise_max- ից, ապա LED- ները նորից կմիացվեն:

թող աղմուկ_ x = 0 թույլ տվեք signal_max = 0 թող աղմուկ_5 = 0 թույլ տա աղմուկ_25 = 0 թույլ տվեք աղմուկ_մաքս = 0 Basic.showString («Աղմուկ») noise_max = 0 աղմուկ_25 = 0 աղմուկ_5 = 0 ազդանշան_մաքս = 250 հիմնական. հավիտյան (գործառույթ () {մինչ (մուտքագրում.buttonIsPressed (Button. B)) {basic.showNumber (envirobit.getSoundLevel ()) basic.showString ("-")} if (input.buttonIsPressed (Button. A)) {noise_max = 0 basic.clearScreen ()} noise_25 = Math.floor (envirobit.getSoundLevel () / signal_max * 25) if (noise_25> 24) {noise_25 = 24} noise_5 = Math.floor (noise_25 / 5) noise_x = noise_25 - noise_5 * 5 led.plot (noise_x, աղմուկ_5) հիմնական. դադար (200) եթե (աղմուկ_25 աղմուկ_մաքս) {աղմուկ_մաքս = աղմուկ_25}})

Քայլ 3. Codeերմաստիճանի (խոնավության, ճնշման) տվիչի կոդ ՝ նվազագույն/առավելագույն ցուցանիշներով

Minերմաստիճանի (խոնավության, ճնշման) տվիչի կոդ ՝ նվազագույն/առավելագույն ինդիկատորներով
Minերմաստիճանի (խոնավության, ճնշման) տվիչի կոդ ՝ նվազագույն/առավելագույն ինդիկատորներով

Այստեղ դուք կգտնեք enciro- ի ծածկագիրը `բիտ ջերմաստիճանի գործառույթը:

Signal_min և signal_max պարամետրերը սահմանում են LED մատրիցի վրա ցուցադրվող նվազագույն և առավելագույն ջերմաստիճանը (*C): Այստեղ ազդանշան_ հիմնական = 5 և ազդանշան_մաքս = 30 սահմանելը հանգեցնում է նրան, որ 5 և 6*C- ն ներկայացված է վերին ձախ լուսադիոդով (0, 0) և 28/29*C- ով ՝ ներքևի աջ լուսադիոդով (4, 4):

Օպտիմալացման տեղ կա. Ընթացիկ ծածկագրով ջերմաստիճանի բարձրացումն ու նվազումը LED- ների հետք են թողնում միացված կամ անջատված: Մյուս կողմից, դա թույլ է տալիս կարդալ ընթացիկ ջերմաստիճանի միտումը (ընկնել/բարձրանալ), քանի որ ընթացիկ արժեքը նշված է թարթող LED- ով:

GetTemperature () - ի getHumidity () կամ getPressure () - ով փոխարինելը և համապատասխանաբար signal_min և signal_max արժեքների ճշգրտումը (օրինակ ՝ համապատասխանաբար 0/100 % համապատասխանաբար 950/1150 hPA) թույլ կտա ցուցադրել այս պարամետրերը LED մատրիցի վրա:

թող Temp_x = 0let Temp_5 = 0 թույլ տվեք signal_delta = 0 թող Temp_25 = 0 թող Temp_Min = 0 թույլ տվեք signal_min = 0 թող Temp_Max = 0 թույլ տա signal_max = 0 basic.showString ("Temp") signal_max = 30 signal_min = 5 signal_delta = signal_max - signal_min Temp_Max = 0 Temp_Min = 24 Basic.forever (գործառույթը () {if (input.buttonIsPressed (Button. A)) {Temp_Max = 0 Temp_Min = 24 basic.clearScreen ()} while (input.buttonIsPressed (Button. B)) { Basic.showNumber (Math.round (envirobit.getTemperature ())) basic.showString («C»)} Temp_25 = Math.floor ((envirobit.getTemperature () - signal_min) / signal_delta * 25) եթե (Temp_25> 24) {Temp_25 = 24} եթե (Temp_25 <0) {Temp_25 = 0} Temp_5 = Math.floor (Temp_25 / 5) Temp_x = Temp_25 - Temp_5 * 5 led.plot (Temp_x, Temp_5) Basic.pause (100) եթե (Temp_25 Temp_Min) {led.unplot (Temp_x, Temp_5)} եթե (Temp_25> Temp_Max) {Temp_Max = Temp_25} եթե (Temp_25 <Temp_Min) {Temp_Min = Temp_25}})

Խորհուրդ ենք տալիս: