ในโครงการนี้เราจะสร้างวงจร Clapperโดยใช้แนวคิดของ ADC (Analog to Digital Conversion) ใน ARDUINO UNO เราจะใช้ MIC และ Uno เพื่อตรวจจับเสียงและเรียกการตอบสนอง นี้ สวิทช์ Clap Clap ON OFF พื้นเปิดหรือปิดอุปกรณ์โดยการใช้เสียงตบมือที่เป็นสวิทช์ ก่อนหน้านี้เราได้สร้างสวิตช์ Clap และสวิตช์ Clap ON Clap OFF โดยใช้ 555 Timer IC
เมื่อปรบมือจะมีสัญญาณสูงสุดที่ MIC ซึ่งสูงกว่าปกติมากสัญญาณนี้จะถูกป้อนไปยังเครื่องขยายเสียงแม้ว่าจะเป็น High Pass Filter ก็ตาม สัญญาณแรงดันไฟฟ้าที่ขยายนี้ถูกป้อนให้กับ ADC ซึ่งจะแปลงแรงดันไฟฟ้าสูงนี้เป็นตัวเลข ดังนั้นจะมีจุดสูงสุดในการอ่าน ADC ของ UNO ในการตรวจจับสูงสุดนี้เราจะสลับ LED บนกระดานในแต่ละปรบมือ โครงการนี้ได้รับการอธิบายโดยละเอียดด้านล่าง
MIC หรือไมโครโฟนเป็นตัวแปลงสัญญาณตรวจจับเสียงซึ่งโดยทั่วไปจะแปลงพลังงานเสียงเป็นพลังงานไฟฟ้าดังนั้นด้วยเซ็นเซอร์นี้เราจึงมีเสียงเป็นแรงดันไฟฟ้าที่เปลี่ยนไป โดยปกติเราจะบันทึกหรือรับรู้เสียงผ่านอุปกรณ์นี้ ตัวแปลงสัญญาณนี้ใช้ในโทรศัพท์มือถือและแล็ปท็อปทุกรุ่น MIC ทั่วไปดูเหมือนว่า
การกำหนดขั้วของ Condenser Mic:
MIC มีสองขั้วขั้วหนึ่งเป็นบวกและอีกขั้วหนึ่งเป็นลบ หาขั้วไมค์ได้โดยใช้มัลติมิเตอร์ ใช้หัววัดบวกของ Multi-Meter (วางมิเตอร์ในโหมด DIODE TESTING) และเชื่อมต่อกับขั้วต่อ MIC หนึ่งขั้วและหัววัดลบเข้ากับขั้วอื่นของ MIC หากคุณได้รับการอ่านบนหน้าจอแสดงว่าขั้วบวก (MIC) อยู่ที่ขั้วลบของ Multi-Meter หรือคุณสามารถหาขั้วได้โดยดูที่ขั้วลบมีสายบัดกรีสองหรือสามเส้นเชื่อมต่อกับกล่องโลหะของไมค์ การเชื่อมต่อนี้จากขั้วลบไปยังเคสโลหะยังสามารถทดสอบได้โดยใช้เครื่องทดสอบความต่อเนื่องเพื่อค้นหาขั้วลบ
ส่วนประกอบที่ต้องการ:
ฮาร์ดแวร์:
ARDUINO UNO, แหล่งจ่ายไฟ (5v), ไมค์คอนเดนเซอร์ (อธิบายไว้ด้านบน)
2N3904 ทรานซิสเตอร์ NPN,
ตัวเก็บประจุ 100nF (2 ชิ้น) ตัวเก็บประจุ 100uF หนึ่งตัว
ตัวต้านทาน 1K Ω, ตัวต้านทาน1MΩ, ตัวต้านทาน15KΩ (2 ชิ้น), LED หนึ่งดวง,
และ Breadboard & Connecting Wire
ซอฟต์แวร์: Arduino IDE - Arduino ทุกคืน
แผนภาพวงจรและคำอธิบายการทำงาน:
วงจรของวงจรลูกตุ้มจะแสดงในด้านล่างภาพ:
เราได้แบ่งการทำงานออกเป็นสี่ส่วนนั่นคือ: Filtration, Amplification, Analog-digital conversion และการเขียนโปรแกรมเพื่อสลับ LED
เมื่อใดก็ตามที่มีเสียง MIC จะหยิบมันขึ้นมาและแปลงเป็นแรงดันไฟฟ้าเป็นเส้นตรงตามขนาดของเสียง ดังนั้นสำหรับเสียงที่สูงขึ้นเราจึงมีค่าที่สูงขึ้นและสำหรับเสียงที่ต่ำเราก็มีค่าต่ำ ค่านี้จะถูกป้อนไปยัง High Pass Filter สำหรับการกรองก่อน จากนั้นค่าที่กรองแล้วนี้จะถูกป้อนให้กับทรานซิสเตอร์สำหรับการขยายและทรานซิสเตอร์จะให้เอาต์พุตที่ขยายที่ตัวเก็บรวบรวม สัญญาณสะสมนี้จะถูกป้อนเข้าช่อง ADC0 ของ UNO สำหรับอนาล็อกเพื่อการแปลงดิจิตอลและสุดท้าย Arduino ได้รับการตั้งโปรแกรมให้สลับ LEDโดยเชื่อมต่อที่ PIN 7 ของ PORTD ทุกครั้งที่ช่อง ADC A0 เกินระดับที่กำหนด
1. การกรอง:
แรกของทั้งหมดที่เราจะพูดคุยสั้น ๆ เกี่ยวกับRC สูงผ่านตัวกรองที่ได้รับใช้ในการกรองเสียงง่ายต่อการออกแบบและประกอบด้วยตัวต้านทานตัวเดียวและตัวเก็บประจุตัวเดียว สำหรับวงจรนี้เราไม่ต้องการรายละเอียดมากนักดังนั้นเราจะทำให้มันง่าย ตัวกรองสัญญาณความถี่สูงช่วยให้สัญญาณของความถี่สูงส่งผ่านจากอินพุตไปยังเอาต์พุตกล่าวอีกนัยหนึ่งคือสัญญาณอินพุตจะปรากฏที่เอาต์พุตหากความถี่ของสัญญาณสูงกว่าความถี่ที่ตัวกรองกำหนด สำหรับตอนนี้เราไม่จำเป็นต้องกังวลเกี่ยวกับค่าเหล่านี้เพราะที่นี่เราไม่ได้ออกแบบเครื่องขยายเสียง ตัวกรองความถี่สูงจะแสดงในวงจร
หลังจากตัวกรองนี้สัญญาณแรงดันไฟฟ้าจะถูกป้อนไปยังทรานซิสเตอร์เพื่อขยายสัญญาณ
2. การขยาย:
แรงดันไฟฟ้าของ MIC อยู่ในระดับต่ำมากและไม่สามารถจะเลี้ยง UNO สำหรับ ADC (อนาล็อกเพื่อการแปลงเป็นดิจิตอล) ดังนั้นสำหรับวันนี้เราออกแบบที่เรียบง่ายโดยใช้เครื่องขยายเสียงทรานซิสเตอร์ที่นี่เราได้ออกแบบแอมพลิฟายเออร์ทรานซิสเตอร์ตัวเดียวสำหรับขยายแรงดันไฟฟ้าของ MIC สัญญาณแรงดันไฟฟ้าที่ขยายนี้จะถูกป้อนเพิ่มเติมไปยังช่อง ADC0 ของ Arduino
3. การแปลงอนาล็อกเป็นดิจิตอล:
ARDUINO มี6 ช่อง หนึ่งหรือทั้งหมดสามารถใช้เป็นอินพุตสำหรับแรงดันไฟฟ้าอะนาล็อก UNO ADC มีความละเอียด 10 บิต (ดังนั้นค่าจำนวนเต็มตั้งแต่ (0- (2 ^ 10) 1023)) ซึ่งหมายความว่าจะจับคู่แรงดันไฟฟ้าอินพุตระหว่าง 0 ถึง 5 โวลต์เป็นค่าจำนวนเต็มระหว่าง 0 ถึง 1023 ดังนั้นสำหรับทุกๆ (5/1024 = 4.9mV) ต่อหน่วย
ตอนนี้สำหรับ UNO ในการแปลงสัญญาณอนาล็อกเป็นสัญญาณดิจิตอลเราจำเป็นต้องใช้ ADC Channel ของ ARDUINO UNO ด้วยความช่วยเหลือของฟังก์ชันด้านล่าง:
1. analogRead (พิน); 2. analogReference ();
ช่อง UNO ADC มีค่าอ้างอิงที่เริ่มต้นของ 5V ซึ่งหมายความว่าเราสามารถให้แรงดันไฟฟ้าอินพุตสูงสุด 5V สำหรับการแปลง ADC ที่ช่องอินพุตใดก็ได้ เนื่องจากเซ็นเซอร์บางตัวให้แรงดันไฟฟ้าตั้งแต่ 0-2.5V ดังนั้นด้วยการอ้างอิง 5V เราจึงมีความแม่นยำน้อยลงดังนั้นเราจึงมีคำสั่งที่ช่วยให้เราสามารถเปลี่ยนค่าอ้างอิงนี้ได้ ดังนั้นสำหรับการเปลี่ยนค่าอ้างอิงเรามี“ analogReference ();”
ในวงจรของเราเราได้ปล่อยแรงดันอ้างอิงนี้ไว้เป็นค่าเริ่มต้นดังนั้นเราจึงสามารถอ่านค่าจากช่อง ADC 0 โดยการเรียกใช้ฟังก์ชัน "analogRead (พิน) โดยตรง" ในที่นี้ "พิน" หมายถึงพินที่เราเชื่อมต่อสัญญาณแอนะล็อก กรณีนี้จะเป็น“ A0” ค่าจาก ADC สามารถนำมาเป็นจำนวนเต็มเป็น "int sensorValue = analogRead (A0); ” โดยคำสั่งนี้ค่าจาก ADC จะถูกเก็บไว้ใน“ sensorValue” จำนวนเต็ม ตอนนี้เรามีค่าทรานซิสเตอร์ในรูปแบบดิจิทัลในหน่วยความจำของ UNO
4. ตั้งโปรแกรม Arduino เพื่อสลับ LED ในแต่ละ Clap:
ภายใต้อินสแตนซ์ปกติ MIC จะให้สัญญาณปกติดังนั้นเราจึงมีค่าดิจิทัลตามปกติใน UNO แต่เมื่อตบมือมีจุดสูงสุดที่ MIC จัดเตรียมไว้ด้วยเหตุนี้เราจึงมีค่าดิจิทัลสูงสุดใน UNO เราสามารถตั้งโปรแกรม UNO เพื่อสลับ ไฟ LED เปิดและปิดทุกครั้งที่มีจุดสูงสุด ดังนั้นในการปรบมือครั้งแรกไฟ LED จะเปิดและติดอยู่ ในการปรบมือครั้งที่สองไฟ LED จะดับลงและจะดับจนกว่าจะปรบมือถัดไป ด้วยสิ่งนี้เราจึงมีวงจรเสียงปรบมือ ตรวจสอบรหัสโปรแกรมด้านล่าง