คู่มือการใช้เซนเซอร์ KY-038 Microphone Sound Sensor Module ด้วยบอร์ด Runlinc

KY-038 Microphone Sound Sensor Module

     โมดูลเซนเซอร์ตรวจจับ “เสียง” ที่ใช้ไมโครโฟนในการรับเสียง แล้วแปลงเป็นสัญญาณไฟฟ้าเพื่อให้ไมโครคอนโทรลเลอร์สามารถนำไปประมวลผลต่อได้ โดยจะอธิบายรายละเอียดดังต่อไปนี้
     3.1 หน้าที่
          KY-038 ใช้ไมโครโฟนขนาดเล็กในการตรวจจับคลื่นเสียงในอากาศ โดยโมดูลนี้มีความพิเศษตรงที่มี Output 2 แบบ ประกอบด้วย 1) Digital Output (D0) ให้ค่า 0 หรือ 1 เมื่อเสียงดังถึงระดับที่ตั้งไว้ (ปรับความไวได้ที่ตัวต้านทานปรับค่าได้บนโมดูล) และ 2 Analog Output (A0) ให้ค่าแรงดันไฟฟ้าที่แปรผันตามความดังของเสียงในขณะนั้น และสามารถนำไปประยุกต์ใช้ตรวจจับเสียงผิดปกติ เช่น เสียงกระจกแตก เสียงดังตอนกลางคืน เป็นต้น 
     3.2 การเชื่อมต่อ (Wiring)
            การเชื่อมต่อวงจรบอร์ด Runlinc กับเซนเซอร์ KY-038 มีรายละเอียดดังต่อไปนี้

การตั้งค่าหน้า Control ของบอร์ด Runlinc บนเว็บบราวเซอร์
- บอร์ด Runlinc -> KY-038 
   VIN -> VCC
   GND -> GND
   D32 -> A0
- ตั้งค่าในหน้า Runlinc
   Configuration: ANALOG_IN 
   NAME: SoundSensor
 

3.3 โค้ดตัวอย่างการใช้งาน 
       ตัวอย่างการเขียนโค้ดการใช้เซนเซอร์ KY-038 ในการตรวจจับเสียงด้วยบอร์ด Runlinc ในช่อง CSS HTML และ JavaScript Loop มีรายละเอียดดังต่อไปนี้
   CSS

body {background-color: #f0f3f5; }
#soundVal { 
  color: #34495e; margin: 10px;
  font-size: 40px; font-weight: bold;
}
#soundBar{
  width: 0%; height: 100%; background: #2ecc71; transition: 0.1s;
}
#box {
  text-align: center; font-family: sans-serif; padding: 20px;
}
#boxBar{
  width: 300px; height: 30px; background: #ddd; 
  margin: 20px auto; 
  border-radius: 15px; overflow: hidden;
} <div id="box">
    <h2>Sound Level Meter</h2>
    <div id="boxBar">
        <div id="soundBar" ></div>
    </div>
    <div id="soundVal">0</div>
    <p id="alertMsg">Listening...</p>
</div>

HTML

<div id="box">
    <h2>Sound Level Meter</h2>
    <div id="boxBar">
        <div id="soundBar" ></div>
    </div>
    <div id="soundVal">0</div>
    <p id="alertMsg">Listening...</p>
</div>

JavaScript Loop
// 1. อ่านค่า Analog (0-255)
let soundRaw = analogIn( SoundSensor );

// 2. คำนวณเปอร์เซ็นต์ความดัง (เทียบจากค่าสูงสุด 255)
let soundPercent = (soundRaw / 255) * 100;

// 3. อัปเดตแถบวัด (Sound Bar) และตัวเลขบนหน้าจอ
document.getElementById("soundBar").style.width = soundPercent + "%";
document.getElementById("soundVal").innerHTML = soundRaw;

// 4. เงื่อนไขแจ้งเตือนเมื่อมีเสียงดังเกินกำหนด
if (soundRaw > 150) {
    document.getElementById("soundBar").style.background = "#e74c3c"; // เปลี่ยนเป็นสีแดง
    document.getElementById("alertMsg").innerHTML = "เสียงดังเกินไป!";
} else {
    document.getElementById("soundBar").style.background = "#2ecc71"; // สีเขียวปกติ
    document.getElementById("alertMsg").innerHTML = "สถานะ: ปกติ";
}
 

3.4 ผลลัพธ์การใช้งาน
       ผลลัพธ์การใช้งานบอร์ด Runlinc ในการตรวจจับเสียงด้วยเซนเซอร์ KY-038 แสดงดังภาพที่ 1 โดยจะอธิบายรายละเอียดการทำงานดังต่อไปนี้
     1) บอร์ด Runlinc จะอ่านค่า Analog จากพอร์ต D32 
     2) ถ้าค่า Analog ที่ได้ มากกว่า 150 จะแสดงข้อความ “เสียงดังเกินไป” และถ้าน้อยกว่าหรือเท่ากับ 150 จะแสดงข้อความ “สถานะ: ปกติ”
     3) ผลลัพธ์ทั้งหมดจะแสดงบนหน้า HTML

ภาพที่ 1 ผลลัพธ์การใช้งานบอร์ด Runlinc ในการตรวจจับเสียงด้วยเซนเซอร์ KY-038

 

Rating

No votes yet