สารบัญ:

Arduino - Piezo Three Button Piano: 4 ขั้นตอน
Arduino - Piezo Three Button Piano: 4 ขั้นตอน

วีดีโอ: Arduino - Piezo Three Button Piano: 4 ขั้นตอน

วีดีโอ: Arduino - Piezo Three Button Piano: 4 ขั้นตอน
วีดีโอ: How to make an Arduino based Piano – Piezo Buzzer 2024, พฤศจิกายน
Anonim
Image
Image

เปียโนสามปุ่มเป็นโครงการสำหรับผู้เริ่มต้นที่มีประสบการณ์ในการใช้ Arduino

ฉันถูกกวาดล้างโดยไม่ได้ตั้งใจในการพยายามสร้างสิ่งนี้ในขณะที่เล่นกับ Piezo Buzzer เป็นครั้งแรก มันดังมาก! ในการพยายามหาวิธีต่างๆ ในการทำให้เสียงกริ่งเงียบลงและลองใช้ความถี่ต่างๆ โดยใช้ฟังก์ชัน tone() และ noTone() ฉันรู้ว่ามันอาจจะสนุกที่จะลองผสม Piezo Buzzer กับส่วนประกอบโปรดอื่นๆ ของ Arduino ชุด: ปุ่มและโพเทนชิออมิเตอร์

วัสดุที่จำเป็น ได้แก่:

  • 1 Arduino
  • 1 เขียงหั่นขนม
  • สาย USB 1 เส้น
  • สายจัมเปอร์ (คละสี)
  • 1 ตัวต้านทาน 330 กิโลโอห์ม
  • 1 Piezo Buzzer
  • 3 ปุ่มกด
  • 1 โพเทนชิออมิเตอร์

ขั้นตอนที่ 1: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

ในการเริ่มต้น ให้ตั้งค่า piezo บนเขียงหั่นขนมของ Arduino ด้านหนึ่งของมัน (ด้านขาที่สั้นกว่า) ต้องวิ่งไปที่พื้น อีกด้านหนึ่ง (ด้านขายาว) ต้องเชื่อมต่อกับพินอินพุตดิจิตอล ฉันเลือกที่จะเชื่อมต่อกับ 8

ขั้นตอนที่ 2: กดปุ่ม

ปุ่มกด
ปุ่มกด
ปุ่มกด
ปุ่มกด

ต่อไปก็ถึงเวลาตั้งค่าปุ่มกด เช่นเดียวกับ Piezo ปุ่มกดจำเป็นต้องเชื่อมต่อกับกราวด์และพินอินพุตดิจิตอล

ขั้นตอนที่ 3: โพเทนชิออมิเตอร์

โพเทนชิออมิเตอร์
โพเทนชิออมิเตอร์
โพเทนชิออมิเตอร์
โพเทนชิออมิเตอร์

ขั้นตอนสุดท้ายในการสร้างทางกายภาพคือโพเทนชิออมิเตอร์ โพเทนชิโอมิเตอร์มีหลายรูปแบบ เราจะใช้โพเทนชิออมิเตอร์เป็นตัวแบ่งแรงดันไฟ ดังนั้นขาทั้งสามของมันจะต้องเชื่อมต่อกัน

ขาขวา: แถบลบ (พื้น)

ขากลาง: เข็มอนาล็อก 0

ขาซ้าย: แถบบวก

ขั้นตอนที่ 4: รหัส

ขณะเขียนโค้ดสำหรับโปรเจ็กต์นี้ ฉันได้อ้างอิงข้อมูลเกี่ยวกับฟังก์ชันบางประเภท:

โทน()

noTone() (ฉันไม่ได้ใช้อันนี้ ฉันตั้งค่าความถี่เป็น "0" แทน)

แผนที่()

ข้อมูลอ้างอิงที่ยอดเยี่ยมสำหรับผู้ใช้ Piezo Buzzers เป็นครั้งแรกมีอยู่ที่นี่ แม้ว่าแนวคิดในการเปลี่ยนเสียงของ Piezo Buzzer จะดูเรียบง่าย แต่ในตอนแรกอาจดูล้นหลามไปหน่อย!

ฟังก์ชัน tone() สามารถแบ่งออกเป็นสามส่วน:

  1. พิน (พินที่เชื่อมต่อออดเพียโซ)
  2. ความถี่ (ความถี่ของเสียงเป็นเฮิรตซ์)
  3. Duration (ระยะเวลาของเสียงที่ระบุเป็นมิลลิวินาที)

โดยพื้นฐานแล้วจะมีลักษณะดังนี้: เสียง (พิน, ความถี่, ระยะเวลา) องค์ประกอบที่สาม (ระยะเวลา) เป็นทางเลือก ในขณะที่อีกสององค์ประกอบจำเป็นสำหรับการทำงานของออด ส่วนประกอบ "ความถี่" ของฟังก์ชันโทนเสียงเป็นสิ่งที่สามารถคิดได้ว่าเป็น "เสียง" ที่กริ่งสร้างจากเสียงกริ่ง

คุณจะสังเกตเห็นว่าโค้ดนี้มีโค้ดอีกสองบิต มีคำสั่ง if/else บางอย่างที่ตั้งค่าเพื่อบอก Arduino ว่าต้องทำอย่างไรหากกดปุ่มต่างๆ กัน รวมถึงตั้งค่าด้วย "frequency = 0" ในสถานการณ์ที่ไม่มีการกดปุ่มใดๆ ภายในคำสั่ง if/else ฟังก์ชัน map() จะใช้เพื่อจับคู่มาตราส่วนของโพเทนชิออมิเตอร์กับชุดความถี่ สิ่งเหล่านี้สามารถเปลี่ยนแปลงได้! เล่นกับค่าความถี่ต่างๆ เพื่อดูว่าคุณจะได้เสียงใดจากเพียโซ

ตรวจสอบรหัสที่ฉันใช้สร้างเปียโนสามปุ่มที่นี่หรือตรวจสอบด้านล่าง

int piezoPin = 8; // ตั้งค่าพินที่เชื่อมต่อกับ Piezo

int เซ็นเซอร์พิน = 0; // ตั้งค่าพินที่เชื่อมต่อกับเซ็นเซอร์ (โพเทนชิออมิเตอร์) int sensorValue = 0;

ปุ่ม int1 = 5; // ตั้งค่าพินอินพุตที่เชื่อมต่อกับปุ่มต่างๆ

ปุ่ม int2 = 4; ปุ่ม int3 = 3;

ความถี่ int = 0;

const int delayTime = 500; //ตั้งค่าคงที่สำหรับตัวแปรเวลาหน่วงในฟังก์ชัน tone()

การตั้งค่าเป็นโมฆะ () {

โหมดพิน (button1, INPUT_PULLUP); โหมดพิน (button2, INPUT_PULLUP); pinMode (ปุ่ม 3, INPUT_PULLUP); }

วงเป็นโมฆะ () {

sensorValue = analogRead (เซ็นเซอร์พิน); // อ่านเซ็นเซอร์ //จับคู่ค่าต่างๆ ของโพเทนชิออมิเตอร์กับชุดความถี่สำหรับปุ่มทั้งสามแต่ละปุ่ม ถ้า (digitalRead (button1) == LOW) { ความถี่ = แผนที่ (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) { frequency = map (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) { frequency = map (sensorValue, 0, 1023, 600, 699); } อื่น ๆ { ความถี่ = 0; } เสียง (piezoPin, ความถี่, delayTime); //ตั้งค่าฟังก์ชัน tone() ด้วยตัวแปร }

แนะนำ: