คุณสามารถสร้างเสียงโดยใช้ Arduino ได้หลายวิธี วิธีที่ง่ายที่สุดคือการเชื่อมต่อตัวปล่อย piezo (หรือตัวส่งเสียง piezo) เข้ากับบอร์ด แต่เช่นเคยมีความแตกต่างบางอย่างที่นี่ โดยทั่วไป ลองคิดดู
จำเป็น
- - คอมพิวเตอร์;
- - Arduino;
- - เพียโซอีซีแอล (piezo buzzer)
คำแนะนำ
ขั้นตอนที่ 1
piezo emitter หรือ piezoelectric emitter หรือ piezo buzzer เป็นอุปกรณ์สร้างเสียงไฟฟ้าอะคูสติกที่ใช้เอฟเฟกต์เพียโซอิเล็กทริกแบบผกผัน เพื่ออธิบายอย่างง่าย ๆ - ภายใต้การกระทำของสนามไฟฟ้าจะมีการเคลื่อนไหวทางกลของเมมเบรนซึ่งทำให้เกิดคลื่นเสียงที่เราได้ยิน โดยทั่วไปแล้ว ตัวปล่อยเสียงดังกล่าวจะถูกติดตั้งในอุปกรณ์อิเล็กทรอนิกส์ในครัวเรือน เช่น เสียงเตือน ในคอมพิวเตอร์ส่วนบุคคลแบบตั้งโต๊ะ โทรศัพท์ ของเล่น ลำโพง และอื่นๆ อีกมากมาย
เพียโซอีซีแอลมี 2 ลีด และขั้วมีความสำคัญ ดังนั้นเราจึงเชื่อมต่อพินสีดำกับกราวด์ (GND) และพินสีแดงกับพินดิจิทัลที่มีฟังก์ชัน PWM (PWM) ในตัวอย่างนี้ ขั้วบวกของตัวปล่อยจะเชื่อมต่อกับขั้วต่อ "D3"
ขั้นตอนที่ 2
piezo buzzer ใช้งานได้หลากหลายรูปแบบ วิธีที่ง่ายที่สุดคือการใช้ฟังก์ชัน analogWrite ตัวอย่างของภาพร่างแสดงไว้ในภาพประกอบ ภาพร่างนี้จะเปิดและปิดเสียงสลับกันที่ความถี่ 1 ครั้งต่อวินาที
เราตั้งค่าหมายเลขพินกำหนดเป็นเอาต์พุต ฟังก์ชัน analogWrite () ใช้หมายเลขพินและระดับเป็นอาร์กิวเมนต์ ซึ่งอาจมีค่าตั้งแต่ 0 ถึง 255 ค่านี้จะเปลี่ยนระดับเสียงของทวีตเตอร์แบบเพียโซภายในช่วงขนาดเล็ก โดยการส่งค่า "0" ไปที่พอร์ต ให้ปิดเสียงเพียโซ
ขออภัย คุณไม่สามารถเปลี่ยนคีย์ของเสียงโดยใช้ analogWrite () เพียโซอิมิตเตอร์จะส่งเสียงที่ความถี่ประมาณ 980 เฮิรตซ์เสมอ ซึ่งสอดคล้องกับความถี่ของพินที่มอดูเลตความกว้างพัลส์ (PWM) บนบอร์ด Arduino UNO และอื่นๆ
ขั้นตอนที่ 3
ตอนนี้ เรามาแยกเสียงออกจากตัวปล่อยเพียโซโดยใช้ฟังก์ชันโทนเสียง () ในตัว ตัวอย่างของภาพร่างอย่างง่ายแสดงในภาพประกอบ
ฟังก์ชันโทนใช้หมายเลขพินและความถี่เสียงเป็นอาร์กิวเมนต์ ขีดจำกัดความถี่ล่างคือ 31 Hz ขีดจำกัดบนถูกจำกัดโดยพารามิเตอร์ของตัวปล่อยเพียโซและการได้ยินของมนุษย์ หากต้องการปิดเสียง ให้ส่งคำสั่ง noTone () ไปยังพอร์ต
โปรดทราบว่าหากตัวปล่อย Piezo หลายตัวเชื่อมต่อกับ Arduino จะมีเพียงตัวเดียวเท่านั้นที่ทำงานในแต่ละครั้ง หากต้องการเปิดอีซีแอลบนพินอื่น คุณต้องขัดจังหวะเสียงของพินปัจจุบันด้วยการเรียกใช้ฟังก์ชัน noTone ()
จุดสำคัญ: ฟังก์ชันโทน () ซ้อนทับบนสัญญาณ PWM บนพิน "3" และ "11" ของ Arduino โปรดคำนึงถึงสิ่งนี้เมื่อออกแบบอุปกรณ์ของคุณเพราะ ฟังก์ชั่นโทน () ที่เรียกว่าตัวอย่างเช่นบนพิน "5" สามารถรบกวนการทำงานของพิน "3" และ "11"