คู่มือการใช้เซนเซอร์ 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
- Log in to post comments
- 7 views