Isi kandungan:

Pengesan Tahap Kebisingan Mikro: bit: 3 Langkah
Pengesan Tahap Kebisingan Mikro: bit: 3 Langkah

Video: Pengesan Tahap Kebisingan Mikro: bit: 3 Langkah

Video: Pengesan Tahap Kebisingan Mikro: bit: 3 Langkah
Video: TERBARU! CARA MEMBUAT NIB SECARA ONLINE TAHUN 2023 2024, Julai
Anonim
Mikro: Pengesan Tahap Kebisingan bit
Mikro: Pengesan Tahap Kebisingan bit
Mikro: Pengesan Tahap Kebisingan bit
Mikro: Pengesan Tahap Kebisingan bit
Mikro: Pengesan Tahap Kebisingan bit
Mikro: Pengesan Tahap Kebisingan bit

Ini hanyalah contoh ringkas untuk pengesan tahap kebisingan berdasarkan mikro: bit dan lingkungan Pimoroni: bit.

Mikrofon pada enviro: bit mengesan tahap bunyi, dan dari nilai yang dihasilkan, kedudukan pada matriks LED 5x5 dikira dan LED yang sesuai diaktifkan. Nilai maksimum yang diukur disimpan dan tetap dipaparkan pada matriks LED.

Nilai juga dapat ditunjukkan dalam angka.

Oleh itu, ia pada dasarnya adalah alat pengesanan tahap kebisingan yang sangat sederhana, mis. untuk eksperimen bilik kelas.

Kaedah yang dijelaskan untuk menampilkan nilai sebenar dan maksimum yang dikesan oleh sensor pada mikro: bit 5x5 matriks LED juga dapat digunakan untuk parameter lain seperti suhu, kelembapan atau tekanan.

Langkah 1: Bahagian dan Perisian yang Digunakan

Perkakasan:

  • Mikro: bit
  • Suatu persekitaran Pimoroni: bit - dilengkapi dengan tiga sensor untuk suara, cahaya dan warna, dan tekanan / suhu / kelembapan (20 GBP di Pimoroni)
  • Kekuatan Pimoroni: bit - untuk menghidupkan bateri peranti (pilihan, atau cara lain untuk menghidupkan mikrob, 6 GBP di Pimoroni)

Perisian:

  • Microsoft MakeCode
  • Pimoroni enviro: sambungan MakeCode bit

Untuk memuatkan skrip ke mikro: bit anda, salin sahaja fail hex yang disediakan ke mikro: bit anda dengan enviro: bit terpasang.

Langkah 2: Kodnya

Kod tersebut telah ditulis menggunakan Microsoft MakeCode dalam mod blok, menggunakan pelanjutan Enviro: Bit. Di bawah ini anda dapati Kod JavaScript yang sesuai.

Fungsi envirobit.getSoundLevel () membaca tahap bunyi dari sensor, mengembalikan nilai dari 0 hingga 443.

Sinyal_max berterusan menentukan nilai maksimum julat dinamik yang akan ditunjukkan pada matriks LED, nilai di atas akan dianggap sebagai signal_max. Ini membolehkan anda mengoptimumkan kepekaan peranti untuk aplikasi anda.

Nilai maksimum yang dikesan dalam lingkaran pengukuran disimpan dalam varian noise_max dan tetap dipaparkan pada matriks LED.

Menekan butang "A" menetapkan semula noise_max dan membersihkan skrin, menekan butang "B" memaparkan nilai kebisingan yang diukur sebagai nombor sebenar.

Untuk memaparkan nilai, nilai di bawah signal_max diletakkan dalam 25 "tong" yang ditunjukkan oleh satu LED, bermula dari 0 (kiri atas) hingga 24 (kanan bawah). Kemudian kedudukan x / y dikira dan LED yang sesuai dihidupkan. Nilai di atas signal_max diletakkan di tempat sampah 24. Sekiranya nilainya berada di bawah noise_max, LED akan dihidupkan semula.

biarkan noise_x = 0let signal_max = 0 let noise_5 = 0 let noise_25 = 0 let noise_max = 0 basic.showString ("Noise") noise_max = 0 noise_25 = 0 noise_5 = 0 signal_max = 250 basic.forever (function () {while (input.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) jika (noise_25> 24) {noise_25 = 24} noise_5 = Math.floor (noise_25 / 5) noise_x = noise_25 - noise_5 * 5 led.plot (noise_x, noise_5) basic.pause (200) if (noise_25 noise_max) {noise_max = noise_25}})

Langkah 3: Kod untuk Sensor Suhu (Kelembapan, Tekanan) Dengan Penunjuk Min / Maks

Kod untuk Sensor Suhu (Kelembapan, Tekanan) Dengan Indenator Min / Maks
Kod untuk Sensor Suhu (Kelembapan, Tekanan) Dengan Indenator Min / Maks

Di sini anda dapati kod untuk fungsi enviro: suhu suhu.

Parameter signal_min dan signal_max menetapkan suhu minimum dan maksimum (* C) yang dipaparkan pada matriks LED. Di sini menetapkan signal_main = 5 dan signal_max = 30 menghasilkan 5 dan 6 * C yang ditunjukkan oleh LED kiri atas (0, 0) dan 28/29 * C oleh LED kanan bawah (4, 4).

Terdapat ruang untuk pengoptimuman: dengan kod semasa kenaikan dan penurunan suhu meninggalkan jejak LED sama ada dihidupkan atau dimatikan. Di sisi lain ini memungkinkan untuk membaca kecenderungan suhu semasa (jatuh / naik), kerana nilai semasa ditunjukkan oleh LED yang berkedip.

Mengganti getTemperature () dengan getHumidity () atau getPressure () dan menyesuaikan nilai signal_min dan signal_max dengan sewajarnya (mis. 0/100% masing-masing 950/1150 hPA) akan memungkinkan untuk memaparkan parameter ini pada matriks LED.

biarkan Temp_x = 0let Temp_5 = 0 let signal_delta = 0 let Temp_25 = 0 let Temp_Min = 0 let signal_min = 0 let Temp_Max = 0 let 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 (function () {if (input.buttonIsPressed (Button. A)) {Temp_Max = 0 Temp_Min = 24 basic.clearScreen ()} sambil (input.buttonIsPressed (Button. B)) { basic.showNumber (Math.round (envirobit.getTemperature ())) basic.showString ("C")} Temp_25 = Math.floor ((envirobit.getTemperature () - signal_min) / signal_delta * 25) jika (Temp_25> 24) {Temp_25 = 24} if (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) if (Temp_25 Temp_Min) {led.unplot (Temp_x, Temp_5)} jika (Temp_25> Temp_Max) {Temp_Max = Temp_25} jika (Temp_25 <Temp_Min) {Temp_Min = Temp_25}})

Disyorkan: