Buzzer Aktif vs Pasif Arduino: Beza, Pendawaian & Kod tone()

Cartoon of two blue buzzer modules with black buzzer cans side by side, the left emitting three identical teal sound arcs, the right fed by a teal square wave and emitting arcs of varying size

Buzzer aktif membawa oscillatornya sendiri, jadi DC yang stabil membuatkan ia menahan satu nada tetap; buzzer pasif pula hanyalah transducer telanjang yang cuma mengeluarkan bentuk gelombang yang anda suapkan kepadanya. Beri voltan stabil kepada kedua-duanya dan bezanya terus ketara β€” yang aktif menyanyi, yang pasif berbunyi klik sekali kemudian senyap.

Apa sebenarnya yang berbeza di dalam buzzer aktif dan buzzer pasif?

Modul Buzzer Aktif mempunyai oscillator pemacu sendiri yang disimpan bertutup di bawah tin hitamnya, bersebelahan gegelung dan diafragma. Bekalkan DC dan litar itu menjana pemacuan berselang-selinya sendiri pada puncak resonans elemen tersebut, kira-kira 2.3 kHz, iaitu tempat sebuah tin 12 mm paling kuat berbunyi. Anda dapat satu nada sahaja, dan pin anda cuma menentukan sama ada ia hidup atau tidak.

Modul Buzzer Pasif pula tiada oscillator β€” hanya gegelung dan diafragma. Diafragma itu bergerak sekali bagi setiap edge yang anda hantar, jadi pitchnya tidak lain hanyalah frekuensi gelombang persegi anda. DC yang stabil menarik diafragma ke satu kedudukan lalu menahannya di situ: satu klik, kemudian senyap.

Itulah keseluruhan pertukarannya. Buzzer aktif menelan kos satu digitalWrite() dan memberi satu nada; buzzer pasif menelan kos satu timer perkakasan dan memberi anda satu skala penuh.

Pilihan lebih kuat

ItemPriceQty
SFM-20B Active Buzzer DC 3-24V Piezoelectric Long Continous BeepSFM-20B Active Buzzer DC 3-24V Piezoelectric Long Continous BeepSFM208SRM3.15

Buzzer aktif 3–24 V berwayar terjuntai untuk bila modul biasa tidak cukup kuat. Ia menarik paling banyak 12 mA pada kadaran 12 V, jadi satu pin Uno memacunya terus pada 5 V β€” tetapi hujung wayar berurat halus bertimahnya tidak muat pada mana-mana header, jadi pintalkannya pada hujung jumper atau apitkannya dalam terminal skru.

Buzzer pasif telanjang ialah elemen yang sama pada dua pin keras berjarak breadboard β€” harganya beberapa sen sahaja, tetapi pin itu perlukan breadboard, bukan soket jumper. Modul pasif KY-006 pula board bajet dengan pin lurus, berkadaran 1.5–2.5 kHz.

Bagaimana nak bezakan kedua-duanya bila rupanya serupa?

Modul Buzzer Aktif dan Modul Buzzer Pasif kami memang kembar yang disengajakan: PCB biru yang sama, tanda MH-FMD yang sama, tiga pin yang sama berlabel GND, I/O dan VCC. Buzzer telanjang lagi teruk β€” dari atas kedua-duanya cuma cakera hitam dengan lubang di tengah. Dua petunjuk sudah cukup untuk selesaikan hal ini.

Ujian melalui kod ialah jawapan muktamad. Dawaikan VCC modul ke 5 V, GND ke GND dan I/O ke D8, kemudian tahan pin itu pada satu keadaan tetap lalu dengar: bunyi berterusan bermakna aktif, satu klik perlahan bermakna pasif. Empat baris sahaja.

const uint8_t IO_PIN = 8;

void setup() {
  digitalWrite(IO_PIN, HIGH);   // senyap dahulu - lihat bahagian pendawaian
  pinMode(IO_PIN, OUTPUT);
  delay(1000);
  digitalWrite(IO_PIN, LOW);    // DC stabil bermula dari sini
}
void loop() {}

Buzzer telanjang menyongsangkan sketch itu, sebab tiada apa-apa duduk antara pin dan elemen: kaki (+) ke pin, kaki satu lagi ke GND, dan pacu pin itu HIGH untuk membunyikannya. Letakkan perintang 100 Ξ© dalam laluan tersebut dan pendekkan tempoh ujian β€” buzzer telanjang mengambil seluruh arusnya terus daripada pin dan bukan daripada transistor, sedangkan elemen pasif hanyalah gegelung beberapa puluh ohm sahaja, jauh lebih rendah daripada apa yang wajar diminta daripada satu pin Arduino berseorangan.

Bahagian bawahnya tidak perlukan kuasa langsung. Terbalikkan buzzer telanjang: yang aktif ditutup rata dengan bahan potting hitam, sebab ada litar pemacu di bawah situ yang perlu dilindungi, manakala yang pasif menunjukkan gegelung pemacunya dan dua titik pateri secara terang-terangan. Ketinggian ialah petunjuk yang lebih lemah β€” tin aktif sedikit lebih tinggi β€” dan ia hanya membantu bila anda memegang kedua-duanya serentak. Labelkan beg itu pada hari ia sampai.

Berbaloi mendengar kedua-duanya bersebelahan:

Kartun membandingkan dua buzzer silinder hitam yang dijungkitkan untuk menunjukkan bahagian bawahnya, yang kiri ditutup rata hitam dan yang kanan menunjukkan board hijau dengan gegelung tembaga, dengan pandangan atas yang serupa dilukis di atasnya
Dari atas kedua-duanya silinder hitam yang sama. Terbalikkannya dan yang aktif ditutup rapat menutupi oscillatornya, manakala yang pasif menunjukkan gegelung pemacunya secara terbuka.

Bagaimana cara mendawai modul buzzer ke Uno?

Modul buzzer membawa tiga pin male bersudut tepat dan modul getaran SW-18010P pula empat pin male lurus, sedangkan header Uno ialah soket female β€” jadi satu pek jumper male-to-female mendawai keseluruhan binaan ini. Tiada breadboard, tiada apa-apa untuk dipateri. Baca silkscreen sebelum anda menolak penyambung masuk: kedua-dua modul buzzer menyusun GND, I/O, VCC sepanjang headernya, dengan bekalan dan ground di hujung yang bertentangan, jadi penyambung tiga hala yang dipasang terbalik akan mendaratkan 5 V pada pin ground modul.

Pin modul Pin Uno Sebabnya
VCC buzzer (kedua-dua modul) 5V Membekalkan elemen buzzer melalui transistor pada modul
GND buzzer (kedua-dua modul) GND Laluan balik untuk arus buzzer dan untuk isyarat
I/O buzzer aktif D8 Mana-mana pin digital biasa; ia cuma naik tinggi atau turun rendah
I/O buzzer pasif D9 Mana-mana pin digital β€” tone() berfungsi pada kesemuanya
VCC sensor 5V Menguasakan comparator LM393 dan kedua-dua LED penunjuk
GND sensor GND Pin ketiga, bukan pin terakhir β€” susunan silkscreen ialah AO DO GND VCC
DO sensor D2 D2 ialah interrupt INT0 β€” Uno hanya ada external interrupt pada D2 dan D3
AO sensor tidak digunakan Voltan suis mentah; output digital itulah yang kita mahukan

Satu perkara yang tiada dalam mana-mana senarai komponen: Uno ada tiga soket GND tetapi hanya satu soket 5 V, dan satu hujung jumper sahaja sudah memenuhinya. Penggera di penghujung artikel ini menjalankan buzzer dan sensor serentak, jadi ia perlukan suapan 5 V kedua β€” ambil dari blok ICSP 2Γ—3 berhampiran tepi board, iaitu header male yang pin 5 Vnya duduk bersebelahan pin 1 bertanda di baris satu lagi, jadi hujung female jumper boleh ditolak terus ke atasnya. Breadboard mini pun berkongsi rel itu dengan sama baiknya.

Kenapa buzzer menjerit sebaik sahaja sketch anda berjalan?

Kedua-dua modul buzzer MakerHub bertanda silkscreen δ½Žη”΅εΉ³θ§¦ε‘ β€” low-level trigger, dan istilah itu menggambarkan litarnya dengan tepat. Komponen SOT-23 di sebelah tulisan tersebut ialah transistor PNP S8550 dengan emitternya pada VCC, dan perintang di sebelahnya bertanda 102, iaitu 10 Γ— 10Β² dalam kod tiga digit, atau 1 kΞ©. Perintang itulah yang menyambungkan base kepada pin I/O.

Transistor PNP mengalirkan arus apabila basenya ditarik lebih rendah daripada emitternya. Tarik I/O ke 0 V dan base itu duduk satu bekalan penuh di bawah VCC; lebih kurang (5 V βˆ’ 0.7 V) Γ· 1 kΞ© β‰ˆ 4 mA mengalir keluar dari base, yang menjadikan transistor itu tepu lalu menyambungkan buzzer kepada 5 V. Tahan I/O pada 5 V pula dan langsung tiada voltan emitter-base, tiada arus base, dan buzzer itu mati. Jadi LOW ialah keadaan berbunyi dan HIGH ialah keadaan senyap. Arus 4 mA itu diserap oleh pin Arduino, selesa di dalam had 20 mA setiap pin I/O yang ditetapkan untuk Uno.

Kiraan yang sama juga menyelesaikan persoalan apa yang board 3.3 V boleh buat dengan modul ini. Pacu I/O daripada ESP32 sementara modul itu masih berjalan pada 5 V, dan keadaan HIGH 3.3 V duduk 1.7 V di bawah emitter, jadi kira-kira (5 V βˆ’ 3.3 V βˆ’ 0.7 V) Γ· 1 kΞ© β‰ˆ 1 mA terus meninggalkan base: transistor itu tidak pernah menutup dan buzzer tidak pernah berhenti. Kuasakan VCC modul daripada rel 3.3 V pula, maka arasnya sepadan semula β€” pada HIGH langsung tiada voltan emitter-base, dan buzzer betul-betul senyap. Bunyinya sedikit lebih perlahan pada rel yang lebih rendah, dan itu sahaja kos penyelesaian ini.

Sekarang perangkapnya. Pada AVR, pinMode(pin, OUTPUT) menghidupkan pemacu pin sedangkan latch output masih memegang nilai resetnya iaitu sifar β€” jadi pin itu turun ke rendah sebaik sahaja ia menjadi output, dan pada modul ini itulah keadaan berbunyi. Sebelum itu ia input terapung dan buzzer senyap, dan itulah sebabnya bunyi bermula tepat pada saat sketch anda sampai ke setup(). Penyelesaiannya satu baris, dalam susunan ini:

digitalWrite(BUZZER_PIN, HIGH);   // set latch semasa ia masih input
pinMode(BUZZER_PIN, OUTPUT);      // pin naik terus HIGH, tidak pernah lalu LOW

Perangkap yang sama ada bentuk keduanya dalam noTone(): core Arduino AVR menamatkan fungsi itu dengan digitalWrite(_pin, 0), dan tone() yang berhad tempoh juga berakhir dengan cara yang sama β€” pada Uno, interrupt timer nota itu sendiri memanggil noTone() apabila tempohnya habis. Pada buzzer high-level-trigger itu bermakna senyap; pada buzzer kita ia bermakna siren yang kekal berbunyi. Ikutkan setiap noTone() dengan digitalWrite(pin, HIGH).

Rajah kartun terbelah menunjukkan modul buzzer biru yang sama dua kali, di sebelah kiri anak panah teal menuding ke bawah pada wayar kuningnya sementara buzzer mengeluarkan lengkung bunyi, di sebelah kanan anak panah menuding ke atas dengan buzzer senyap
Low-level trigger dilukis terus: menarik pin isyarat ke bawah itulah yang membuatkan bunyi dan menahannya di atas itulah yang membuatkan senyap β€” songsang daripada apa yang diandaikan kebanyakan sketch.

Bagaimana cara memainkan melodi dengan tone()?

Fungsi tone() menyerahkan pin anda kepada satu timer perkakasan yang menogolnya pada dua kali frekuensi yang anda minta, kemudian terus kembali β€” nota itu berterusan berbunyi sementara kod anda meneruskan kerjanya. Transistor yang menyongsangkan isyarat tadi tidak merosakkan apa-apa: gelombang persegi 50% yang diterbalikkan tetap gelombang persegi 50% pada frekuensi yang sama, jadi modul itu memainkan tepat pitch yang anda minta.

Satu timer itulah yang menetapkan hadnya. Pada Uno, tone() menuntut Timer2, jadi PWM pada pin 3 dan 11 berhenti selagi satu nota berbunyi, dan hanya satu nota boleh berbunyi pada satu-satu masa. Nota yang jauh daripada puncak resonans elemen itu juga keluar lebih perlahan β€” itu kerja diafragma, bukan kod anda.

// Skala lapan nota pada modul buzzer PASIF. Uno, I/O pada D9.
const uint8_t IO_PIN = 9;
const uint8_t BUZZER_OFF = HIGH;   // low-level trigger: HIGH bermakna senyap

const int NOTES[] = { 262, 294, 330, 349, 392, 440, 494, 523 };  // C4..C5
const uint8_t NOTE_COUNT = sizeof(NOTES) / sizeof(NOTES[0]);
const int NOTE_MS = 250;
const int GAP_MS  = 60;

// noTone() berakhir dengan menulis pin ke LOW, dan pada modul
// low-level trigger LOW bermakna "berbunyi". Sentiasa parkir pin
// pada HIGH selepas itu.
void silence() {
  noTone(IO_PIN);
  digitalWrite(IO_PIN, BUZZER_OFF);
}

void setup() {
  digitalWrite(IO_PIN, BUZZER_OFF);   // senyap sebelum pin jadi output
  pinMode(IO_PIN, OUTPUT);
}

void loop() {
  for (uint8_t i = 0; i < NOTE_COUNT; i++) {
    tone(IO_PIN, NOTES[i]);   // gelombang persegi pada frekuensi ini, terus lepas
    delay(NOTE_MS);           // nota terus berbunyi sementara kita menunggu
    silence();
    delay(GAP_MS);
  }
  delay(2000);
}

Itu dikompil menjadi 2,390 bait, 7% daripada flash Uno. Buang silence() dan skala itu akan bercantum menjadi satu raungan tanpa putus.

Bagaimana cara membina penggera yang berbunyi hanya bila sepatutnya?

SW-18010P di dalam tin hitam itu ialah spring gegelung yang melilit satu pin tengah, biasanya terbuka. Satu hentakan melontarkan spring itu ke pin tersebut selama beberapa milisaat sebelum ia melantun balik β€” jadi ini sensor peristiwa, dan satu ketukan menghasilkan serentetan sentuhan sementara spring itu bergegar.

LM393 menukarkan kekusutan itu menjadi edge digital yang bersih. Satu perintang menahan nod suis itu tinggi berhampiran VCC, spring yang merapat menariknya ke ground, dan comparator melaporkan di sebelah mana nod itu berada berbanding satu voltan rujukan β€” trimmer biru 3362 itulah voltan rujukan tersebut. Secara reka bentuk, DO berehat pada keadaan tinggi dan berdenyut ke rendah. Tetapi pusingkan trimmer itu sampai ke mana-mana hujung perjalanannya, dan voltan rujukan akan mendarat di luar julat yang mampu dicapai nod tersebut, jadi DO tersekat pada satu keadaan, tiada edge sampai ke D2, dan penggera itu langsung tidak akan berbunyi. Laraskannya sekali sahaja: kuasakan board, biarkan ia diam, pusing trimmer sehingga LED DO baru sahaja padam, kemudian ketuk meja dan perhatikan ia berkelip. Kalau anda lebih suka membaca nombor daripada memerhati lampu, cetak digitalRead(2) dalam satu loop kosong: ia patut menunjukkan 1 semasa board diam dan 0 apabila diketuk. Bacaan itu juga yang mengesahkan bahawa interrupt di bawah memang patut menggunakan FALLING.

Sketch di bawah kemudian membuat empat perkara, setiap satunya menjawab satu cara penggera menyakitkan hati orang. Ia mengabaikan segalanya selama sepuluh saat selepas dikuasakan, jadi meletakkannya di tempatnya bukan satu peristiwa. Ia mengabaikan edge berulang dalam masa 40 ms, sebab itu satu ketukan yang bergegar, bukan empat ketukan. Ia perlukan empat ketukan berasingan dalam masa 1.5 saat, jadi lori yang lalu di luar tidak cukup untuk membangkitkannya. Dan ia mengunci siren selama lima saat menggunakan millis() dan bukan delay() β€” siren yang dibina atas delay() pekak sepanjang tempohnya, dan itu penting sebaik sahaja anda mahukan butang untuk mendiamkannya.

// Penggera getaran. DO SW-18010P -> D2, I/O buzzer AKTIF -> D8. Uno.
const uint8_t SHAKE_PIN  = 2;   // D2 ialah INT0 - itu sahaja sebab pin ini dipilih
const uint8_t BUZZER_PIN = 8;
const uint8_t BUZZER_ON  = LOW;    // modul low-level trigger
const uint8_t BUZZER_OFF = HIGH;

const unsigned long ARM_DELAY_MS  = 10000UL; // masa untuk letak dan berjalan pergi
const unsigned long BOUNCE_MS     = 40UL;    // satu ketukan menggegarkan spring
const unsigned long WINDOW_MS     = 1500UL;  // ketukan mesti mendarat dalam ini
const uint8_t       PULSES_NEEDED = 4;       // lagi rendah = penggera lagi cepat melatah
const unsigned long SIREN_MS      = 5000UL;

volatile unsigned long lastEdgeMs = 0;
volatile unsigned int  pulses     = 0;

bool armed = false, sounding = false, windowOpen = false;
unsigned long windowStart = 0, sirenStart = 0;

// Berjalan sebaik DO jatuh, tidak kira apa yang loop() sedang buat.
// Mengira sahaja - keputusan dibuat dalam loop() supaya senang dibaca.
void onShake() {
  unsigned long now = millis();
  if (now - lastEdgeMs < BOUNCE_MS) return;   // masih ketukan sama yang bergegar
  lastEdgeMs = now;
  pulses++;
}

// pulses ialah 16-bit, jadi AVR membacanya dalam dua arahan. Sekat
// interrupt sepanjang bacaan atau satu edge boleh mendarat di celahnya.
unsigned int readPulses() {
  noInterrupts();
  unsigned int n = pulses;
  interrupts();
  return n;
}

void clearPulses() {
  noInterrupts();
  pulses = 0;
  interrupts();
}

void setup() {
  digitalWrite(BUZZER_PIN, BUZZER_OFF);   // SEBELUM pinMode - jangan sekali lalu LOW
  pinMode(BUZZER_PIN, OUTPUT);

  // Output LM393 ialah open-collector: ia boleh menarik talian ke bawah
  // tetapi tidak boleh menolaknya ke atas, jadi beri pull-up untuk ia jatuh.
  pinMode(SHAKE_PIN, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(SHAKE_PIN), onShake, FALLING);
}

void loop() {
  unsigned long now = millis();

  // 1. Lengah bersiap sedia - abaikan sentuhan anda sendiri masa keluar bilik.
  if (!armed) {
    if (now >= ARM_DELAY_MS) { clearPulses(); armed = true; }
    return;
  }

  // 2. Siren sudah berbunyi: biar ia habis, kemudian bersiap sedia semula.
  if (sounding) {
    if (now - sirenStart >= SIREN_MS) {
      digitalWrite(BUZZER_PIN, BUZZER_OFF);
      sounding = false;
      windowOpen = false;
      clearPulses();          // ketukan semasa siren tidak mencetuskannya semula
    }
    return;
  }

  unsigned int n = readPulses();
  if (n == 0) return;

  // 3. Ketukan pertama membuka satu tetingkap masa.
  if (!windowOpen) { windowOpen = true; windowStart = now; }

  // 4. Cukup ketukan dalam tetingkap itu - ini betul-betul kejadian.
  if (n >= PULSES_NEEDED) {
    digitalWrite(BUZZER_PIN, BUZZER_ON);
    sounding = true;
    sirenStart = now;
    return;
  }

  // 5. Tetingkap tamat tanpa cukup ketukan - lori lalu. Lupakan.
  if (now - windowStart >= WINDOW_MS) {
    windowOpen = false;
    clearPulses();
  }
}

Pasang sensor itu pada benda yang anda lindungi, bukan di sebelahnya β€” spring itu hanya menjawab hentakan yang betul-betul sampai kepadanya. Kemudian tala guna pemalar di bahagian atas: kalau satu ketukan tajam sudah pun membunyikan penggera, spring itu masih bergema melepasi 40 ms, jadi naikkan BOUNCE_MS; kalau tolakan yang kuat pun tidak pernah cukup empat kiraan, turunkan PULSES_NEEDED atau lebarkan WINDOW_MS.

Ia dikompil menjadi 1,370 bait dan 30 bait RAM, meninggalkan ruang untuk keypad, paparan atau butang senyap. Kekalkan semuanya pada rel 5 V Uno β€” tiada apa-apa di sini yang patut berada dekat dengan mains. Kalau anda pasang SFM-20B yang lebih kuat, ujinya sepanjang lengan dan bukan di sebelah telinga anda; ia memang dibina untuk didengari merentas satu rumah. Ia juga menyongsangkan sketch itu, kerana ia buzzer dua wayar telanjang tanpa transistor di hadapannya: wayar merah ke D8, hitam ke GND, dan tukar pemalar supaya BUZZER_ON menjadi HIGH dan BUZZER_OFF menjadi LOW. Biarkan seperti sedia ada dan siren itu akan berjalan terbalik, senyap hanya semasa penggera dicetuskan.

Tukar spring itu dengan PIR dan anda dapat binaan yang dicetus pergerakan kami, yang berbunyi apabila seseorang melintasi bilik dan bukan apabila perabot digerakkan; tukar pula dengan sensor gas atau api dan anda dapat penggera asap MQ-2 atau penggera api. Remote IR pula menjadi butang senyap yang kemas, sebab pemasaan millis() meninggalkan loop itu lapang untuk memerhatikannya.

Kesilapan biasa yang kami lihat daripada pelanggan sebenar

Membeli buzzer aktif untuk memainkan lagu. Corak yang paling kerap: tone() berjalan, frekuensi berubah dalam kod, tetapi setiap nota berbunyi serupa. Tiada apa-apa yang rosak β€” oscillator dalamannya yang menetapkan pitch, jadi gelombang persegi anda cuma menentukan hidup atau mati.

Mengira header sensor dari hujung yang salah. Tabiat memberitahu pin ground duduk di hujung baris. Di sini VCC yang terakhir dan GND yang ketiga β€” susunannya AO DO GND VCC β€” jadi header yang dibaca terbalik meletakkan 5 V ke dalam output analog dan meninggalkan board itu tanpa kuasa.

Menganggap pin terapung sebagai “mati”. Pin yang dibiarkan sebagai input memang senyap pada modul ini, dan itu menyembunyikan masalahnya sehinggalah sesuatu yang lain dalam sketch memacunya ke rendah. Tetapkan arasnya secara jelas dalam setup() dan keadaan buzzer tidak akan jadi kemalangan.

Menyalahkan buzzer atas trimmer yang tersekat. Penggera yang langsung tidak bertindak balas pada ketukan biasanya berpunca daripada voltan rujukan modul getaran yang dipusing melepasi julat nod suisnya, bukan buzzer yang rosak β€” DO berhenti bergerak terus, jadi sketch itu tidak pernah nampak sebarang edge.

Soalan Lazim

Boleh tak saya guna tone() dengan buzzer aktif?

Boleh dipanggil, tetapi pitchnya tidak akan berubah. Oscillator buzzer aktif itu tetap, jadi apa-apa frekuensi yang anda hantar cuma menghidupkannya. Gunakannya untuk bip dan amaran; gunakan buzzer pasif untuk apa-apa yang berlagu.

Buzzer saya berbunyi tanpa henti sebaik Arduino dihidupkan β€” apa masalahnya?

Hampir pasti tiada masalah. Kedua-dua modul kami low-level trigger, jadi pin yang duduk pada 0 V bermakna “berbunyi”. pinMode(pin, OUTPUT) seorang diri meninggalkan pin itu pada keadaan rendah, jadi tulis ia HIGH dahulu, kemudian barulah tetapkannya sebagai output.

Buzzer mana patut saya pilih untuk projek penggera sekolah?

Modul aktif, melainkan skema pemarkahan meminta lagu. Satu baris kod, kuat untuk saiznya, tiada timer nak diterangkan. Simpan satu modul pasif dalam kotak untuk projek yang mahukan melodi.

Modul ini perlukan perintang atau transistor tak?

Tidak β€” transistornya sudah ada di atas board, dan itulah tujuan modul ini wujud. Pin Arduino hanya menanggung kira-kira 4 mA arus base.

Macam mana nak buat penggera ini lebih kuat?

Naik taraf ke SFM-20B, elemen yang lebih besar dan dibina untuk tugas penggera berterusan. Ia berjalan dari 3 hingga 24 V dan menarik paling banyak 12 mA pada kadaran 12 Vnya, jadi satu pin Uno memacunya terus pada 5 V β€” dan ia jadi lebih kuat apabila anda menaikkan bekalannya. Ia tiada transistor di hadapannya, jadi ia berbunyi pada HIGH: tukar BUZZER_ON dan BUZZER_OFF apabila anda memasangnya.

Binaan kartun di atas meja menunjukkan laci kayu yang membawa modul sensor getaran biru dan modul buzzer biru yang mengeluarkan lengkung bunyi teal, didawai ke board Arduino biru kecil yang terpotong di tepi bingkai, dengan sebelah tangan mengetuk laci itu
Penggera yang siap: sensor spring dan buzzer menumpang pada benda yang anda mahu lindungi, dan satu ketukan mesti berulang dalam tetingkap masa sebelum apa-apa berbunyi.

Aktif untuk “ada sesuatu berlaku”, pasif untuk apa-apa yang berlagu β€” dan pada kedua-duanya, HIGH ialah cara anda meminta senyap.

Kemas kini terakhir Ogos 2026. Tersangkut? Chat dengan kami di WhatsApp.

Leave a Reply

Your email address will not be published. Required fields are marked *