Daftar Isi:

Ukur Tekanan Dengan Mikro Anda: bit: 5 Langkah (dengan Gambar)
Ukur Tekanan Dengan Mikro Anda: bit: 5 Langkah (dengan Gambar)

Video: Ukur Tekanan Dengan Mikro Anda: bit: 5 Langkah (dengan Gambar)

Video: Ukur Tekanan Dengan Mikro Anda: bit: 5 Langkah (dengan Gambar)
Video: Pompa air semi jet 108 bit Shimizu dan jet 100 bit Shimizu. apa bedanya? 2024, Juli
Anonim
Ukur Tekanan Dengan Mikro Anda: bit
Ukur Tekanan Dengan Mikro Anda: bit
Ukur Tekanan Dengan Mikro Anda: bit
Ukur Tekanan Dengan Mikro Anda: bit

Instruksi berikut menjelaskan perangkat yang mudah dibuat dan murah untuk melakukan pengukuran tekanan dan mendemonstrasikan hukum Boyle, menggunakan mikro:bit dalam kombinasi dengan sensor tekanan/suhu BMP280.

Sementara kombinasi jarum suntik/sensor tekanan ini telah dijelaskan di salah satu instruksi saya sebelumnya, kombinasi dengan mikro:bit menawarkan peluang baru, mis. untuk proyek ruang kelas.

Selain itu, jumlah deskripsi aplikasi di mana mikro:bit digunakan dalam kombinasi dengan sensor yang digerakkan I2C sejauh ini agak terbatas. Saya harap instruksi ini dapat menjadi titik awal untuk proyek lain.

Perangkat ini memungkinkan untuk melakukan pengukuran tekanan udara kuantitatif, dan untuk menampilkan hasilnya pada array LED mikro:bit atau pada komputer yang terhubung, untuk kemudian menggunakan fungsi monitor serial atau plotter serial dari Arduino IDE. Selain itu Anda memiliki umpan balik haptic, karena Anda akan mendorong atau menarik plunger jarum suntik sendiri, dan dengan ini merasakan kekuatan yang dibutuhkan.

Secara default, layar memungkinkan Anda memperkirakan tekanan dengan indikator level yang ditunjukkan pada matriks LED. Plotter serial Arduino IDE memungkinkan untuk melakukan hal yang sama, tetapi dengan resolusi yang jauh lebih baik (lihat video). Solusi yang lebih rumit juga tersedia, mis. dalam bahasa Pemrosesan. Anda juga dapat menampilkan nilai tekanan dan suhu terukur yang tepat pada matriks LED setelah menekan tombol A atau B masing-masing, tetapi monitor serial Arduino IDE jauh lebih cepat, memungkinkan untuk menampilkan nilai hampir secara real time.

Total biaya dan keterampilan teknis yang dibutuhkan untuk membangun perangkat ini cukup rendah, sehingga bisa menjadi proyek kelas yang bagus di bawah pengawasan seorang guru. Selain itu, perangkat dapat menjadi alat untuk proyek STEM dengan fokus pada fisika atau digunakan dalam proyek lain di mana gaya atau berat harus diubah menjadi nilai digital.

Prinsipnya digunakan untuk membuat micro:bit dive-o-meter yang sangat sederhana, alat untuk mengukur seberapa dalam Anda menyelam.

Tambahan 27-Mei-2018:

Karena Pimoroni telah mengembangkan perpustakaan MakeCode untuk sensor BMP280, Ini memberi saya kesempatan untuk mengembangkan skrip yang akan digunakan untuk perangkat yang dijelaskan di sini. Skrip dan file HEX yang sesuai dapat ditemukan di langkah terakhir dari instruksi ini. Untuk menggunakannya, cukup muat file HEX ke micro:bit Anda. Tidak perlu perangkat lunak khusus, dan Anda dapat menggunakan editor MakeCode online untuk mengedit skrip.

Langkah 1: Bahan Bekas

Bahan bekas
Bahan bekas
Bahan bekas
Bahan bekas
Bahan bekas
Bahan bekas
Bahan bekas
Bahan bekas
  • Sebuah mikro:bit, dapatkan milik saya dari Pimoroni - 13,50 GBP
  • Konektor Tepi Kitronic untuk mikro:bit - melalui Pimoroni - 5 GBP, Catatan: Pimorini sekarang menawarkan konektor tepi yang ramah papan tempat memotong roti yang disebut pin:bit dengan pin pada port I2C.
  • 2 x 2 pin strip header
  • Baterai atau LiPo untuk mikro:bit (tidak perlu, tetapi membantu), kabel baterai dengan sakelar (dito) - Pimoroni
  • kabel jumper untuk koneksi sensor ke konektor Edge
  • kabel jumper panjang (!) untuk sensor, setidaknya sepanjang spuit,, f/f atau f/m
  • Sensor tekanan & suhu BMP280 - Banggood - 5 US$ untuk tiga unitRentang pengukuran untuk sensor ini adalah antara 550 dan 1537 hPa.
  • Jarum suntik kateter plastik 150 ml dengan paking karet - Amazon atau toko perangkat keras dan taman - sekitar 2 - 3 US$
  • lem panas / pistol lem panas
  • besi solder
  • komputer dengan Arduino IDE terpasang

Langkah 2: Instruksi Perakitan

Petunjuk perakitan
Petunjuk perakitan
Petunjuk perakitan
Petunjuk perakitan
Petunjuk perakitan
Petunjuk perakitan

Solder header ke breakout sensor BMP280.

Solder dua header 2 pin ke konektor pin 19 dan pin 20 dari konektor Edge (lihat gambar).

Hubungkan micro:bit ke konektor Edge dan komputer Anda.

Siapkan perangkat lunak dan mikro:bit seperti yang dijelaskan dalam instruksi mikro:bit Adafruit. Bacalah dengan seksama.

Instal perpustakaan yang diperlukan ke Arduino IDE.

Buka skrip BMP280 yang dilampirkan di langkah selanjutnya.

Hubungkan sensor ke konektor Edge. GND ke 0V, VCC ke 3V, SCL ke pin 19, SDA ke pin 20.

Unggah skrip ke mikro:bit.

Periksa apakah sensor memberikan data yang masuk akal, nilai tekanan harus sekitar 1020 hPa, ditampilkan pada monitor serial. Dalam hal ini, periksa kabel dan koneksi terlebih dahulu, lalu instalasi perangkat lunak, dan perbaiki.

Matikan mikro:bit, lepaskan sensor.

Jalankan kabel jumper panjang melalui outlet jarum suntik. Dalam kasus Anda mungkin harus memperluas pembukaan. Hati-hati jangan sampai kabelnya rusak.

Hubungkan sensor ke kabel jumper. Periksa apakah koneksi sudah benar dan baik. Hubungkan ke mikro:bit.

Periksa apakah sensor berjalan dengan benar. Tarik kabel dengan hati-hati, pindahkan sensor ke bagian atas jarum suntik.

Masukkan plunger dan gerakkan sedikit lebih jauh dari posisi istirahat yang diinginkan (100 ml).

Tambahkan lem panas ke ujung outlet jarum suntik dan gerakkan plunger sedikit ke belakang. Periksa apakah jarum suntik tertutup kedap udara, jika tidak tambahkan lebih banyak lem panas. Biarkan lem panas menjadi dingin.

Periksa kembali apakah sensor berfungsi. Jika Anda menggerakkan plunger, angka di monitor serial dan tampilan mikro:bit akan berubah.

Jika perlu, Anda dapat mengatur volume dalam spuit dengan menekannya di dekat gasket dan menggerakkan plunger.

Langkah 3: Sedikit Teori dan Beberapa Pengukuran Praktis

Sedikit Teori dan Beberapa Pengukuran Praktis
Sedikit Teori dan Beberapa Pengukuran Praktis
Sedikit Teori dan Beberapa Pengukuran Praktis
Sedikit Teori dan Beberapa Pengukuran Praktis

Dengan perangkat yang dijelaskan di sini, Anda dapat menunjukkan korelasi kompresi dan tekanan dalam eksperimen fisika sederhana. Karena jarum suntik dilengkapi dengan skala "ml", bahkan eksperimen kuantitatif pun mudah dilakukan.

Teori di baliknya: Menurut hukum Boyle, [Volume * Tekanan] adalah nilai konstan untuk gas pada suhu tertentu.

Ini berarti jika Anda memampatkan volume tertentu gas N kali lipat, yaitu volume akhir 1/N kali lipat dari aslinya, tekanannya akan naik N kali lipat, sebagai: P0*V0=P1*V1= cons t. Untuk detail lebih lanjut, silakan lihat artikel Wikipedia tentang undang-undang gas. Di permukaan laut, tekanan barometrik biasanya berada pada kisaran 1010 hPa (hekto Pascal).

Jadi mulai dari titik istirahat mis. V0=100 ml dan P0=1000 hPa, kompresi udara hingga sekitar 66 ml (yaitu V1 = 2/3 * V0) akan menghasilkan tekanan sekitar 1500 hPa (P1= 3/2 dari P0). Menarik plunger hingga 125 ml (volume 5/4 kali lipat) menghasilkan tekanan sekitar 800 hPa (tekanan 4/5). Pengukurannya sangat tepat untuk perangkat yang begitu sederhana.

Perangkat ini memungkinkan Anda untuk memiliki kesan haptic langsung berapa banyak kekuatan yang diperlukan untuk mengompres atau memperluas jumlah udara yang relatif kecil di dalam jarum suntik.

Tetapi kami juga dapat melakukan beberapa perhitungan dan memeriksanya secara eksperimental. Asumsikan kita memampatkan udara hingga 1500 hPa, pada tekanan barometrik basal 1000 hPa. Jadi perbedaan tekanannya adalah 500 hPa, atau 50.000 Pa. Untuk spuit saya, diameter (d) piston sekitar 4 cm atau 0,04 meter.

Sekarang Anda dapat menghitung gaya yang dibutuhkan untuk menahan piston pada posisi tersebut. Diketahui P = F/A (Tekanan adalah Gaya dibagi Luas), atau diubah F = P*A. Satuan SI untuk gaya adalah "Newton" N, untuk panjang "Meter" m, dan 1 Pa adalah 1N per meter persegi. Untuk piston bulat, luasnya dapat dihitung menggunakan A = ((d/2)^2)*pi, yang menghasilkan 0,00125 meter persegi untuk jarum suntik saya. Jadi

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

Di Bumi, 1 N berkorelasi dengan berat 100 gr, jadi 63 N sama dengan menahan berat 6,3 kg.

Ini dapat diperiksa dengan mudah menggunakan skala. Dorong spuit dengan plunger ke atas timbangan, hingga tercapai tekanan sekitar 1500 hPa, lalu baca skalanya. Atau tekan hingga timbangan menunjukkan sekitar 6-7 kg, lalu tekan tombol "A" dan baca nilai yang ditampilkan pada matriks LED mikro:bit. Ternyata, perkiraan berdasarkan perhitungan di atas tidak buruk. Tekanan sedikit di atas 1500 hPa berkorelasi dengan "berat" yang ditampilkan sekitar 7 kg pada skala tubuh (lihat gambar). Anda juga dapat mengubah konsep ini dan menggunakan perangkat untuk membuat timbangan digital sederhana berdasarkan pengukuran tekanan.

Perlu diketahui bahwa batas atas untuk sensor adalah sekitar 1540 hPa, sehingga tekanan di atas ini tidak dapat diukur dan dapat merusak sensor.

Selain tujuan pendidikan, seseorang juga dapat menggunakan sistem untuk beberapa aplikasi dunia nyata, karena memungkinkan untuk mengukur kekuatan secara kuantitatif yang mencoba menggerakkan plunger dengan satu atau lain cara. Jadi Anda bisa mengukur berat yang ditempatkan pada pendorong atau gaya tumbukan yang mengenai pendorong. Atau buat sakelar yang mengaktifkan lampu atau bel atau memutar suara setelah nilai ambang tertentu tercapai. Atau Anda dapat membuat alat musik yang mengubah frekuensi tergantung pada kekuatan gaya yang diterapkan pada pendorong. Atau gunakan sebagai pengontrol permainan. Gunakan imajinasi Anda dan mainkan!

Langkah 4: Skrip MicroPython

Terlampir Anda menemukan skrip BMP280 saya untuk mikro: bit. Ini adalah turunan dari skrip BMP/BME280 yang saya temukan di suatu tempat di situs web Banggood, dikombinasikan dengan perpustakaan Microbit Adafruit. Yang pertama memungkinkan Anda untuk menggunakan sensor Banggood, yang kedua menyederhanakan penanganan tampilan LED 5x5. Terima kasih saya sampaikan kepada pengembang keduanya.

Secara default, skrip menampilkan hasil pengukuran tekanan dalam 5 langkah pada layar LED 5x5 mikro:bit, memungkinkan untuk melihat perubahan dengan sedikit penundaan. Nilai yang tepat dapat ditampilkan secara paralel pada monitor serial Arduino IDE, atau grafik yang lebih rinci dapat ditampilkan pada plotter serial Arduino IDE.

Jika Anda menekan tombol A, nilai tekanan terukur ditampilkan pada larik LED 5x5 mikro:bit. Jika Anda menekan tombol B, nilai suhu ditampilkan. Meskipun ini memungkinkan untuk membaca data yang tepat, memperlambat siklus pengukuran secara signifikan.

Saya yakin ada banyak cara yang lebih elegan untuk memprogram tugas dan meningkatkan skrip. Bantuan apa pun diterima.

#sertakan xxx

#sertakan mikrobit Adafruit_Microbit_Matrix; #define BME280_ADDRESS 0x76 unsigned long int hum_raw, temp_raw, pres_raw; menandatangani int panjang t_fine; uint16_t dig_T1; int16_t menggali_T2; int16_t menggali_T3; uint16_t dig_P1; int16_t menggali_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t menggali_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t menggali_H2; int8_t menggali_H3; int16_t menggali_H4; int16_t dig_H5; int8_t menggali_H6; // wadah untuk nilai terukur int value0; int nilai1; int nilai2; int nilai3; int nilai4; //------------------------------------------------ -------------------------------------------------- ------------------ void setup() { uint8_t osrs_t = 1; // Oversampling suhu x 1 uint8_t osrs_p = 1; //Tekanan oversampling x 1 uint8_t osrs_h = 1; // Kelembaban oversampling x 1 mode uint8_t = 3; //Mode normal uint8_t t_sb = 5; //Tstandby 1000ms uint8_t filter = 0; //Filter uint8_t spi3w_en = 0; //3-wire SPI Nonaktifkan uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | mode; uint8_t config_reg = (t_sb << 5) | (filter << 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("Suhu [derajat C]"); // Serial.print("\t"); Serial.print("Tekanan [hPa] "); // header Kawat.begin(); writeReg(0xF2, ctrl_hum_reg); writeReg(0xF4, ctrl_meas_reg); writeReg(0xF5, config_reg); bacaTrim(); // mikrobit.mulai(); // mikrobit.print("x"); penundaan (1000); } //----------------------------------------------- -------------------------------------------------- -------- void loop() { double temp_act = 0.0, press_act = 0.0, hum_act=0.0; menandatangani temp_cal int panjang; unsigned long int press_cal, hum_cal; int N; // tetapkan nilai ambang batas untuk tampilan matriks LED, dalam hPa double max_0 = 1100; ganda maks_1 = 1230; ganda maks_2 = 1360; ganda maks_3 = 1490; bacaData(); temp_cal = kalibrasi_T(temp_raw); press_cal = kalibrasi_P(pres_raw); hum_cal = kalibrasi_H(hum_raw); temp_act = (ganda)temp_cal / 100.0; press_act = (ganda)press_cal / 100.0; hum_act = (ganda)hum_cal / 1024.0; microbit.clear(); //reset matriks LED /* Serial.print("TEKAN: "); Serial.println(tekan_bertindak); Serial.print("hPa"); Serial.print("TEMP: "); Serial.print("\t"); Serial.println(temp_act); */ if (! digitalRead(PIN_BUTTON_B)) { // menampilkan nilai dalam angka penundaan pengukuran lingkaran 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{ // menampilkan nilai tekanan sebagai piksel atau garis pada level tertentu // 5 langkah: 1490 hPa // ambang batas yang ditentukan oleh nilai max_n if (press_act > max_3){ (N=0); // baris atas } else if (tekan_tindakan > max_2){ (N=1); } else if (tekan_tindakan > max_1){ (N=2); } else if (tekan_tindakan > max_0){ (N=3); } else { (N=4); // baris dasar } // Serial.println(N); // untuk tujuan pengembangan // microbit.print(N); // sebagai Garis // microbit.drawLine(N, 0, 0, 4, LED_ON); // menggeser nilai ke baris berikutnya value4 = value3; nilai3 = nilai2; nilai2 = nilai1; nilai1 = nilai0; nilai0 = N; // menggambar gambar, kolom demi kolom microbit.drawPixel(0, value0, LED_ON); // sebagai Piksel: kolom, baris. 0, 0 pojok kiri atas microbit.drawPixel(1, value1, LED_ON); microbit.drawPixel(2, nilai2, LED_ON); microbit.drawPixel(3, nilai3, LED_ON); microbit.drawPixel(4, nilai4, LED_ON); } // kirim data ke serial monitor dan serial plotter // Serial.println(press_act); // kirim nilai ke port serial untuk tampilan numerik, opsional

Serial.print(tekan_bertindak); // kirim nilai ke port serial untuk plotter

// menggambar garis indikator dan memperbaiki rentang yang ditampilkan Serial.print("\t"); Serial.print(600); Serial.print("\t"); Serial.print(1100), Serial.print("\t"); Serial.println(1600); penundaan (200); // Mengukur tiga kali dalam satu detik } //---------------------------------------- -------------------------------------------------- -------------------------------------------------- -- // berikut ini diperlukan untuk sensor bmp/bme280, pertahankan sebagai void readTrim() { uint8_t data[32], i=0; // Perbaiki 2014/Wire.beginTransmission(BME280_ADDRESS); Kawat.tulis (0x88); Kawat.endTransmisi(); Wire.requestFrom(BME280_ADDRESS, 24); // Perbaiki 2014/sementara(Wire.available()){ data = Wire.read(); saya++; } Wire.beginTransmission(BME280_ADDRESS); // Tambahkan 2014/Wire.write(0xA1); // Tambahkan 2014/Wire.endTransmission(); // Tambahkan 2014/Wire.requestFrom(BME280_ADDRESS, 1); // Tambahkan 2014/data = Wire.read(); // Tambahkan 2014/i++; // Tambahkan 2014/Wire.beginTransmission(BME280_ADDRESS); Wire.write(0xE1); Kawat.endTransmisi(); Wire.requestFrom(BME280_ADDRESS, 7); // Perbaiki 2014/sementara(Wire.available()){ data = Wire.read(); saya++; } 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); // Perbaiki 2014/dig_H6 = data[31]; // Perbaiki 2014/} void writeReg(uint8_t reg_address, uint8_t data) { Wire.beginTransmission(BME280_ADDRESS); Wire.write(reg_address); Kawat.tulis(data); Kawat.endTransmisi(); }

batal bacaData()

{ int i = 0; data uint32_t[8]; Wire.beginTransmission(BME280_ADDRESS); Wire.write(0xF7); Kawat.endTransmisi(); Wire.requestFrom(BME280_ADDRESS, 8); while(Wire.available()){ data = Wire.read(); saya++; } pres_raw = (data[0] << 12) | (data[1] 4); temp_raw = (data[3] << 12) | (data[4] 4); hum_raw = (data[6] << 8) | data[7]; }

bertanda int panjang kalibrasi_T (bertanda tangan panjang int adc_T)

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

Langkah 5: Skrip MakeCode/JavaScript

Skrip MakeCode/JavaScript
Skrip MakeCode/JavaScript

Pimoroni baru-baru ini merilis enviro:bit, yang dilengkapi dengan sensor tekanan BMP280, sensor cahaya/warna, dan mikrofon MEMS. Mereka juga menawarkan perpustakaan MicroPython dan MakeCode/JavaScript.

Saya menggunakan nanti untuk menulis skrip MakeCode untuk sensor tekanan. File hex yang sesuai dapat disalin langsung ke micro:bit Anda. Kode ditampilkan di bawah dan dapat dimodifikasi menggunakan editor MakeCode online.

Ini adalah variasi dari skrip untuk micro:bit dive-o-meter. Secara default ini menampilkan perbedaan tekanan sebagai grafik batang. Menekan tombol A mengatur tekanan referensi, menekan tombol B menampilkan perbedaan antara tekanan aktual dan referensi dalam hPa.

Selain versi barcode dasar, Anda juga menemukan versi "X", versi crosshair, dan versi "L", yang dimaksudkan untuk mempermudah membaca.

misalkan Kolom = 0

let stay = 0 let Row = 0 let Meter = 0 let Delta = 0 let Ref = 0 let 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) { Baris = 4 } else if (Meter >= 300) { Baris = 3 } else if (Meter >= 200) { Baris = 2 } else if (Meter >= 100) { Baris = 1 } else { Baris = 0 } tetap = Meter - Baris * 100 if (tetap >= 80) { Kolom = 4 } else if (tetap >= 60) { Kolom = 3 } else if (tetap >= 40) { Kolom = 2 } else if (tetap >= 20) { Kolom = 1 } else { Kolom = 0 } for (misalkan ColA = 0; ColA <= Kolom; ColA++) { led.plot(ColA, Row) } basic.pause(500) } })

Direkomendasikan: