Orodha ya maudhui:

Pima Shinikizo na Micro yako: kidogo: Hatua 5 (na Picha)
Pima Shinikizo na Micro yako: kidogo: Hatua 5 (na Picha)

Video: Pima Shinikizo na Micro yako: kidogo: Hatua 5 (na Picha)

Video: Pima Shinikizo na Micro yako: kidogo: Hatua 5 (na Picha)
Video: Почему задувает котёл и тухнет. 8 причин 2024, Novemba
Anonim
Pima Shinikizo na Micro yako: kidogo
Pima Shinikizo na Micro yako: kidogo
Pima Shinikizo na Micro yako: kidogo
Pima Shinikizo na Micro yako: kidogo

Yafuatayo yanaelezewa inaelezea kifaa rahisi kujenga na cha bei nafuu kufanya vipimo vya shinikizo na kuonyesha sheria ya Boyle, kwa kutumia micro: bit pamoja na sensorer ya shinikizo / joto la BMP280.

Wakati mchanganyiko huu wa sindano / shinikizo ya shinikizo tayari imeelezewa katika mojawapo ya mafundisho yangu ya hapo awali, mchanganyiko na micro: bit inatoa fursa mpya, n.k. kwa miradi ya vyumba vya darasa.

Kwa kuongezea, idadi ya maelezo ya matumizi ambayo micro: bit hutumiwa pamoja na sensorer inayoendeshwa na I2C ni mdogo hadi sasa. Natumahi hii inaweza kufundishwa inaweza kuwa mwanzo wa miradi mingine.

Kifaa kinaruhusu kufanya vipimo vya shinikizo la hewa, na kuonyesha matokeo kwenye safu ndogo ya LED: au kwenye kompyuta iliyounganishwa, kwa baadaye kutumia mfuatiliaji wa serial au kazi za kupanga mpangilio wa Arduino IDE. Kwa kuongeza una maoni ya haptic, kwani utasukuma au kuvuta bomba la sindano mwenyewe, na kwa hivyo unahisi nguvu inayohitajika.

Kwa chaguo-msingi, onyesho hukuruhusu kukadiria shinikizo na kiashiria cha kiwango kilichoonyeshwa kwenye tumbo la LED. Mpangilio wa serial wa IDE ya Arduino inaruhusu kufanya vivyo hivyo, lakini kwa azimio bora zaidi (angalia video). Ufumbuzi zaidi wa kina pia unapatikana, k.m. katika lugha ya Usindikaji. Unaweza pia kuonyesha viwango sahihi vya shinikizo na joto kwenye tumbo la LED baada ya kubonyeza vifungo vya A au B mtawaliwa, lakini mfuatiliaji wa serial wa IDE ya Arduino ni haraka sana, ikiruhusu kuonyesha maadili karibu wakati halisi.

Gharama za jumla na ustadi wa kiufundi unaohitajika kujenga kifaa ni duni, kwa hivyo inaweza kuwa mradi mzuri wa darasa chini ya uangalizi wa mwalimu. Kwa kuongezea kifaa kinaweza kuwa kifaa cha miradi ya STEM kwa kuzingatia fizikia au kutumika katika miradi mingine ambapo nguvu au uzani utabadilishwa kuwa thamani ya dijiti.

Kanuni hiyo ilitumika kujenga micro rahisi sana: kupiga mbizi-o-mita, kifaa cha kupima jinsi unavyopiga mbizi.

Kiambatisho 27-Mei-2018:

Kama Pimoroni imeunda maktaba ya MakeCode ya sensa ya BMP280, Hii ilinipa nafasi ya kuunda hati itakayotumika kwa kifaa kilichoelezewa hapa. Hati na faili inayofanana ya HEX inaweza kupatikana katika hatua ya mwisho ya hii inayoweza kufundishwa. Ili kuitumia, pakia tu faili ya HEX kwa micro: bit yako. Hakuna haja ya programu maalum, na unaweza kutumia mhariri wa MakeCode mkondoni kuhariri hati.

Hatua ya 1: Vifaa vilivyotumika

Vifaa vilivyotumika
Vifaa vilivyotumika
Vifaa vilivyotumika
Vifaa vilivyotumika
Vifaa vilivyotumika
Vifaa vilivyotumika
Vifaa vilivyotumika
Vifaa vilivyotumika
  • Kidogo: kidogo, ilipata yangu kutoka Pimoroni - 13.50 GBP
  • Kiunganishi cha Kitronic Edge cha micro: bit - kupitia Pimoroni - 5 GBP, Sema: Pimorini sasa inatoa kontakt-friendly-boarding-friendly inayoitwa pin: bit na pini kwenye bandari za I2C.
  • Vipande vya kichwa 2 x 2 vya kichwa
  • Betri au LiPo kwa ndogo: kidogo (sio lazima, lakini inasaidia), kebo ya betri na swichi (dito) - Pimoroni
  • nyaya za jumper za unganisho la sensorer kwa kontakt Edge
  • nyaya ndefu (!) za kuruka kwa sensor, angalau kwa muda mrefu kama sindano,, f / f au f / m
  • Shinikizo la BMP280 na sensorer ya joto - Banggood - 5 US $ kwa vitengo vitatu Kiwango cha kipimo cha sensor hii ni kati ya 550 na 1537 hPa.
  • Sindano ya catheter ya 150 ml na gasket ya mpira - Amazon au maduka ya vifaa na bustani - karibu dola 2 - 3 za Amerika
  • gundi ya moto / bastola ya gundi moto
  • chuma cha kutengeneza
  • kompyuta na IDE ya Arduino imewekwa

Hatua ya 2: Maagizo ya Mkutano

Maagizo ya Bunge
Maagizo ya Bunge
Maagizo ya Bunge
Maagizo ya Bunge
Maagizo ya Bunge
Maagizo ya Bunge

Vichwa vya Solder kwa kuzuka kwa sensorer BMP280.

Solder vichwa viwili vya pini 2 kwenye pini 19 na ubanike viunganisho 20 vya kontakt ya Edge (angalia picha).

Unganisha ndogo: kidogo kwa kiunganishi cha Edge na kompyuta yako.

Andaa programu na ndogo: kidogo kama ilivyoelezewa katika maagizo ya Adafruit micro: bit. Zisome kabisa.

Sakinisha maktaba zinazohitajika kwa Arduino IDE.

Fungua hati ya BMP280 iliyoambatanishwa katika hatua ya baadaye.

Unganisha sensa kwa kiunganishi cha Edge. GND hadi 0V, VCC hadi 3V, SCL kubandika 19, SDA kubandika 20.

Pakia hati kwa micro: bit.

Angalia kuwa sensor inatoa data inayofaa, maadili ya shinikizo yanapaswa kuwa karibu 1020 hPa, iliyoonyeshwa kwenye mfuatiliaji wa serial. Kwa hali, angalia nyaya na unganisho kwanza, kisha usakinishaji wa programu, na usahihishe.

Zima ndogo: kidogo, ondoa sensa.

Endesha nyaya ndefu za kuruka kupitia bandari ya sindano. Ikiwa utalazimika kupanua ufunguzi. Kuwa mwangalifu kuacha kwamba nyaya zinaharibiwa.

Unganisha sensa kwa nyaya za kuruka. Angalia kuwa uhusiano ni sahihi na mzuri. Unganisha kwenye micro: bit.

Angalia kuwa sensorer inaendesha kwa usahihi. Kuvuta nyaya kwa uangalifu, songa sensorer juu ya sindano.

Ingiza plunger na uisogeze kidogo zaidi kuliko nafasi ya kupumzika inayotarajiwa (100 ml).

Ongeza gundi moto hadi mwisho wa duka la sindano na urudishe plunger nyuma kidogo. Angalia ikiwa sindano imefungwa vizuri hewa, vinginevyo ongeza gundi moto zaidi. Acha kupoa gundi moto.

Angalia tena kwamba sensor inafanya kazi. Ikiwa unahamisha bomba, nambari kwenye mfuatiliaji wa serial na onyesho la micro: bit inapaswa kubadilika.

Ikihitajika unaweza kurekebisha sauti kwenye sindano kwa kuibana karibu na gasket na kusonga plunger.

Hatua ya 3: Nadharia kidogo na Vipimo Vingine vya Vitendo

Nadharia kidogo na Vipimo Vingine vya Vitendo
Nadharia kidogo na Vipimo Vingine vya Vitendo
Nadharia kidogo na Vipimo Vingine vya Vitendo
Nadharia kidogo na Vipimo Vingine vya Vitendo

Na kifaa kilichoelezewa hapa, unaweza kuonyesha uwiano wa ukandamizaji na shinikizo katika majaribio rahisi ya fizikia. Kama sindano inakuja na kiwango cha "ml" juu yake, hata majaribio ya upimaji ni rahisi kufanya.

Nadharia iliyo nyuma yake: Kulingana na sheria ya Boyle, [Kiasi cha Shinikizo] ni thamani ya mara kwa mara kwa gesi kwa joto fulani.

Hii inamaanisha ikiwa unabana kiasi cha gesi N-fold, i.e.juzuu ya mwisho ni 1 / N zizi la asili, shinikizo lake litapanda N-fold, kama: P0 * V0 = P1 * V1 = cons t. Kwa maelezo zaidi, tafadhali angalia nakala ya Wikipedia juu ya sheria za gesi. Katika usawa wa bahari, shinikizo la barometri kawaida huwa katika kiwango cha 1010 hPa (hecto Pascal).

Kwa hivyo kuanzia sehemu za kupumzika za k.v. V0 = 100 ml na P0 = 1000 hPa, ukandamizaji wa hewa hadi karibu 66 ml (i.e. V1 = 2/3 * V0) itasababisha shinikizo la karibu 1500 hPa (P1 = 3/2 ya P0). Kuvuta plunger hadi 125 ml (5/4 fold volume) husababisha shinikizo la 800 hPa (shinikizo la 4/5). Vipimo ni sahihi kwa kushangaza kwa kifaa rahisi.

Kifaa hukuruhusu kuwa na maoni ya moja kwa moja ya haptic ni nguvu ngapi inahitajika kukandamiza au kupanua kiwango kidogo cha hewa kwenye sindano.

Lakini pia tunaweza kufanya hesabu kadhaa na kuziangalia kwa majaribio. Fikiria tunasisitiza hewa hadi 1500 hPa, kwa shinikizo la msingi la barometric la 1000 hPa. Kwa hivyo tofauti ya shinikizo ni 500 hPa, au Pa 50, 000. Kwa sindano yangu, kipenyo (d) cha pistoni ni karibu 4 cm au mita 0.04.

Sasa unaweza kuhesabu nguvu inayohitajika kushikilia pistoni katika nafasi hiyo. Imepewa P = F / A (Shinikizo ni Nguvu iliyogawanywa na eneo), au kubadilishwa F = P * A. Kitengo cha SI cha nguvu ni "Newton" N, kwa urefu "Meter" m, na 1 Pa ni 1N kwa kila mita ya mraba. Kwa pistoni iliyozunguka, eneo linaweza kuhesabiwa kwa kutumia A = ((d / 2) ^ 2) * pi, ambayo inatoa mita za mraba 0.00125 kwa sindano yangu. Kwa hivyo

50, 000 Pa * 0.00125 m ^ 2 = 63 N.

Duniani, 1 N inahusiana na uzani wa gr 100, kwa hivyo 63 N ni sawa na kushikilia uzani wa kilo 6.3.

Hii inaweza kuchunguzwa kwa urahisi kwa kutumia mizani. Sukuma sindano na bomba kwenye mizani, hadi shinikizo la karibu 1500 hPa lifikiwe, kisha soma kiwango. Au sukuma mpaka kiwango kionyeshe juu ya kilo 6-7, kisha bonyeza kitufe cha "A" na usome thamani iliyoonyeshwa kwenye tumbo la LED ndogo: kidogo. Kama ilivyotokea, makadirio kulingana na mahesabu hapo juu hayakuwa mabaya. Shinikizo juu kidogo ya 1500 hPa inayohusiana na "uzito" ulioonyeshwa wa karibu kilo 7 kwa mizani ya mwili (angalia picha). Pia unaweza kubadilisha wazo hili na utumie kifaa kujenga kiwango rahisi cha dijiti kulingana na vipimo vya shinikizo.

Tafadhali fahamu kuwa kikomo cha juu cha sensor ni karibu 1540 hPa, kwa hivyo shinikizo yoyote juu ya hii haiwezi kupimwa na inaweza kuharibu sensa.

Kando na malengo ya kielimu, mtu anaweza pia kutumia mfumo kwa matumizi kadhaa ya ulimwengu, kwani inaruhusu kupima nguvu ambazo zinajaribu kusonga kwa njia moja au nyingine. Kwa hivyo unaweza kupima uzito uliowekwa kwenye bomba au nguvu ya athari inayopiga kwenye plunger. Au jenga swichi ambayo inaamsha taa au buzzer au hucheza sauti baada ya thamani fulani ya kizingiti kufikiwa. Au unaweza kuunda ala ya muziki ambayo hubadilisha masafa kulingana na nguvu ya nguvu inayotumiwa kwa plunger. Au tumia kama mtawala wa mchezo Tumia mawazo yako na ucheze!

Hatua ya 4: Hati ya MicroPython

Imeambatanishwa unapata hati yangu ya BMP280 ya micro: bit. Ni chanzo cha hati ya BMP / BME280 nilipata mahali pengine tovuti ya Banggood, pamoja na maktaba ya Adafruit ya Microbit. Ya kwanza hukuruhusu kutumia sensor ya Banggood, ya pili inarahisisha utunzaji wa onyesho la 5x5 la LED. Shukrani zangu ziwaendee watengenezaji wa zote mbili.

Kwa chaguo-msingi, hati inaonyesha matokeo ya vipimo vya shinikizo katika hatua 5 kwenye onyesho ndogo la 5: 5 la LED, ikiruhusu kuona mabadiliko bila kuchelewa kidogo. Thamani sahihi zinaweza kuonyeshwa kwa usawa kwenye mfuatiliaji wa mfululizo wa Arduino IDE, au grafu iliyo na maelezo zaidi inaweza kuonyeshwa mpangilio wa seral wa IDE ya Arduino.

Ukibonyeza kitufe cha A, viwango vya shinikizo vilivyopimwa huonyeshwa kwenye safu ndogo ya LED: bit ya 5x5. Ikiwa unasisitiza kitufe cha B, maadili ya joto yanaonyeshwa. Ingawa hii inaruhusu kusoma data sahihi, hupunguza mizunguko ya kipimo kwa kiasi kikubwa.

Nina hakika kuwa kuna njia nzuri zaidi za kupanga kazi na kuboresha hati. Msaada wowote unakaribishwa.

# pamoja na xxx

# pamoja na Adafruit_Microbit_Matrix microbit; #fafanua BME280_ADDRESS 0x76 bila saini ndefu ndani hum_raw, temp_raw, pres_raw; iliyosainiwa kwa muda mrefu t_fine; uint16_kumba_T1; int16_kumba_T2; int16_kumba_T3; uint16_t dig_P1; int16_kumba_P2; int16_kumba_P3; int16_kumba_P4; int16_kumba_P5; int16_kumba_P6; int16_kumba_P7; int16_kumba_P8; int16_kumba_P9; int8_kumba_H1; int16_kumba_H2; int8_kumba_H3; int16_kumba_H4; int16_kumba_H5; int8_kumba_H6; vyombo vya // kwa thamani zilizopimwa int value0; thamani ya int1; thamani ya int2; thamani ya int3; thamani ya int4; // ------------------------------------------------ -------------------------------------------------- ------------------ usanidi batili () {uint8_t osrs_t = 1; // Upungufu wa joto x 1 uint8_t osrs_p = 1; // Upungufu wa shinikizo x 1 uint8_t osrs_h = 1; // Upungufu wa unyevu x 1 uint8_t mode = 3; // Hali ya kawaida uint8_t t_sb = 5; // Kichujio cha 1000ms uint8_t = 0; // Chuja uint8_t spi3w_en = 0; // 3-waya SPI Lemaza uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | mode; uint8_t config_reg = (t_sb << 5) | (chujio << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial. Kuanza (9600); // Serial.println ("Joto [deg C]"); // Serial.print ("\ t"); Serial.print ("Shinikizo [hPa]"); // kichwa cha waya Wire. kuanza (); andikaReg (0xF2, ctrl_hum_reg); andikaReg (0xF4, ctrl_meas_reg); andikaReg (0xF5, config_reg); somaTrim (); // microbit. kuanza (); // microbit.print ("x"); kuchelewesha (1000); } // ----------------------------------------------- -------------------------------------------------- ----- kitanzi batili () {double temp_act = 0.0, press_act = 0.0, hum_act = 0.0; iliyosainiwa kwa muda mrefu int_cal; unsigned long int press_cal, hum_cal; int N; // weka viwango vya kizingiti kwa onyesho la tumbo la LED, katika hPa mara mbili max_0 = 1100; maradufu max_1 = 1230; maradufu max_2 = 1360; mara mbili mbili = 1490; somaData (); temp_cal = calibration_T (temp_raw); vyombo vya habari_cal = calibration_P (pres_raw); hum_cal = calibration_H (hum_raw); temp_act = (mara mbili) temp_cal / 100.0; bonyeza_act = (mara mbili) bonyeza_cal / 100.0; hum_act = (mara mbili) hum_cal / 1024.0; microbit safi (); // kuweka upya tumbo la LED / * Serial.print ("PRESS:"); Serial.println (bonyeza_act); Serial.print ("hPa"); Serial.print ("TEMP:"); Serial.print ("\ t"); Serial.println (temp_act); * / ikiwa (! digitalRead (PIN_BUTTON_B)) {// kuonyesha maadili kwa ucheleweshaji wa nambari za kupima miduara microbit.print ("T:"); alama ndogo ndogo (temp_act, 1); alama ndogo ndogo ("'C"); // Serial.println (""); } mwingine ikiwa (! digitalRead (PIN_BUTTON_A)) {microbit.print ("P:"); microbit.print (bonyeza_act, 0); microbit.print ("hPa"); } mwingine {// kuonyesha maadili ya shinikizo kama saizi au mistari katika kiwango fulani // hatua 5: 1490 hPa // vizingiti vimefafanuliwa na max_n maadili ikiwa (bonyeza_act> max_3) {(N = 0); // safu ya juu} mwingine ikiwa (bonyeza_act> max_2) {(N = 1); } vingine ikiwa (bonyeza_act> max_1) {(N = 2); } vingine ikiwa (bonyeza_act> max_0) {(N = 3); } mwingine {(N = 4); // safu ya msingi} // Serial.println (N); // kwa madhumuni ya maendeleo // microbit.print (N); // kama Line // microbit.drawLine (N, 0, 0, 4, LED_ON); // maadili ya kuhamisha kwa thamani inayofuata ya mstari4 = thamani3; thamani3 = thamani2; thamani2 = thamani1; thamani1 = thamani0; thamani0 = N; // chora picha, safu na microbit.drawPixel ya safu (0, value0, LED_ON); // kama Pixel: safu, safu. 0, 0 kushoto microbit ya kona ya juu.drawPixel (1, value1, LED_ON); microbit.drawPixel (2, value2, LED_ON); microbit.drawPixel (3, value3, LED_ON); microbit.drawPixel (4, thamani4, LED_ON); } // kutuma data kwa mfuatiliaji wa serial na mpangaji wa serial // Serial.println (press_act); // thamani ya kutuma kwa bandari ya serial kwa onyesho la nambari, hiari

Serial.print (vyombo vya habari_tenda); // tuma thamani kwa bandari ya serial kwa mpangaji

// chora mistari ya kiashiria na rekebisha safu iliyoonyeshwa ya Serial.print ("\ t"); Rangi ya serial (600); Serial.print ("\ t"); Serial.print (1100), Serial.print ("\ t"); Serial.println (1600); kuchelewesha (200); // Pima mara tatu kwa sekunde} // ---------------------------------------- -------------------------------------------------- -------------------------------------------------- - // zifuatazo zinahitajika kwa sensa ya bmp / bme280, endelea kama ni batili kusomaTrim () {uint8_t data [32], i = 0; // Rekebisha 2014 / Wire.anza Usafirishaji (BME280_ADDRESS); Andika waya (0x88); Uwasilishaji wa waya (); Ombi la Wire. Toka (BME280_ADDRESS, 24); // Rekebisha 2014 / wakati (Wire haipatikani ()) {data = Wire.read (); i ++; } Waya.anza Usafirishaji (BME280_ADDRESS); // Ongeza 2014 / Wire.write (0xA1); // Ongeza 2014 / Wire.endUsambazaji (); // Ongeza 2014 / Wire.requestFrom (BME280_ADDRESS, 1); // Ongeza 2014 / data = Wire.read (); // Ongeza 2014 / i ++; // Ongeza 2014 / Wire.anza Usafirishaji (BME280_ADDRESS); Andika waya (0xE1); Uwasilishaji wa waya (); Ombi la Wire. Toka (BME280_ADDRESS, 7); // Rekebisha 2014 / wakati (Wire haipatikani ()) {data = Wire.read (); i ++; } dig_T1 = (data [1] << 8) | data [0]; dig_P1 = (data [7] << 8) | data [6]; dig_P2 = (data [9] << 8) | data [8]; dig_P3 = (data [11] << 8) | data [10]; dig_P4 = (data [13] << 8) | data [12]; dig_P5 = (data [15] << 8) | data [14]; dig_P6 = (data [17] << 8) | data [16]; dig_P7 = (data [19] << 8) | data [18]; dig_T2 = (data [3] << 8) | data [2]; dig_T3 = (data [5] << 8) | data [4]; dig_P8 = (data [21] << 8) | data [20]; dig_P9 = (data [23] << 8) | data [22]; dig_H1 = data [24]; dig_H2 = (data [26] << 8) | data [25]; dig_H3 = data [27]; dig_H4 = (data [28] << 4) | (0x0F & data [29]); dig_H5 = (data [30] 4) & 0x0F); // Rekebisha 2014 / dig_H6 = data [31]; // Rekebisha 2014 /} utupu wa kuandikaReg (uint8_t reg_adress, data uint8_t) {Wire.beginTransmission (BME280_ADDRESS); Andika waya (reg_adress); Andika waya (data); Uwasilishaji wa waya (); }

batili kusomaData ()

{int i = 0; data ya uint32_t [8]; Uwasilishaji wa waya (BME280_ADDRESS); Andika waya (0xF7); Uwasilishaji wa waya (); Ombi la Wire. Toka (BME280_ADDRESS, 8); wakati (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (data [0] << 12) | (data [1] 4); temp_raw = (data [3] << 12) | (data [4] 4); hum_raw = (data [6] << 8) | data [7]; }

iliyosainiwa kwa muda mrefu calibration_T (saini int int adc_T)

{imesainiwa kwa muda mrefu int var1, var2, T; var1 = ((((adc_T >> 3) - ((saini ndefu int) dig_T1 11; var2 = (((((adc_T >> 4 4) - ((saini ndefu int) dig_T1)) * ((adc_T >> 4) - ((saini ndefu int) dig_T1))) >> 12) * ((saini ndefu int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; kurudi T;} calibration_P ya muda mrefu isiyosainiwa (iliyosainiwa muda mrefu int adc_P) {saini ndefu int var1, var2; saini ndefu int P; = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((saini ndefu int) dig_P6); var2 = var2 + ((var1 * ((iliyosainiwa muda mrefu) dig_P5)) 2) + (((saini muda mrefu int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + ((((sign long int) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768 + var1)) * ((saini ndefu int) dig_P1)) >> 15); ikiwa (var1 == 0) {kurudi 0; } P = (((unsigned long int) (((sign long int) 1048576) -adc_P) - (var2 >> 12))) * 3125; ikiwa (P <0x80000000) {P = (P << 1) / ((unsigned long int) var1); } mwingine {P = (P / (unsigned long int) var1) * 2; } var1 = (((saini muda mrefu int) dig_P9) * ((saini ndefu int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((iliyosainiwa muda mrefu int) (P >> 2)) * ((saini ndefu int) dig_P8)) >> 13; P = (unsigned long int) ((sign long int) P + ((var1 + var2 + dig_P7) >> 4)); kurudi P; } usafirishaji wa muda mrefu usiotiwa saini_H (uliosainiwa muda mrefu int adc_H) {uliosainiwa kwa muda mrefu int v_x1; v_x1 = (t_fine - ((iliyosainiwa kwa muda mrefu int) 76800)); v_x1 = (((((adc_H << 14) - (((saini ndefu int) dig_H4) 15) * ((((((v_x1 * ((sign long int) dig_H6)) >> 10) * (((v_x1 * ((iliyosainiwa muda mrefu int) dig_H3)) >> 11) + ((iliyosainiwa kwa muda mrefu int) 32768))) >> 10) + ((iliyosainiwa kwa muda mrefu int) 2097152)) * ((iliyosainiwa kwa muda mrefu) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 419430400? 419430400: v_x1); kurudi (uns int long)

Hatua ya 5: Maandiko ya MakeCode / JavaScript

Hati za MakeCode / JavaScript
Hati za MakeCode / JavaScript

Pimoroni ametoa enviro hivi karibuni: kidogo, ambayo inakuja na sensor ya shinikizo la BMP280, sensa ya taa / rangi na kipaza sauti cha MEMS. Wanatoa pia MicroPython na maktaba ya MakeCode / JavaScript.

Nilitumia baadaye kuandika maandishi ya MakeCode kwa sensorer ya shinikizo. Faili ya hex inayofanana inaweza kunakiliwa moja kwa moja kwa micro: bit yako. Nambari imeonyeshwa hapa chini na inaweza kubadilishwa kwa kutumia kihariri cha MakeCode mkondoni.

Ni tofauti ya hati ya micro: bit dive-o-meter. Kwa chaguo-msingi inaonyesha tofauti ya shinikizo kama grafu ya bar. Kubonyeza kitufe A huweka shinikizo la kumbukumbu, kubonyeza kitufe B inaonyesha tofauti kati ya shinikizo halisi na la kumbukumbu katika hPa.

Mbali na toleo la msingi la msimbo wa bar unapata pia "X", toleo la crosshair na toleo la "L", linalokusudiwa kurahisisha usomaji.

basi Safuwima = 0

acha ibaki = 0 acha Mstari = 0 acha Meta = 0 acha Delta = 0 acha Ref = 0 let Is = 0 Is = 1012 basic. showLeds (`# # # # #.. # #. #. #. #. #.. # # # # # # ``) Ref = 1180 ya msingi. ClearScreen () basic.forever (() => {basic.clearScreen () if (input.buttonIsPressed (Button. A)) {Ref = envirobit.get Pressure () msingi.onyeshaLeds (`#. #. #. #. #. # # # # #. #. #. #. #. #`) msingi.pumzika (1000)} mwingine ikiwa (kifungo. {basic.showString ("" + Delta + "hPa") msingi.pause (200) basic.clearScreen ()} mwingine {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (Delta) ikiwa (Mita> = 400) {Mstari = 4} mwingine ikiwa (Mita> = 300) {Mstari = 3} mwingine ikiwa (Mita> = 200) {Mstari = 2} mwingine ikiwa (Mita> = 100) {Mstari = 1} kingine {Row = 0} baki = Mita - Safu mlalo * 100 ikiwa (imebaki> = 80) {Safuwima = 4} nyingine ikiwa (imebaki> = 60) {Safuwima = 3} nyingine ikiwa (imebaki> = 40) {Column = 2 } vingine ikiwa msingi. sitisha (500)}}

Ilipendekeza: