Turinys:
- 1 žingsnis: Naudotos medžiagos
- 2 žingsnis: Surinkimo instrukcijos
- 3 žingsnis: šiek tiek teorijos ir keletas praktinių matavimų
- 4 žingsnis: „MicroPython“scenarijus
- 5 veiksmas: „MakeCode“/„JavaScript“scenarijai
Video: Išmatuokite slėgį naudodami savo mikro: bitą: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Šioje instrukcijoje aprašomas lengvai pagaminamas ir nebrangus prietaisas, skirtas matuoti slėgį ir pademonstruoti Boyle'o dėsnį, naudojant mikro: bitą kartu su slėgio/temperatūros jutikliu BMP280.
Nors šis švirkšto/slėgio jutiklio derinys jau buvo aprašytas vienoje iš mano ankstesnių instrukcijų, derinys su „micro: bit“suteikia naujų galimybių, pvz. klasių kambarių projektams.
Be to, programų, kuriose „micro: bit“naudojamas kartu su I2C valdomu jutikliu, aprašymų skaičius iki šiol yra gana ribotas. Tikiuosi, kad ši pamoka gali būti kitų projektų atspirties taškas.
Prietaisas leidžia atlikti kiekybinius oro slėgio matavimus ir rodyti rezultatus „micro: bit“LED matricoje arba prijungtame kompiuteryje, kad vėliau būtų galima naudoti „Arduino IDE“serijinio monitoriaus arba serijinio braižytuvo funkcijas. Be to, jūs turite neigiamą grįžtamąjį ryšį, nes patys stumiate ar trauksite švirkšto stūmoklį ir taip pajusite reikiamą galią.
Pagal numatytuosius nustatymus ekranas leidžia įvertinti slėgį pagal lygio indikatorių, rodomą LED matricoje. „Arduino IDE“serijinis braižytuvas leidžia daryti tą patį, tačiau su daug geresne raiška (žr. Vaizdo įrašą). Galimi ir sudėtingesni sprendimai, pvz. apdorojimo kalba. Taip pat galite parodyti tikslią išmatuotą slėgio ir temperatūros reikšmę LED matricoje, paspaudę atitinkamai A arba B mygtukus, tačiau serijinis „Arduino IDE“monitorius yra daug greitesnis, leidžiantis rodyti vertes beveik realiuoju laiku.
Bendros išlaidos ir techniniai įgūdžiai, reikalingi įrenginiui sukurti, yra gana maži, todėl tai gali būti puikus klasės projektas, prižiūrimas mokytojo. Be to, prietaisas gali būti įrankis STEM projektams, daugiausia dėmesio skiriant fizikai, arba naudojamas kituose projektuose, kuriuose jėga ar svoris turi būti paversti skaitmenine verte.
Šis principas buvo panaudotas kuriant labai paprastą „micro: bit nive-o-meter“-prietaisą matuoti, kiek giliai nardote.
2018 m. Gegužės 27 d. Papildymas:
Kadangi Pimoroni sukūrė „MakeCode“biblioteką BMP280 jutikliui, tai suteikė man galimybę sukurti scenarijų, kuris būtų naudojamas čia aprašytam įrenginiui. Scenarijų ir atitinkamą HEX failą rasite paskutiniame šios instrukcijos žingsnyje. Norėdami jį naudoti, tiesiog įkelkite HEX failą į „micro: bit“. Nereikia jokios specialios programinės įrangos, o scenarijų galite redaguoti naudodami internetinį „MakeCode“redaktorių.
1 žingsnis: Naudotos medžiagos
- „Micro: bit“, gautas mano iš „Pimoroni“- 13,50 GBP
- „Kitronic Edge“jungtis, skirta „micro: bit“- per „Pimoroni“- 5 GBP.
- 2 x 2 kontaktų antraštės
- Akumuliatorius arba „LiPo“mikro: bitui (nebūtinas, bet naudingas), akumuliatoriaus kabelis su jungikliu (dito) - „Pimoroni“
- jungiamieji kabeliai, skirti jutikliams prijungti prie „Edge“jungties
- ilgi (!) jungiamieji kabeliai jutikliui, mažiausiai tokie ilgi, kaip švirkštas,, f/f arba f/m
- BMP280 slėgio ir temperatūros jutiklis - „Banggood“- 5 JAV doleriai už tris vienetus. Šio jutiklio matavimo diapazonas yra nuo 550 iki 1537 hPa.
- 150 ml plastikinis kateterio švirkštas su guminiu tarpikliu - „Amazon“arba techninės įrangos ir sodo parduotuvėse - apie 2–3 JAV dolerius
- karštas klijų/karštų klijų pistoletas
- lituoklis
- kompiuteris su įdiegtu „Arduino IDE“
2 žingsnis: Surinkimo instrukcijos
Lituoklio antraštės prie BMP280 jutiklio išjungimo.
Lituokite dvi 2 kontaktų antgalius prie „Edge“jungties 19 ir 20 kaiščių jungčių (žr. Paveikslėlį).
Prijunkite „micro: bit“prie „Edge“jungties ir kompiuterio.
Paruoškite programinę įrangą ir „micro: bit“, kaip aprašyta „Adafruit micro: bit“instrukcijose. Atidžiai juos perskaitykite.
Įdiekite reikalingas bibliotekas į „Arduino IDE“.
Atidarykite BMP280 scenarijų, pridėtą vėliau.
Prijunkite jutiklį prie „Edge“jungties. GND - 0V, VCC - 3V, SCL - 19, SDA - 20.
Įkelkite scenarijų į „micro: bit“.
Patikrinkite, ar jutiklis pateikia pagrįstus duomenis, slėgio vertės turėtų būti apie 1020 hPa, rodomos nuosekliajame monitoriuje. Tokiu atveju pirmiausia patikrinkite kabelius ir jungtis, tada - programinės įrangos diegimą ir ištaisykite.
Išjunkite „micro: bit“, nuimkite jutiklį.
Peršvirkškite ilgojo jungiklio kabelius per švirkšto išleidimo angą. Jei jums reikia išplėsti angą. Būkite atsargūs, kad nepažeistumėte kabelių.
Prijunkite jutiklį prie jungiamųjų kabelių. Patikrinkite, ar jungtys yra teisingos ir geros. Prisijunkite prie „micro: bit“.
Patikrinkite, ar jutiklis veikia tinkamai. Atsargiai traukdami kabelius, perkelkite jutiklį į švirkšto viršų.
Įdėkite stūmoklį ir pastumkite jį šiek tiek toliau nei pageidaujama poilsio padėtis (100 ml).
Į švirkšto angos galą įpilkite karštų klijų ir šiek tiek pastumkite stūmoklį atgal. Patikrinkite, ar švirkštas uždarytas sandariai, kitaip pridėkite daugiau karštų klijų. Leiskite atvėsti karštiems klijams.
Dar kartą patikrinkite, ar jutiklis veikia. Jei pastumiate stūmoklį, skaičiai serijiniame monitoriuje ir „micro: bit“ekrane turėtų pasikeisti.
Jei reikia, galite reguliuoti švirkšto tūrį, suspausdami jį šalia tarpiklio ir judindami stūmoklį.
3 žingsnis: šiek tiek teorijos ir keletas praktinių matavimų
Naudodami čia aprašytą prietaisą, galite parodyti suspaudimo ir slėgio koreliaciją paprastais fizikos eksperimentais. Kadangi švirkšte yra „ml“skalė, net kiekybinius eksperimentus lengva atlikti.
Jo teorija: Pagal Boyle'o dėsnį [tūris * slėgis] yra pastovi dujų vertė tam tikroje temperatūroje.
Tai reiškia, kad jei suspaudžiate tam tikrą dujų tūrį N kartus, t. Y. Galutinis tūris yra 1/N karto didesnis už originalą, jo slėgis padidės N kartų, kaip: P0*V0 = P1*V1 = minusai t. Norėdami gauti daugiau informacijos, žiūrėkite „Wikipedia“straipsnį apie dujų įstatymus. Jūros lygyje barometrinis slėgis paprastai yra 1010 hPa (hecto Pascal).
Taigi pradedant nuo poilsio vietų, pvz. V0 = 100 ml ir P0 = 1000 hPa, suspaudus orą iki maždaug 66 ml (ty V1 = 2/3 * V0), slėgis bus apie 1500 hPa (P1 = 3/2 iš P0). Patraukus stūmoklį iki 125 ml (5/4 karto tūris), slėgis yra apie 800 hPa (4/5 slėgio). Tokio paprasto prietaiso matavimai yra stebėtinai tikslūs.
Prietaisas leidžia susidaryti tiesioginį haptinį įspūdį, kiek jėgų reikia suspausti ar išplėsti santykinai nedidelį oro kiekį švirkšte.
Bet mes taip pat galime atlikti kai kuriuos skaičiavimus ir juos eksperimentiškai patikrinti. Tarkime, kad suspaudžiame orą iki 1500 hPa, esant baziniam barometriniam slėgiui 1000 hPa. Taigi slėgio skirtumas yra 500 hPa arba 50 000 Pa. Mano švirkšto stūmoklio skersmuo (d) yra apie 4 cm arba 0,04 metro.
Dabar galite apskaičiuoti jėgą, reikalingą laikyti stūmoklį toje padėtyje. Duota P = F/A (slėgis yra jėga padalinta iš ploto) arba transformuota F = P*A. SI jėgos vienetas yra „Niutonas“N, ilgis „Meter“m, o 1 Pa yra 1 N kvadratiniam metrui. Apvalaus stūmoklio plotą galima apskaičiuoti naudojant A = ((d/2)^2)*pi, kuris mano švirkštui suteikia 0,00125 kvadratinių metrų. Taigi
50 000 Pa * 0,00125 m^2 = 63 N.
Žemėje 1 N atitinka 100 g svorį, taigi 63 N yra lygus 6,3 kg svorio laikymui.
Tai galima lengvai patikrinti naudojant svarstykles. Stumkite švirkštą ant svarstyklių, kol bus pasiektas maždaug 1500 hPa slėgis, tada perskaitykite skalę. Arba spauskite, kol svarstyklės parodys apie 6–7 kg, tada paspauskite mygtuką „A“ir perskaitykite „micro: bit“LED matricoje rodomą vertę. Kaip paaiškėjo, įvertinimas, pagrįstas aukščiau pateiktais skaičiavimais, nebuvo blogas. Slėgis, šiek tiek didesnis nei 1500 hPa, koreliavo su rodomu maždaug 7 kg kūno svoriu (žr. Paveikslėlius). Taip pat galite pakeisti šią koncepciją ir naudoti prietaisą, kad sukurtumėte paprastą skaitmeninę skalę, pagrįstą slėgio matavimais.
Atminkite, kad viršutinė jutiklio riba yra apie 1540 hPa, todėl bet kokio slėgio virš jo negalima išmatuoti ir jis gali sugesti.
Be švietimo tikslų, sistemą taip pat galima naudoti kai kurioms realaus pasaulio programoms, nes tai leidžia kiekybiškai išmatuoti jėgas, kurios vienaip ar kitaip bando perkelti stūmoklį. Taigi galite išmatuoti ant stūmoklio uždėtą svorį arba smūgio jėgą. Arba sukurkite jungiklį, kuris įjungia šviesą ar signalą arba leidžia garsą, kai pasiekiama tam tikra ribinė vertė. Arba galite sukurti muzikos instrumentą, kuris keičia dažnį, priklausomai nuo stūmoklio jėgos. Arba naudokite jį kaip žaidimų valdiklį. Pasinaudokite savo vaizduote ir žaiskite!
4 žingsnis: „MicroPython“scenarijus
Pridėtas rasite mano BMP280 scenarijų, skirtą „micro: bit“. Tai yra BMP/BME280 scenarijaus darinys, kurį radau kažkur „Banggood“svetainėje, kartu su „Adafruit“„Microbit“biblioteka. Pirmasis leidžia naudoti „Banggood“jutiklį, antrasis supaprastina 5x5 LED ekrano valdymą. Dėkoju abiejų kūrėjams.
Pagal numatytuosius nustatymus „micro: bit“5x5 LED ekrane scenarijus 5 žingsniais parodo slėgio matavimo rezultatus, leidžiantį pastebėti pokyčius labai greitai. Tikslios vertės gali būti rodomos lygiagrečiai „Arduino IDE“serijos monitoriuje arba išsamesnė diagrama gali būti rodoma „Arduino IDE“brėžinyje.
Jei paspausite mygtuką A, išmatuotos slėgio vertės bus rodomos „micro: bit“5x5 LED matricoje. Jei paspausite mygtuką B, bus rodomos temperatūros vertės. Nors tai leidžia nuskaityti tikslius duomenis, matavimo ciklai žymiai sulėtėja.
Esu tikras, kad yra daug elegantiškesnių būdų užprogramuoti užduotis ir patobulinti scenarijų. Bet kokia pagalba yra laukiama.
#įtraukti xxx
#įtraukti „Adafruit_Microbit_Matrix“mikrobitą; #define BME280_ADDRESS 0x76 unsigned long int hum_raw, temp_raw, pres_raw; pasirašytas ilgas int t_fine; uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t dig_H2; int8_t dig_H3; int16_t dig_H4; int16_t dig_H5; int8_t dig_H6; // matuojamų verčių konteineriai int value0; int vertė1; int vertė2; int vertė3; int vertė4; // ------------------------------------------------ -------------------------------------------------- ------------------ void setup () {uint8_t osrs_t = 1; // Temperatūros viršijimas x 1 uint8_t osrs_p = 1; // Slėgio perteklius x 1 uint8_t osrs_h = 1; // Drėgmės perteklius x 1 uint8_t režimas = 3; // Normalus režimas uint8_t t_sb = 5; // Budėjimo režimas 1000ms uint8_t filter = 0; // Išfiltruoti uint8_t spi3w_en = 0; // 3 laidų SPI Išjungti uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | režimas; uint8_t config_reg = (t_sb << 5) | (filtras << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial.begin (9600); // Serial.println ("Temperatūra [° C]"); // Serial.print ("\ t"); Serial.print ("Slėgis [hPa]"); // antraštė Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); vėlavimas (1000); } // ----------------------------------------------- -------------------------------------------------- -------- void loop () {double temp_act = 0.0, press_act = 0.0, hum_act = 0.0; pasirašytas ilgas int temp_cal; unsigned long int press_cal, hum_cal; int N; // nustatyti slenkstines vertes LED matricos ekranui, hPa dviguba max_0 = 1100; dvigubai max_1 = 1230; dvigubas max_2 = 1360; dvigubas max_3 = 1490; readData (); temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); hum_cal = kalibravimas_H (hum_raw); temp_act = (dvigubas) temp_cal / 100.0; press_act = (dvigubas) press_cal / 100.0; hum_act = (dvigubas) hum_cal / 1024,0; microbit.clear (); // iš naujo nustatyti LED matricą /* Serial.print ("PRESS:"); Serial.println (press_act); Serial.print („hPa“); Serial.print („TEMP:“); Serial.print ("\ t"); Serial.println (temp_act); */ if (! digitalRead (PIN_BUTTON_B)) {// reikšmių rodymas skaičiais vėluoja matuoti apskritimus microbit.print ("T:"); microbit.print (temp_act, 1); microbit.print ("'C"); // Serial.println (""); } else if (! digitalRead (PIN_BUTTON_A)) {microbit.print ("P:"); microbit.print (press_act, 0); microbit.print („hPa“); } else {// rodant slėgio vertes kaip pikselius ar linijas tam tikru lygiu // 5 žingsniai: 1490 hPa // slenksčiai, apibrėžti max_n reikšmėmis, jei (press_act> max_3) {(N = 0); // viršutinė eilutė} else if (press_act> max_2) {(N = 1); } else if (press_act> max_1) {(N = 2); } else if (press_act> max_0) {(N = 3); } dar {(N = 4); // bazinė eilutė} // Serial.println (N); // kūrimo tikslais // microbit.print (N); // kaip eilutė // microbit.drawLine (N, 0, 0, 4, LED_ON); // perkelti reikšmes į kitą eilutės reikšmę4 = vertė3; vertė3 = vertė2; vertė2 = vertė1; reikšmė1 = vertė0; vertė0 = N; // piešti vaizdą, stulpelis po stulpelio microbit.drawPixel (0, value0, LED_ON); // kaip „Pixel“: stulpelis, eilutė. 0, 0 kairiojo viršutinio kampo mikrobit.drawPixel (1, vertė1, LED_ON); microbit.drawPixel (2, vertė2, LED_ON); microbit.drawPixel (3, vertė3, LED_ON); microbit.drawPixel (4, vertė4, LED_ON); } // siųsti duomenis į serijinį monitorių ir serijinį braižytuvą // Serial.println (press_act); // nusiųsti vertę (-es) į nuoseklųjį prievadą, kad būtų rodomas skaitmeninis vaizdas, neprivaloma
Serial.print (press_act); // siųskite vertę į braižytuvo nuoseklųjį prievadą
// brėžti indikatoriaus linijas ir pataisyti rodomą diapazoną Serial.print ("\ t"); Serijinis atspaudas (600); Serial.print ("\ t"); Serial.print (1100), Serial.print ("\ t"); Serial.println (1600); vėlavimas (200); // Matuokite tris kartus per sekundę} // ---------------------------------------- -------------------------------------------------- -------------------------------------------------- - // „bmp/bme280“jutikliui reikia šių dalykų, laikykite jį negaliojančiu readTrim () {uint8_t data [32], i = 0; // Pataisyti 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // Pataisyti 2014/while (Wire.available ()) {data = Wire.read (); i ++; } Wire.beginTransmission (BME280_ADDRESS); // Pridėti 2014/Wire.write (0xA1); // Pridėti 2014/Wire.endTransmission (); // Pridėti 2014/Wire.requestFrom (BME280_ADDRESS, 1); // Pridėti 2014/data = Wire.read (); // Pridėti 2014/i ++; // Pridėti 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // Pataisyti 2014/while (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (duomenys [1] << 8) | duomenys [0]; dig_P1 = (duomenys [7] << 8) | duomenys [6]; dig_P2 = (duomenys [9] << 8) | duomenys [8]; dig_P3 = (duomenys [11] << 8) | duomenys [10]; dig_P4 = (duomenys [13] << 8) | duomenys [12]; dig_P5 = (duomenys [15] << 8) | duomenys [14]; dig_P6 = (duomenys [17] << 8) | duomenys [16]; dig_P7 = (duomenys [19] << 8) | duomenys [18]; dig_T2 = (duomenys [3] << 8) | duomenys [2]; dig_T3 = (duomenys [5] << 8) | duomenys [4]; dig_P8 = (duomenys [21] << 8) | duomenys [20]; dig_P9 = (duomenys [23] << 8) | duomenys [22]; dig_H1 = duomenys [24]; dig_H2 = (duomenys [26] << 8) | duomenys [25]; dig_H3 = duomenys [27]; dig_H4 = (duomenys [28] << 4) | (0x0F ir duomenys [29]); dig_H5 = (duomenys [30] 4) ir 0x0F); // Pataisyti 2014/dig_H6 = duomenys [31]; // Pataisyti 2014/} void writeReg (uint8_t reg_address, uint8_t data) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (duomenys); Wire.endTransmission (); }
void readData ()
{int i = 0; uint32_t duomenys [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); while (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (duomenys [0] << 12) | (duomenys [1] 4); temp_raw = (duomenys [3] << 12) | (duomenys [4] 4); hum_raw = (duomenys [6] << 8) | duomenys [7]; }
pasirašytas ilgas int kalibravimas_T (pasirašytas ilgas int adc_T)
{pasirašytas ilgas int var1, var2, T; var1 = (((((adc_T >> 3) - ((pasirašyta ilga int) dig_T1 11; var2 = ((((((adc_T >> 4) - ((pasirašyta ilga int) dig_T1)) * ((adc_T >> 4) - ((pasirašytas ilgas int) dig_T1))) >> 12) * ((pasirašytas ilgas int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; return T;} nepasirašytas ilgas int kalibravimas_P (pasirašytas ilgas int adc_P) {pasirašytas ilgas int var1, var2; nepasirašytas ilgas int P; var1 = (((pasirašytas ilgas int) t_fine) >> 1) - (pasirašytas ilgas int) 64000; var2 = ((((var1 >> 2) * (var1 >> 2)) >> 11) * ((pasirašytas ilgas int) dig_P6); var2 = var2 + ((var1 * ((pasirašytas ilgas int) dig_P5)) 2) + (((pasirašytas ilgas int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + ((((pasirašytas ilgas int) dig_P2) * var1) >> 1)) >> 18; var1 = (((((32768+var1))*((pasirašytas ilgas int) dig_P1)) >> 15); if (var1 == 0) {return 0; } P = (((nepasirašytas ilgas int) (((pasirašytas ilgas int) 1048576) -adc_P)-(var2 >> 12)))*3125; jei (P <0x80000000) {P = (P << 1) / ((nepasirašytas ilgas int) var1); } else {P = (P / (unsigned long int) var1) * 2; } var1 = (((pasirašytas ilgas int) dig_P9) * ((pasirašytas ilgas int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((pasirašytas ilgas int) (P >> 2)) * ((pasirašytas ilgas int) dig_P8)) >> 13; P = (nepasirašytas ilgas int) ((pasirašytas ilgas int) P + ((var1 + var2 + dig_P7) >> 4)); grąžinti P; } unsigned long int calibration_H (pasirašytas ilgas int adc_H) {pasirašytas ilgas int v_x1; v_x1 = (t_fine - ((pasirašyta ilga int) 76800)); v_x1 = ((((((adc_H << 14) -(((pasirašyta ilga int) dig_H4) 15) * ((((((((v_x1 * ((pasirašyta ilga int) dig_H6)) >> 10) * (((v_x1 * ((pasirašyta ilga int) dig_H3)) >> 11) + ((pasirašyta ilga int) 32768))) >> 10) + ((pasirašyta ilga int) 2097152)) * ((pasirašyta ilga int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - ((((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((pasirašytas ilgas int) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); return (nepasirašytas ilgas int) (v_x1 >> 12);}
5 veiksmas: „MakeCode“/„JavaScript“scenarijai
„Pimoroni“neseniai išleido „enviro: bit“, kuris tiekiamas su BMP280 slėgio jutikliu, šviesos/spalvų jutikliu ir MEMS mikrofonu. Jie taip pat siūlo „MicroPython“ir „MakeCode/JavaScript“biblioteką.
Aš naudoju vėliau, kad parašyčiau slėgio jutiklio „MakeCode“scenarijų. Atitinkamą šešioliktainį failą galima nukopijuoti tiesiai į „micro: bit“. Kodas rodomas žemiau ir gali būti pakeistas naudojant internetinį „MakeCode“redaktorių.
Tai „micro: bit nardymo-metro“scenarijaus variantas. Pagal numatytuosius nustatymus slėgio skirtumas rodomas kaip juostinė diagrama. Paspaudus mygtuką A nustatomas etaloninis slėgis, paspaudus mygtuką B rodomas skirtumas tarp faktinio ir etaloninio slėgio, išreikštas hPa.
Be pagrindinės brūkšninio kodo versijos, taip pat rasite „X“, kryžminio ir „L“versijas, skirtas palengvinti skaitymą.
tegul stulpelis = 0
tegul lieka = 0 tegul eilutė = 0 tegul skaitiklis = 0 tegul Delta = 0 tegul Ref = 0 tegul Is = 0 yra = 1012 basic.showLeds (` # # # # # #.. # #. #. # #… # # # # # # ") Ref = 1180 basic.clearScreen () basic.forever (() => {basic.clearScreen () if (input.buttonIsPressed (Button A)) {Ref = envirobit.getPressure () basic.showLeds (` #. #. #. #. #. # # # # #. #. #. #. #. #`) basic.pause (1000)} else if (input.buttonIsPressed (Button. B)) {basic.showString ("" + Delta + "hPa") basic.pause (200) basic.clearScreen ()} else {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (Delta) if (Meter> = 400) {Row = 4} else if (Meter> = 300) {Row = 3} else if (Meter> = 200) {Row = 2} else if (Meter> = 100) {Row = 1} else {Row = 0} likti = Skaitiklis - Eilutė * 100, jei (likti> = 80) {Stulpelis = 4} else if (likti> = 60) {Stulpelis = 3} else if (likti> = 40) {Stulpelis = 2 } else if (likti> = 20) {Column = 1} else {Column = 0} for (tegul ColA = 0; ColA <= Column; ColA ++) {led.plot (ColA, Row)} basic.pause (500)}})
Rekomenduojamas:
Išmatuokite temperatūrą ir drėgmę naudodami DHT11 / DHT22 ir Arduino: 4 žingsniai
Temperatūros ir drėgmės matavimas naudojant DHT11 / DHT22 ir Arduino: Šioje „Arduino“pamokoje sužinosime, kaip naudojant DHT11 arba DHT22 jutiklį temperatūrai ir drėgmei matuoti naudojant „Arduino“plokštę
Išmatuokite tinklo dažnį naudodami „Arduino“: 7 žingsniai (su nuotraukomis)
Išmatuokite tinklo dažnį naudodami „Arduino“: Balandžio 3 d., Indijos ministras pirmininkas Shri. Balandžio 5 d. 21 val. Narendra Modi kreipėsi į indus, prašydama išjungti šviesą ir uždegti lempą (Diya), pažymint Indijos kovą su koronavirusu. Po pranešimo kilo didelis chaosas
„Raspberry Pi“naudojimas, išmatuokite aukštį, slėgį ir temperatūrą naudodami MPL3115A2: 6 žingsniai
Naudodami „Raspberry Pi“, išmatuokite aukštį, slėgį ir temperatūrą naudodami MPL3115A2: žinokite, kas jums priklauso, ir žinokite, kodėl jums tai priklauso! Tai intriguoja. Mes gyvename interneto automatikos amžiuje, nes ji pasineria į daugybę naujų programų. Kaip kompiuterių ir elektronikos entuziastai, mes daug išmokome su „Raspberry Pi a
Išmatuokite degalų lygį naudodami „Arduino“: 4 žingsniai (su nuotraukomis)
Išmatuokite degalų lygį naudodami „Arduino“: jutiklis paprastai naudoja plūdę, prijungtą prie potenciometro, paprastai spausdintą rašalą šiuolaikiniame automobilyje. Kai bakas ištuštėja, plūdė nukrenta ir slenka judantį kontaktą išilgai rezistoriaus, padidindamas jo atsparumą. [2] Papildomai
Įvaldykite savo mikro: bitą su „Arduino IDE“mygtuku ir kitu GPIO: 3 žingsniai (su nuotraukomis)
Įvaldykite savo „Micro: bit“naudodami „Arduino IDE“-mygtuką ir kitus GPIO: ankstesniame tinklaraštyje „Master Your Micro: bit“su „Arduino IDE - - Light LED“kalbėjome apie tai, kaip įdiegti „micro: bit“biblioteką „Arduino IDE“ir kaip valdyti šviesos diodą „micro: bit“su „Arduino IDE“. Šiame straipsnyje mes jums pasakysime, h