โปรเจกต์: E30 Sound Sensor Module with Arduino | Sheekar Banerjee
โปรเจกต์นี้เกี่ยวกับการเชื่อมต่อโมดูล E30 Sound Sensor เข้ากับ Arduino โมดูลนี้ยังสามารถเชื่อมต่อกับไมโครคอนโทรลเลอร์และโปรเซสเซอร์อื่น ๆ ได้เช่นกัน ผมพยายามสาธิตระบบและกลไกของ DRS Ultra-edge ผ่านการเชื่อมต่อโมดูลนี้
แผนภาพวงจร:

โค้ด:
const int OUT_PIN = 8; //ขาเอาต์พุตของเซ็นเซอร์เชื่อมต่อกับ Digital 8
const int SAMPLE_TIME = 10;
unsigned long millisCurrent;
unsigned long millisLast = 0;
unsigned long millisElapsed = 0;
int sampleBufferValue = 0;
void setup() {
Serial.begin(9600); //ระบุว่าเซ็นเซอร์ส่งข้อมูล 9600 บิตต่อวินาที
}
void loop() {
millisCurrent = millis();
millisElapsed = millisCurrent - millisLast;
if (digitalRead(OUT_PIN) == LOW) {
sampleBufferValue++;
}
if (millisElapsed > SAMPLE_TIME) {
Serial.println(sampleBufferValue);
sampleBufferValue = 0;
millisLast = millisCurrent;
}
}
การเชื่อมต่อโมดูล E30 Sound Sensor ในภาษาแม่ของผม (เบงกาลี)
รายละเอียดทางเทคนิคเพิ่มเติม
การวิเคราะห์สัญญาณเสียงที่แม่นยำ
โปรเจกต์นี้สำรวจการประยุกต์ใช้ E30 Sound Sensor ในภาคอุตสาหกรรม โดยให้การตรวจสอบเสียงรบกวนความเร็วสูงและการทริกเกอร์เหตุการณ์
- Dynamic Thresholding Engine: Arduino จะสุ่มเก็บความเข้มของสัญญาณอนาล็อกจาก E30 Sound Module แทนที่จะใช้ค่าคงที่ เฟิร์มแวร์จะคำนวณ "ค่าเฉลี่ยเคลื่อนที่" (Rolling Average) เพื่อปรับความไวของการทริกเกอร์แบบไดนามิกตามระดับเสียงรบกวนรอบข้างของห้อง
- Latency-Critical Triggering: ใช้ขาอินเทอร์รัปต์ดิจิทัลที่เชื่อมต่อกับเอาต์พุต "D0" ของ E30 เพื่อตอบสนองทันทีต่อเสียงดังกระทันหัน (เช่น เสียงปรบมือหรือเสียงเคาะ) โดยหลีกเลี่ยงการวนรอบการอ่านอนาล็อกที่ช้ากว่า
การแสดงผล
- Acoustic Level Bar Graph: (เวอร์ชันขั้นสูง) แสดงความหนาแน่นของเสียงรบกวนแบบเรียลไทม์ในรูปแบบกราฟแท่งแนวตั้งบน I2C OLED โดยแมปค่าอนาล็อก (0-1023) ไปยังแดชบอร์ดภาพสูง 64 พิกเซล