Sisällysluettelo:

Mittaa paine mikrollasi: bitti: 5 vaihetta (kuvien kanssa)
Mittaa paine mikrollasi: bitti: 5 vaihetta (kuvien kanssa)

Video: Mittaa paine mikrollasi: bitti: 5 vaihetta (kuvien kanssa)

Video: Mittaa paine mikrollasi: bitti: 5 vaihetta (kuvien kanssa)
Video: PS3 #2: Ressurecting the impossable! | EPIC rollercoaster repair that nearly broke me. 2024, Heinäkuu
Anonim
Mittaa paine Micro: bitillä
Mittaa paine Micro: bitillä
Mittaa paine Micro: bitillä
Mittaa paine Micro: bitillä

Seuraavassa ohjeessa kuvataan helppokäyttöinen ja edullinen laite paineiden mittaamiseen ja Boylen lain osoittamiseen käyttämällä micro: bittiä yhdessä BMP280 -paine-/lämpötila -anturin kanssa.

Vaikka tämä ruisku/paineanturiyhdistelmä on jo kuvattu yhdessä aiemmista ohjeistani, yhdistelmä micro: bitin kanssa tarjoaa uusia mahdollisuuksia, esim. luokkahuoneprojekteihin.

Lisäksi niiden sovellusten kuvausten määrä, joissa micro: bittiä käytetään yhdessä I2C -ohjatun anturin kanssa, on toistaiseksi melko rajallinen. Toivon, että tämä ohje voisi olla lähtökohta muille projekteille.

Laite mahdollistaa kvantitatiivisten ilmanpaineen mittausten suorittamisen ja tulosten näyttämisen mikro: bitti -LED -järjestelmässä tai liitetyssä tietokoneessa myöhempää käyttöä varten Arduino IDE: n sarjamonitori- tai sarjaplotteritoimintojen avulla. Lisäksi saat haptista palautetta, kun painat tai vedät ruiskun mäntää itse ja tunnet siten tarvittavan tehon.

Oletusarvon mukaan näytön avulla voit arvioida paineen LED -matriisissa näkyvän tason osoittimen avulla. Arduino IDE: n sarjaplotteri mahdollistaa saman, mutta paljon paremmalla resoluutiolla (katso video). Saatavana on myös kehittyneempiä ratkaisuja, esim. käsittelykielellä. Voit myös näyttää tarkat mitatut paineen ja lämpötilan arvot LED -matriisissa A- tai B -painikkeiden painamisen jälkeen, mutta Arduino IDE -sarjan näyttö on paljon nopeampi, jolloin arvot voidaan näyttää lähes reaaliajassa.

Laitteen kokonaiskustannukset ja tekniset taidot ovat melko pieniä, joten se voisi olla mukava luokkahuoneprojekti opettajan valvonnassa. Lisäksi laite voisi olla työkalu STEM -projekteihin, joissa keskitytään fysiikkaan, tai jota voidaan käyttää muissa projekteissa, joissa voima tai paino on muutettava digitaaliseksi arvoksi.

Periaatteella rakennettiin hyvin yksinkertainen mikro: bittinen sukellus-o-mittari, laite, jolla mitataan kuinka syvälle sukellat.

Lisäys 27.5.2018:

Koska Pimoroni on kehittänyt MakeCode -kirjaston BMP280 -anturille, tämä antoi minulle mahdollisuuden kehittää käsikirjoitus, jota käytetään tässä kuvatulle laitteelle. Käsikirjoitus ja vastaava HEX-tiedosto löytyvät tämän ohjeen viimeisestä vaiheesta. Voit käyttää sitä lataamalla HEX -tiedoston micro: bit -laitteeseesi. Ei tarvitse erityisiä ohjelmistoja, ja voit käyttää online -MakeCode -editoria komentosarjan muokkaamiseen.

Vaihe 1: Käytetyt materiaalit

Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
  • Mikro: bitti, sain omani Pimoronilta - 13,50 GBP
  • Kitronic Edge -liitin micro: bitille - Pimoronin kautta - 5 GBP, Huomautus: Pimorini tarjoaa nyt leipälevylle sopivan reunaliittimen nimeltä pin: bit, jossa on tapit I2C -porteissa.
  • 2 x 2 -nastainen otsanauha
  • Akku tai LiPo mikro: bitti (ei välttämätön, mutta hyödyllinen), akkukaapeli kytkimellä (dito) - Pimoroni
  • hyppyjohdot antureiden liittämiseen Edge -liittimeen
  • pitkät (!) hyppyjohdot anturille, vähintään yhtä pitkät kuin ruisku,, f/f tai f/m
  • BMP280 paine- ja lämpötila -anturi - Banggood - 5 Yhdysvaltain dollaria kolmelle yksikölle Tämän anturin mittausalue on 550--1537 hPa.
  • 150 ml: n muovinen katetriruisku, jossa on kumitiiviste - Amazon tai rauta- ja puutarhakaupat - noin 2-3 US dollaria
  • kuuma liima/kuuma liima -pistooli
  • juotin
  • tietokone, johon on asennettu Arduino IDE

Vaihe 2: Asennusohjeet

Kokoamisohjeet
Kokoamisohjeet
Kokoamisohjeet
Kokoamisohjeet
Kokoamisohjeet
Kokoamisohjeet

Juotosotsikot BMP280 -anturiin.

Juotos kaksi 2 -nastaista otsikkoa Edge -liittimen nastan 19 ja nastan 20 liittimiin (katso kuva).

Liitä micro: bit Edge -liittimeen ja tietokoneeseen.

Valmistele ohjelmisto ja micro: bit Adafruit micro: bit -ohjeiden mukaisesti. Lue ne huolellisesti.

Asenna tarvittavat kirjastot Arduino IDE: hen.

Avaa BMP280 -komentosarja, joka on liitetty myöhemmin.

Liitä anturi Edge -liittimeen. GND 0V, VCC 3V, SCL nastaan 19, SDA nastaan 20.

Lataa komentosarja micro: bitiin.

Tarkista, että anturi antaa kohtuullisia tietoja. Painearvojen tulisi olla noin 1020 hPa, jotka näkyvät sarjamonitorissa. Tarkista ensin kaapelit ja liitännät, sitten ohjelmiston asennus ja korjaa.

Sammuta micro: bit, poista anturi.

Vedä pitkähyppyjohdot ruiskun ulostulon läpi. Jos joudut avaamaan aukkoa. Varo jättämästä huomiotta, että kaapelit vahingoittuvat.

Liitä anturi hyppyjohtoihin. Tarkista, että liitännät ovat oikein ja hyvät. Yhdistä micro: bittiin.

Tarkista, että anturi toimii oikein. Vedä varovasti kaapeleista ja siirrä anturi ruiskun yläosaan.

Aseta mäntä sisään ja siirrä sitä hieman pidemmälle lepoasentoon (100 ml).

Lisää kuumaa liimaa ruiskun ulostulopäähän ja siirrä mäntää hieman taaksepäin. Tarkista, onko ruisku suljettu ilmatiiviisti, muuten lisää kuumaa liimaa. Anna kuuman liiman jäähtyä.

Tarkista uudelleen, että anturi toimii. Jos liikutat mäntää, sarjamonitorin ja micro: bit -näytön numerot muuttuvat.

Tarvittaessa voit säätää ruiskun äänenvoimakkuutta puristamalla sitä lähellä tiivistettä ja liikuttamalla mäntää.

Vaihe 3: Hieman teoriaa ja joitain käytännön mittauksia

Hieman teoriaa ja joitain käytännön mittauksia
Hieman teoriaa ja joitain käytännön mittauksia
Hieman teoriaa ja joitain käytännön mittauksia
Hieman teoriaa ja joitain käytännön mittauksia

Tässä kuvatulla laitteella voit osoittaa puristuksen ja paineen korrelaation yksinkertaisissa fysiikkakokeissa. Koska ruiskussa on ml-asteikko, jopa kvantitatiiviset kokeet on helppo suorittaa.

Teoria sen takana: Boylen lain mukaan [tilavuus * paine] on vakioarvo kaasulle tietyssä lämpötilassa.

Tämä tarkoittaa sitä, että jos puristat tietyn kaasutilavuuden N-kertaiseksi, eli lopullinen tilavuus on 1/N-kertainen alkuperäisestä, sen paine nousee N-kertaiseksi, kuten: P0*V0 = P1*V1 = haitat t. Lisätietoja on Wikipedian kaasulakeja koskevassa artikkelissa. Merenpuolella ilmanpaine on yleensä 1010 hPa (hecto Pascal).

Joten aloitetaan lepopaikoista, esim. V0 = 100 ml ja P0 = 1000 hPa, ilman puristaminen noin 66 ml: ksi (eli V1 = 2/3 * V0) johtaa noin 1500 hPa: n paineeseen (P1 = 3/2 P0: sta). Kun mäntä vedetään 125 ml: aan (5/4 -kertainen tilavuus), paine on noin 800 hPa (4/5 paine). Mittaukset ovat hämmästyttävän tarkkoja tällaiselle yksinkertaiselle laitteelle.

Laitteen avulla voit muodostaa suoran haptisen vaikutelman siitä, kuinka paljon voimaa tarvitaan puristamaan tai laajentamaan suhteellisen pieni määrä ilmaa ruiskussa.

Mutta voimme myös suorittaa joitakin laskelmia ja tarkistaa ne kokeellisesti. Oletetaan, että puristamme ilman 1500 hPa: een, kun barometrinen peruspaine on 1000 hPa. Paine -ero on siis 500 hPa tai 50 000 Pa. Ruiskullani männän halkaisija (d) on noin 4 cm tai 0,04 metriä.

Nyt voit laskea voiman, joka tarvitaan männän pitämiseen tässä asennossa. Annettu P = F/A (paine jaetaan voimalla pinta -alalla) tai muunnettu F = P*A. Voiman SI -yksikkö on "Newton" N, pituus "M" ja 1 Pa on 1 N neliömetriä kohti. Pyöreän männän pinta -ala voidaan laskea käyttämällä A = ((d/2)^2)*pi, joka antaa ruiskulleni 0,00125 neliömetriä. Niin

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

Maalla 1 N vastaa 100 g: n painoa, joten 63 N vastaa 6,3 kg: n painon pitämistä.

Tämä voidaan tarkistaa helposti asteikolla. Työnnä ruisku ja mäntä asteikolle, kunnes saavutetaan noin 1500 hPa paine, ja lue sitten asteikko. Tai paina, kunnes vaaka näyttää noin 6-7 kg, paina sitten "A" -painiketta ja lue micro: bitin LED-matriisista näkyvä arvo. Kuten kävi ilmi, yllä oleviin laskelmiin perustuva arvio ei ollut huono. Paine hieman yli 1500 hPa korreloi näytetyn "painon" kanssa noin 7 kg kehon asteikolla (katso kuvat). Voit myös kääntää tämän käsityksen ja rakentaa laitteen avulla yksinkertaisen digitaalisen asteikon, joka perustuu painemittauksiin.

Huomaa, että anturin yläraja on noin 1540 hPa, joten sen yläpuolella olevaa painetta ei voida mitata ja se voi vaurioittaa anturia.

Opetustarkoitusten lisäksi järjestelmää voidaan käyttää myös joihinkin reaalimaailman sovelluksiin, koska sen avulla voidaan mitata määrällisesti voimia, jotka yrittävät liikuttaa mäntää suuntaan tai toiseen. Voit siis mitata männälle asetetun painon tai mäntään kohdistuvan iskuvoiman. Tai rakenna kytkin, joka aktivoi valon tai summerin tai toistaa äänen tietyn kynnysarvon saavuttamisen jälkeen. Tai voit rakentaa soittimen, joka muuttaa taajuutta mäntään kohdistetun voiman voimakkuuden mukaan. Tai käytä sitä peliohjaimena. Käytä mielikuvitustasi ja pelaa!

Vaihe 4: MicroPython -skripti

Liitteenä löydät BMP280 -skriptini micro: bitille. Se on johdannainen BMP/BME280 -skriptistä, jonka löysin jostain Banggoodin verkkosivustolta yhdistettynä Adafruitin Microbit -kirjastoon. Ensimmäinen mahdollistaa Banggood -anturin käytön, toinen yksinkertaistaa 5x5 LED -näytön käsittelyä. Kiitokset molempien kehittäjille.

Oletusarvon mukaan skripti näyttää paineen mittausten tulokset viidessä vaiheessa micro: bitin 5x5 LED -näytöllä, jolloin muutokset näkyvät pienellä viiveellä. Tarkat arvot voidaan näyttää rinnakkain Arduino IDE -sarjamonitorissa tai yksityiskohtaisempi kaavio voidaan näyttää Arduino IDE: n sarjakuvaajalla.

Jos painat A -painiketta, mitatut painearvot näkyvät micro: bitin 5x5 LED -ryhmässä. Jos painat B -painiketta, lämpötila -arvot tulevat näkyviin. Vaikka tämä mahdollistaa tarkkojen tietojen lukemisen, se hidastaa mittausjaksoja merkittävästi.

Olen varma, että on paljon tyylikkäämpiä tapoja ohjelmoida tehtävät ja parantaa käsikirjoitusta. Kaikki apu on tervetullutta.

#Sisällytä xxx

#Sisällytä Adafruit_Microbit_Matrix microbit; #define BME280_ADDRESS 0x76 unsigned long int hum_raw, temp_raw, pres_raw; allekirjoitettu pitkä 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; // säiliöt mittausarvoille int value0; int arvo1; int arvo2; int arvo3; int arvo4; // ------------------------------------------------ -------------------------------------------------- ------------------ void setup () {uint8_t osrs_t = 1; // Lämpötilan ylinäytteenotto x 1 uint8_t osrs_p = 1; // Paineen ylinäytteenotto x 1 uint8_t osrs_h = 1; // Kosteuden ylinäytteenotto x 1 uint8_t -tila = 3; // Normaalitila uint8_t t_sb = 5; // Valmiustilassa 1000 ms uint8_t filter = 0; // Suodata pois uint8_t spi3w_en = 0; // 3-johtiminen SPI Poista käytöstä uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | tila; uint8_t config_reg = (t_sb << 5) | (suodatin << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Sarja.alku (9600); // Serial.println ("Lämpötila [° C]"); // Serial.print ("\ t"); Serial.print ("Paine [hPa]"); // otsikko Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); viive (1000); } // ----------------------------------------------- -------------------------------------------------- -------- void loop () {double temp_act = 0.0, press_act = 0.0, hum_act = 0.0; allekirjoitettu pitkä int temp_cal; allekirjoittamaton pitkä int press_cal, hum_cal; int N; // aseta kynnysarvot LED -matriisinäytölle, hPa double max_0 = 1100; kaksinkertainen max_1 = 1230; kaksinkertainen max_2 = 1360; kaksinkertainen max_3 = 1490; readData (); temp_cal = calibration_T (temp_raw); press_cal = calibration_P (esikaavio); hum_cal = kalibrointi_H (hum_raw); temp_act = (kaksinkertainen) temp_cal / 100.0; press_act = (kaksinkertainen) press_cal / 100.0; hum_act = (kaksinkertainen) hum_cal / 1024,0; microbit.clear (); // nollaa LED -matriisi /* Serial.print ("PRESS:"); Sarja.println (press_act); Serial.print ("hPa"); Serial.print ("TEMP:"); Serial.print ("\ t"); Serial.println (temp_act); */ if (! digitalRead (PIN_BUTTON_B)) {// arvojen näyttäminen numeroina viivästyttää ympyröiden mittaamista microbit.print ("T:"); microbit.print (temp_act, 1); microbit.print ("'C"); // Sarja.println (""); } else if (! digitalRead (PIN_BUTTON_A)) {microbit.print ("P:"); microbit.print (press_act, 0); microbit.print ("hPa"); } else {// painearvojen näyttäminen pikseleinä tai viivoina tietyllä tasolla // 5 vaihetta: 1490 hPa // max_n -arvojen määrittämät kynnysarvot, jos (press_act> max_3) {(N = 0); // ylin rivi} else if (press_act> max_2) {(N = 1); } else if (paina_toiminto> max_1) {(N = 2); } else if (paina_toiminto> max_0) {(N = 3); } muu {(N = 4); // perusrivi} // Sarja.println (N); // kehitystarkoituksiin // microbit.print (N); // rivinä // microbit.drawLine (N, 0, 0, 4, LED_ON); // siirtää arvot seuraavalle riviarvolle4 = arvo3; arvo3 = arvo2; arvo2 = arvo1; arvo1 = arvo0; arvo0 = N; // piirtää kuva, sarake sarakkeelta microbit.drawPixel (0, arvo0, LED_ON); // Pixelinä: sarake, rivi. 0, 0 vasen yläkulma microbit.drawPixel (1, arvo1, LED_ON); microbit.drawPixel (2, arvo2, LED_ON); microbit.drawPixel (3, arvo3, LED_ON); microbit.drawPixel (4, arvo4, LED_ON); } // lähettää tietoja sarjamonitorille ja sarjaplotterille // Serial.println (press_act); // lähetä arvo (t) sarjaporttiin numeerista näyttöä varten, valinnainen

