Sensor Gas MQ-2 Arduino: Penggera Gas & Asap Dapur dengan Buzzer

Cartoon of a large MQ-2 gas sensor with a silver wire-mesh canister on a royal blue board with a blue trimmer, grey smoke wisps curling around it and a small black buzzer sounding beside it

Modul MQ-2 memberitahu anda bahawa udara di sekelilingnya sudah berubah, dengan cepat dan murah β€” tetapi ia tidak menghulurkan nombor ppm yang boleh dipercayai. Jadi binalah ia secara jujur: panaskan sensor, biar Arduino merekod bacaan udara bersih, dan bunyikan penggera pada sebarang kenaikan di atas bacaan asas itu. Amaran awal untuk kebocoran gas dapur atau projek sekolah, bukan detektor yang diperakui.

Apa yang anda perlukan untuk bina penggera gas dan asap MQ-2?

Modul MQ-2 perlukan tiga sambungan sahaja: 5 V, ground, dan satu wayar analog masuk ke Arduino. Selebihnya dalam senarai di bawah wujud semata-mata untuk menjadikan tiga sambungan itu boleh dibuat secara fizikal tanpa solder.

Parts list

ItemPriceQty
Relay Module 3.3V 5V 12V 1/2/4/8 Ways Optocoupler Trigger Relay Module 1 2 4 8 Channel Relay Module - 5V RELAY MODULE(1WAY)Relay Module 3.3V 5V 12V 1/2/4/8 Ways Optocoupler Trigger Relay Module 1 2 4 8 Channel Relay Module - 5V RELAY MODULE(1WAY)1WRELAYRM3.15
DC Cooling Fan 5V/12V Brushless Small Fan for 3D Printer DIY Projects Electronics Cooling - 6010 FAN (5V)DC Cooling Fan 5V/12V Brushless Small Fan for 3D Printer DIY Projects Electronics Cooling - 6010 FAN (5V)F601005RM8.95

Tambah dua ini kalau anda mahu kipas ekzos berpusing sebaik sahaja penggera berbunyi. Relay ialah suis, bukan punca kuasa β€” kipas berjalan dari bekalan 5 V miliknya sendiri, dan bahagian yang disuis itu kekal DC voltan rendah.

Modul MQ-2 dan buzzer aktif MH-FMD kedua-duanya membawa pin male bersudut tepat, jadi hujung female jumper male-to-female yang mencengkamnya; hujung male jumper itu pula mencucuk ke dalam breadboard, yang relnya memecahkan satu soket 5 V itu kepada dua, dan jumper male-to-male membawa rel tadi balik ke Uno. Uno diprogram melalui USB-B bersaiz penuh, jadi ia perlukan kabel A-to-B.

Bagaimana sebenarnya MQ-2 menghidu gas?

Elemen pengesan MQ-2 ialah lapisan nipis tin dioksida (SnO2) pada sebatang tiub seramik kecil, dengan gegelung pemanas nikel-kromium menembusinya, seperti dinyatakan dalam datasheet Hanwei. Pemanas itu menahan lapisan tadi pada suhu beberapa ratus darjah, dan pada suhu itu oksigen dari udara melekat pada permukaannya lalu memerangkap elektron keluar daripada tin dioksida. Elektron yang terperangkap itu meninggalkan satu lapisan susut elektron yang sukar dilalui arus β€” sensor yang bersih dan panas sebenarnya mempunyai rintangan yang agak tinggi.

Gas mudah terbakar merosakkan susunan itu. LPG, butana, metana, wap alkohol dan hidrokarbon tak terbakar di dalam asap bertindak balas dengan oksigen yang melekat tadi lalu membebaskan elektron yang dipegangnya; lapisan susut mengecil, rintangan jatuh, dan resistor tetap pada modul itu menukar penurunan itu menjadi voltan yang meningkat pada AO. Tiada apa-apa dalam rantaian ini yang khusus kepada satu gas β€” sebab itulah satu elemen yang sama menyahut LPG, asap dan alkohol sekali gus, dan sebab itulah keluarga ini ada adik-beradik seperti sensor kualiti udara MQ-135 yang menjadi teras panduan monitor jerebu kami.

Jaring perak itu ialah gauze keluli tahan karat kalis letupan, yang menghalang elemen membara di dalamnya daripada menyalakan gas yang sedang dihidunya. Jangan sekali-kali tanggalkannya, dan jangan sekali-kali bawa api dekat dengannya. Mengesan api itu sendiri, dan bukan asapnya, ialah kerja inframerah β€” lihat panduan penggera sensor api kami.

Keratan rentas kartun sensor MQ-2 menunjukkan cengkerang jaring perak, tiub seramik krim dengan gegelung pemanas oren yang membara di dalamnya, molekul gas teal yang masuk dan titik oksigen oren yang terlerai dari permukaan
Di sebalik jaring itu: pemanas mengekalkan lapisan tin dioksida supaya panas, oksigen melekat padanya dan memerangkap elektron, dan gas yang tiba menyingkirkan oksigen itu β€” lalu rintangan pun jatuh.

Kenapa MQ-2 perlu warm-up sebelum anda boleh percaya bacaannya?

MQ-2 membaca tinggi dan menurun perlahan-lahan sepanjang beberapa minit pertama setiap kali dihidupkan, dan itu kimia, bukan kerosakan: pemanas perlu membawa tiub seramik itu ke suhu kerjanya dahulu sebelum oksigen kembali melekat pada lapisan tadi dan duduk diam pada liputan yang mentakrifkan “udara bersih” bagi sensor itu. Datasheetnya meminta lebih 24 jam preheat sebelum angka sensitivitinya terpakai β€” itu burn-in yang sensor baharu mahukan sekali sahaja; setiap kali dihidupkan selepas itu cuma perlukan beberapa minit.

Sketch di bawah menunggu tiga minit, mempuratakan 64 bacaan menjadi satu baseline, dan berbunyi pada kenaikan peratusan di atas nilai itu β€” jadi sensor yang sudah tua atau latar dapur yang lebih tinggi menggerakkan baseline dan ambang penggera serentak.

Graf garisan kartun menunjukkan bacaan sensor menurun dari nilai tinggi ke satu dataran rata yang ditanda garis putus-putus teal sebagai baseline, dengan aras penggera putus-putus oren di atasnya dan satu puncak tajam akibat asap yang melintasi aras itu lalu membunyikan buzzer
Bacaan jatuh dan mendatar apabila pemanas sudah duduk diam. Bahagian rata itulah yang menjadi baseline, aras penggera duduk beberapa peratus di atasnya, dan hanya kenaikan yang benar-benar berlaku sahaja melintasi garisan itu.

Bagaimana cara wayar MQ-2 dan buzzer ke Uno?

Board MQ-2 mencetak empat label pinnya di bawah board, di sebelah header, kerana tin perak itu melindungi hujung tersebut daripada pandangan atas. Baca label itu sebelum menghidupkan apa-apa β€” menyongsangkan VCC dan GND meletakkan 5 V secara terbalik merentasi pemanas. Untuk membezakan dua output itu: AO beralih beberapa puluh count apabila anda menghembus dekat jaring; DO pula duduk keras pada 5 V atau 0 V.

Dari Ke Kenapa
Uno 5V dan GND Rel + dan βˆ’ breadboard Rel itulah yang memecahkan satu soket 5 V antara dua modul
VCC / GND MQ-2 Rel + / rel βˆ’ Pemanas itulah bebannya di sini, bukan pin Arduino
AO MQ-2 Uno A0 Voltan yang naik secara licin mengikut gas β€” itulah yang dibaca oleh sketch
DO MQ-2 Biarkan tidak bersambung Output comparator yang turun ke LOW selepas melepasi ambang trimmer biru. Trimmer itu menggerakkan ambang tersebut sahaja β€” ia langsung tidak boleh mengubah nilai analog
VCC / GND buzzer Rel + / rel βˆ’ Modul ini ada transistor pemandunya sendiri
I/O buzzer Uno D8 Berbunyi apabila pin ini ditarik ke LOW β€” itulah maksud tanda δ½Žη”΅εΉ³θ§¦ε‘ pada board itu

Pemanas MQ-2 dispesifikasikan pada 33 Ξ©, jadi pada 5 V ia menarik 5 Γ· 33 β‰ˆ 150 mA dan membakar 5 Γ— 0.15 β‰ˆ 0.75 W β€” angka “kurang daripada 800 mW” dalam datasheet, dikira dari arah yang lain. Bersama Uno dan buzzer, penggera ini duduk sekitar suku ampere, di dalam had polyfuse resettable 500 mA pada input USB. Pemanas itu berjalan tanpa henti, dan itulah sebabnya modul ini terasa suam dan sebabnya projek ini bukan projek bateri.

Melihat asap benar-benar dilambai ke arah jaring itu memang membantu:

Apa sebenarnya yang dibuat oleh kod Arduino sensor gas MQ-2 ini?

MQ-2 tidak perlukan library β€” AO cuma voltan analog biasa dan buzzer cuma satu pin digital. Tetapkan board kepada Arduino Uno, upload, kemudian buka Serial Monitor pada 9600 baud terus selepas itu: membuka port itu mendenyutkan talian reset Uno melalui satu kapasitor, jadi warm-up tiga minit tadi bermula semula dari awal secara senyap setiap kali anda buka tetingkap tersebut. Ia dikompil menjadi 3,970 bait, lebih kurang 12% daripada flash Uno, dan baris-baris relay itu tidak memudaratkan walaupun anda tidak beli bahagian pilihan tadi.

// Penggera gas + asap dapur MQ-2: warm-up, belajar udara bersih, bunyi bila bacaan NAIK.
// Tiada library diperlukan - AO cuma voltan analog dan buzzer cuma satu pin digital.

const uint8_t MQ2_AO_PIN  = A0;  // Output analog MQ-2, 0-5 V masuk ke ADC 10-bit
const uint8_t BUZZER_PIN  = 8;   // I/O buzzer aktif MH-FMD - ia berbunyi pada LOW
const uint8_t RELAY_PIN   = 7;   // IN relay pilihan, jumper pada H = aktif pada HIGH

const unsigned long WARMUP_MS   = 180000UL;  // 3 min: biar heater dan filem itu duduk diam
const uint8_t       BASE_SAMPLE = 64;        // bilangan bacaan yang dipuratakan jadi baseline
const unsigned long BASE_GAP_MS = 60UL;      // jarak antara bacaan tersebut (~4 s semuanya)

const float    RISE_FACTOR  = 1.35;  // bunyi pada 35% di atas baseline udara bersih
const float    CLEAR_FACTOR = 1.15;  // berhenti hanya selepas ia turun balik hampir baseline
const uint16_t RISE_FLOOR   = 40;    // ...tetapi kenaikan tak pernah kurang dari 40 count ADC

const unsigned long ALARM_MIN_MS = 5000UL;  // penggera terpendek, supaya satu hembusan tak buat ia tersekat-sekat
const unsigned long BEEP_MS      = 250UL;   // tempoh on/off bagi nada berdenyut itu

uint16_t baseline    = 0;
uint16_t alarmLevel  = 0;
uint16_t clearLevel  = 0;

bool alarmOn = false;
unsigned long alarmStartedMs = 0;
unsigned long beepToggledMs  = 0;
bool beepAudible = false;

// Modul buzzer ini ialah trigger aras-LOW: menarik I/O ke LOW itulah yang membuatkan ia berbunyi.
void buzzer(bool on) {
  digitalWrite(BUZZER_PIN, on ? LOW : HIGH);
}

uint16_t averageOfSamples() {
  uint32_t total = 0;
  for (uint8_t i = 0; i < BASE_SAMPLE; i++) {
    total += analogRead(MQ2_AO_PIN);
    delay(BASE_GAP_MS);
  }
  return (uint16_t)(total / BASE_SAMPLE);
}

void setup() {
  Serial.begin(9600);

  // Tetapkan aras idle SEBELUM setiap pin menjadi output. Pin output yang baharu bermula
  // pada LOW, dan LOW itulah yang membuatkan buzzer ini menjerit - jadi tulis HIGH dahulu.
  // Relay, dengan jumpernya pada H, adalah sebaliknya: LOW ialah keadaan matinya.
  digitalWrite(BUZZER_PIN, HIGH);
  pinMode(BUZZER_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);
  pinMode(RELAY_PIN, OUTPUT);

  Serial.println(F("Warming up - keep the air around the sensor clean."));
  while (millis() < WARMUP_MS) {
    delay(1000);
  }

  baseline   = averageOfSamples();
  uint16_t rise = (uint16_t)(baseline * (RISE_FACTOR - 1.0));
  if (rise < RISE_FLOOR) {
    rise = RISE_FLOOR;
  }
  alarmLevel = baseline + rise;
  clearLevel = baseline + (uint16_t)(rise * (CLEAR_FACTOR - 1.0) / (RISE_FACTOR - 1.0));

  Serial.print(F("Clean-air baseline: "));
  Serial.print(baseline);
  Serial.print(F("  alarm at: "));
  Serial.print(alarmLevel);
  Serial.print(F("  clears below: "));
  Serial.println(clearLevel);
}

void loop() {
  unsigned long now = millis();
  uint16_t reading = analogRead(MQ2_AO_PIN);

  if (!alarmOn && reading >= alarmLevel) {
    alarmOn = true;
    alarmStartedMs = now;
    beepToggledMs = now;
    beepAudible = true;
    buzzer(true);
    digitalWrite(RELAY_PIN, HIGH);
    Serial.print(F("ALARM - reading "));
    Serial.println(reading);
  }

  if (alarmOn) {
    // Denyutkan nada itu supaya ia berbunyi macam penggera, bukan buzzer yang tersangkut.
    if (now - beepToggledMs >= BEEP_MS) {
      beepToggledMs = now;
      beepAudible = !beepAudible;
      buzzer(beepAudible);
    }

    // Ia hanya dibenarkan berhenti apabila KEDUA-DUA benar: udara sudah bersih semula DAN
    // penggera sudah cukup tempoh minimumnya. Penolakan unsigned kekal betul pada rollover.
    if (reading < clearLevel && (now - alarmStartedMs >= ALARM_MIN_MS)) {
      alarmOn = false;
      buzzer(false);
      digitalWrite(RELAY_PIN, LOW);
      Serial.println(F("Clear"));
    }
  }

  // Satu baris satu saat, supaya anda boleh tengok nombor itu bergerak sambil menguji.
  static unsigned long lastLogMs = 0;
  if (now - lastLogMs >= 1000UL) {
    lastLogMs = now;
    Serial.print(F("raw "));
    Serial.print(reading);
    Serial.print(F("  baseline "));
    Serial.println(baseline);
  }

  delay(20);
}

Satu baris memang senang terlepas pandang: digitalWrite() dipanggil sebelum pinMode(OUTPUT). Menulis arasnya dahulu menetapkan bit port-register yang sama sedangkan pin itu masih input, jadi arasnya sudah pun betul pada saat pin tersebut bertukar menjadi output.

Baseline yang dicetak oleh sketch itu menentukan sama ada penggera ini boleh berbunyi langsung atau tidak. ADC berhenti pada 1023 count, jadi baseline melebihi lebih kurang 758 menolak titik trip 35% itu melepasi skala penuh dan tiada asap sebanyak mana pun boleh mencapainya β€” itu sensor yang masih burn-in, jadi biarkan ia hidup dan jangan ubah sketch. Sensitiviti pun ada di situ: bukan pada trimmer biru, yang cuma menggerakkan ambang DO, tetapi dalam RISE_FACTOR dan RISE_FLOOR. Naikkan nilainya kalau wap dapur membuatnya berbunyi, turunkan kalau mancis yang berasap pun tak membunyikannya.

Bacaan ppm mana yang benar-benar boleh dipercayai di sini?

Datasheet MQ-2 memberikan sensitiviti sebagai satu nisbah, bukan satu bacaan: Rs/R0 β€” dan R0 itu bukan bacaan dalam udara bersih. Datasheet mentakrifkannya sebagai rintangan sensor individu itu pada 1000 ppm hidrogen dalam udara bersih, jadi penyebut nisbah itu sendiri pun perlu diukur di dalam gas yang diketahui. Setiap lengkung yang diterbitkan β€” LPG, metana, propana, asap, alkohol, hidrogen, karbon monoksida β€” dilukis terhadap nisbah tersebut dengan kecerunan berbeza, jadi menukar satu bacaan menjadi ppm memerlukan tiga perkara serentak: R0 yang diukur pada unit anda sendiri, lengkung yang betul, dan pengetahuan tentang gas mana yang hadir. Satu count ADC mentah tidak memberikan satu pun daripada tiga itu.

Sebab itulah binaan ini berbunyi berdasarkan kenaikan. Skop pengesanan dalam datasheet β€” 200–5000 ppm untuk LPG dan propana, 5000–20000 ppm untuk metana β€” ialah julat yang disahut oleh elemen itu di dalam makmal, bukan apa yang dilaporkan oleh board yang tidak ditentukur. Sebagai amaran awal ia memang berbaloi, kerana ia perasan tong gas yang berdesis jauh lebih awal daripada sesiapa di bilik sebelah. Sebagai peranti keselamatan nyawa, ia bukan pengganti detektor yang diperakui.

Bagaimana cara uji ia dengan selamat?

MQ-2 menyahut dengan baik kepada mancis yang sudah dipadamkan atau sebatang colok yang dipegang setengah meter jauh: hidrokarbon tak terbakar di dalam asap itulah yang paling ditindakbalas oleh lapisan tadi, dan nombor mentahnya melonjak dalam sesaat dua. Itulah ujian yang selamat, dan itulah yang betul untuk demonstrasi di sekolah.

Jangan buka tong gas atau paip dapur untuk membuatkan ia “mengesan dengan betul” β€” itu membina risiko pencucuhan di dalam bilik semata-mata untuk menguji sebuah penggera, dan mancis yang menyala berdekatan LPG yang bocor ialah kemalangan yang penggera ini wujud untuk mencegahnya. Pemetik api butana yang dipegang tanpa dinyalakan dengan injapnya ditekan sesaat, di dalam bilik yang berpengudaraan, sudah cukup hampir dengan LPG untuk projek ini.

Perbandingan kartun menunjukkan tangan memegang mancis yang sudah dipadamkan dengan asap kelabunya menghala ke sensor MQ-2 berjaring perak bersama tanda betul hijau, di sebelah tong gas LPG merah yang bocor berhampiran mancis menyala dengan tanda larangan merah di atasnya
Uji dengan mancis yang sudah anda padamkan, atau dengan colok. Jangan sekali-kali buka tong gas untuk membuktikan penggera ini berfungsi, dan jangan sekali-kali bawa api dekat dengan sensor.

Di mana sensor ini patut dipasang dalam dapur di Malaysia?

Pengesan kebocoran gas Arduino hanya berguna di tempat gas itu benar-benar sampai, dan LPG dengan asap bergerak ke arah yang bertentangan. Propana dan butana di dalam tong gas lebih berat daripada udara, jadi kebocoran akan tenggelam dan bertakung pada aras lantai; asap pula panas dan naik ke atas. Satu MQ-2 tidak boleh meliputi kedua-duanya, jadi untuk tong gas di bawah kabinet dapur di Malaysia, pasangkannya rendah β€” lebih kurang 30 cm dari lantai dan dalam lingkungan satu meter dari regulator. Jauhkan ia daripada wap juga: MQ-2 menyahut kepada wap alkohol dan kepada kelembapan dalam kepulan periuk yang mendidih, jadi di atas dapur atau di sebelah periuk nasi ia akan menggera tanpa sebab, dan aerosol minyak masak pula perlahan-lahan menyaluti elemennya lalu menumpulkannya.

Bagaimana cara buat kipas ekzos berpusing apabila penggera berbunyi?

Modul relay 5 V menukar satu pin Arduino menjadi suis yang cukup besar untuk sebuah kipas. Kawalannya masuk melalui screw terminal tiga laluan bertanda IN, DCβˆ’, DC+ β€” tiada header, jadi hujung male jumper yang terdedah itu diapit terus ke dalam skrunya. DC+ dan DCβˆ’ diambil dari rel breadboard, IN pergi ke D7, dan coilnya menarik lebih kurang 71 mA β€” iaitu coil 0.36 W, 70 Ξ© pada 5 V.

Tetapkan jumper trigger L/H yang kecil itu kepada H sebelum anda upload. Ia menentukan sama ada coil bertenaga pada HIGH atau pada LOW di pin IN, dan sketch ini memandu pin tersebut ke HIGH untuk mengaktifkannya. Kalau dibiarkan pada L, kipas akan berjalan dari saat dihidupkan dan berhenti pula bila penggera berbunyi β€” songsang, dan itulah aduan “relay rosak” klasik yang sebenarnya cuma jumper dua pin.

Bahagian yang disuis itu ialah dry contact: COM dan NO ialah sepasang jari logam kosong tanpa laluan elektrik balik ke Arduino, jadi kipas 5 V 60 mm mengambil bekalan 5 V miliknya sendiri. Positif bekalan masuk ke COM, NO keluar ke wayar merah kipas, hitam kipas terus balik ke negatif bekalan β€” relay cuma memutuskan satu kaki dalam gelung itu. Kalau anda jalankan kipas dari rel Uno sebaliknya, pemanas, coil dan kipas akan berhimpit dalam had polyfuse 500 mA tadi, itu pun belum kira lonjakan arus permulaan kipas.

Plug putih dua pin pada kipas itu tidak perlu dipotong: satu hujung male jumper boleh ditolak masuk ke dalam setiap soketnya, jadi kipas kekal boleh diguna semula, dan dua hujung yang lagi satu itu diapit ke dalam skru bahagian beban. Kekalkan bahagian itu pada DC voltan rendah β€” contact relay itu memang dinilai untuk mains, tetapi pensuisan mains ialah bab dalam panduan keselamatan relay kami.

Kesilapan biasa yang kami lihat daripada pelanggan sebenar

Membeli sensor itu sahaja. Seorang pelanggan bertanya kepada kami dalam bahasa Inggeris, “can you show me the product that i need to buy from your shop to make this smart smoke detectore” β€” dan modul itu sendirian memang tidak boleh menjadi detektor tersebut: ia ada pin male di tempat yang jumper perlukan soket. Senarai komponen di atas itulah jawapan penuhnya.

Menghakimi sensor dalam minit pertamanya. Nombor semasa dihidupkan itu ialah pemanas yang sedang duduk diam, bukan gas. Sketch ini belajar baselinenya sekali sahaja, ketika dihidupkan, dan tidak sekali lagi selepas itu β€” jadi kalau anda pindahkan penggera ke bilik lain, atau sensor itu sudah tua, tekan reset dan biar ia belajar semula udara di tempatnya berada.

Mewayarkan buzzer seolah-olah ia peranti active-high. Ia menjerit dari boot dan tidak pernah berhenti, dan itu nampak macam modul rosak. HIGH itulah senyap β€” perangkap yang sama seperti buzzer dalam panduan lampu automatik PIR kami.

Menyangka tiada kod diperlukan, atau mancis itu mesti menyala. Seorang lagi pelanggan bertanya, “perlu coding lagi? dan saya perlukan mancis kah untuk buat prototype ini berkesan?” β€” ya, ada kod, dan sketch di atas itulah kodnya; dan mancis itu paling berkesan selepas anda tiup padam.

Soalan lazim

Berapa lama MQ-2 perlu warm-up?

Beberapa minit setiap kali dihidupkan, tambah burn-in pertama selama 24 jam atau lebih pada sensor baharu kalau anda mahu angka sensitiviti datasheet terpakai. Sketch ini menunggu tiga minit kemudian mengukur baselinenya sendiri, jadi ia kekal jujur dalam kedua-dua keadaan.

Boleh ke MQ-2 beri saya nombor ppm?

Tidak, melainkan sensor itu ditentukur di dalam kepekatan yang diketahui bagi gas yang diketahui β€” datasheet meminta 1000 ppm LPG atau iso-butana. Lengkungnya ialah nisbah terhadap R0, iaitu rintangan rujukan yang ditakrifkan pada 1000 ppm hidrogen, dan setiap gas ada kecerunan berbeza, jadi bacaan mentah itu ialah isyarat relatif.

Boleh ke saya guna MQ-2 sebagai detektor asap atau gas rumah saya?

Tidak boleh. Gunakannya sebagai binaan amaran awal atau bahan pembelajaran, dan kekalkan detektor LPG atau asap yang diperakui untuk keselamatan nyawa. Modul yang tidak ditentukur tiada ambang penggera yang diuji dan tiada pemantauan ke atas kerosakan dirinya sendiri.

Boleh ke MQ-2 berfungsi pada ESP32 atau Raspberry Pi Pico?

Pemanasnya tetap perlukan 5 V, dan AO boleh berayun hampir ke 5 V β€” melebihi had input analog 3.3 V pada kedua-dua board itu. Turunkan AO dengan dua resistor pembahagi voltan dahulu, atau kekalkan sensor itu pada Uno. Menambah paparan ialah langkah seterusnya yang biasa, seperti dalam panduan LCD1602 kami.

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 *