Serial.print (press_act); // lähetä arvo plotterin sarjaporttiin

// piirrä merkkiviivat ja korjaa näytetty alue Serial.print ("\ t"); Sarjanjälki (600); Serial.print ("\ t"); Sarjajälki (1100), Sarjajälki ("\ t"); Sarjajulkaisu (1600); viive (200); // Mittaa kolme kertaa sekunnissa} // ---------------------------------------- -------------------------------------------------- -------------------------------------------------- - // bmp/bme280-anturilta vaaditaan seuraavaa, pidä se tyhjänä readTrim () {uint8_t data [32], i = 0; // Korjaa 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // Korjaa 2014/while (Wire.available ()) {data = Wire.read (); i ++; } Wire.beginTransmission (BME280_ADDRESS); // Lisää 2014/Wire.write (0xA1); // Lisää 2014/Wire.endTransmission (); // Lisää 2014/Wire.requestFrom (BME280_ADDRESS, 1); // Lisää 2014/data = Wire.read (); // Lisää 2014/i ++; // Lisää 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // Korjaa 2014/while (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (data [1] << 8) | data [0]; dig_P1 = (data [7] << 8) | tiedot [6]; dig_P2 = (data [9] << 8) | tiedot [8]; dig_P3 = (data [11] << 8) | tiedot [10]; dig_P4 = (data [13] << 8) | tiedot [12]; dig_P5 = (data [15] << 8) | tiedot [14]; dig_P6 = (data [17] << 8) | tiedot [16]; dig_P7 = (data [19] << 8) | tiedot [18]; dig_T2 = (data [3] << 8) | tiedot [2]; dig_T3 = (data [5] << 8) | tiedot [4]; dig_P8 = (data [21] << 8) | tiedot [20]; dig_P9 = (data [23] << 8) | tiedot [22]; dig_H1 = data [24]; dig_H2 = (data [26] << 8) | tiedot [25]; dig_H3 = data [27]; dig_H4 = (data [28] << 4) | (0x0F & data [29]); dig_H5 = (data [30] 4) & 0x0F); // Korjaa 2014/dig_H6 = data [31]; // Korjaa 2014/} void writeReg (uint8_t reg_address, uint8_t data) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (data); Wire.endTransmission (); }

void readData ()

{int i = 0; uint32_t -tiedot [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); while (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) | tiedot [7]; }

allekirjoitettu pitkä int kalibrointi_T (allekirjoitettu pitkä int adc_T)

{allekirjoitettu pitkä int var1, var2, T; var1 = (((((adc_T >> 3) - ((allekirjoitettu pitkä int) dig_T1 11; var2 = ((((((adc_T >> 4) - ((allekirjoitettu pitkä int) dig_T1)) * ((adc_T >> 4) - ((allekirjoitettu pitkä int) dig_T1))) >> 12) * ((allekirjoitettu pitkä int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; return T;} allekirjoittamaton pitkä int kalibrointi_P (allekirjoitettu pitkä int adc_P) {allekirjoitettu pitkä int var1, var2; allekirjoittamaton pitkä int P; var1 = (((allekirjoitettu pitkä int) t_fine) >> 1) - (allekirjoitettu pitkä int) 64000; var2 = ((((var1 >> 2) * (var1 >> 2)) >> 11) * ((allekirjoitettu pitkä int) dig_P6); var2 = var2 + ((var1 * ((allekirjoitettu pitkä int) dig_P5)) 2) + (((allekirjoitettu pitkä int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + ((((allekirjoitettu pitkä int) dig_P2) * var1) >> 1)) >> 18; var1 = (((((32768+var1))*((allekirjoitettu pitkä int) dig_P1)) >> 15); if (var1 == 0) {return 0; } P = (((allekirjoittamaton pitkä int) (((allekirjoitettu pitkä int) 1048576) -adc_P)-(var2 >> 12)))*3125; jos (P <0x80000000) {P = (P << 1) / ((unsigned long int) var1); } else {P = (P / (unsigned long int) var1) * 2; } var1 = (((allekirjoitettu pitkä int) dig_P9) * ((allekirjoitettu pitkä int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((allekirjoitettu pitkä int) (P >> 2)) * ((allekirjoitettu pitkä int) dig_P8)) >> 13; P = (allekirjoittamaton pitkä int) ((allekirjoitettu pitkä int) P + ((var1 + var2 + dig_P7) >> 4)); paluu P; } unsigned long int calibration_H (allekirjoitettu pitkä int adc_H) {allekirjoitettu pitkä int v_x1; v_x1 = (t_fine - ((allekirjoitettu pitkä int) 76800)); v_x1 = ((((((adc_H << 14) -(((allekirjoitettu pitkä int) dig_H4) 15) * ((((((((v_x1 * ((allekirjoitettu pitkä int) dig_H6)) >> 10) * (((v_x1 * ((allekirjoitettu pitkä int) dig_H3)) >> 11) + ((allekirjoitettu pitkä int) 32768))) >> 10) + ((allekirjoitettu pitkä int) 2097152)) * ((allekirjoitettu pitkä int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - ((((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((allekirjoitettu pitkä int) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); return (allekirjoittamaton pitkä int) (v_x1 >> 12);}

Vaihe 5: MakeCode/JavaScript -komentosarjat

MakeCode/JavaScript -skriptit
MakeCode/JavaScript -skriptit

Pimoroni on äskettäin julkaissut enviro: bitin, joka sisältää BMP280 -paineanturin, valo/väri -anturin ja MEMS -mikrofonin. Niissä on myös MicroPython ja MakeCode/JavaScript -kirjasto.

Kirjoitin myöhemmin anturille MakeCode -skriptin paineanturille. Vastaava heksatiedosto voidaan kopioida suoraan micro: bitille. Koodi näkyy alla ja sitä voidaan muokata käyttämällä online -MakeCode -editoria.

Se on muunnelma micro: bit dive-o-meter -skriptistä. Oletuksena se näyttää paine -eron pylväskaaviona. Painikkeen A painaminen asettaa referenssipaineen, painikkeen B painaminen näyttää todellisen ja viitepaineen eron hPa: ssa.

Perusviivakoodiversion lisäksi löydät myös "X", hiusristikkoversion ja "L" -version, joiden tarkoituksena on helpottaa lukemista.

sarake = 0

anna jäädä = 0 anna rivin = 0 anna mittarin = 0 anna Delta = 0 anna Ref = 0 anna Is = 0 Is = 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 {rivi = 0} jäljellä = mittari - rivi * 100, jos (jää>> 80) {sarake = 4} muu jos (jää>> 60) {sarake = 3} muu jos (jää>> 40) {sarake = 2 } else if (stay> = 20) {Column = 1} else {Column = 0} for (let ColA = 0; ColA <= Column; ColA ++) {led.plot (ColA, Row)} basic.pause (500)}})

Suositeltava: