สารบัญ:

Arduino Noise Machine: 4 ขั้นตอน
Arduino Noise Machine: 4 ขั้นตอน

วีดีโอ: Arduino Noise Machine: 4 ขั้นตอน

วีดีโอ: Arduino Noise Machine: 4 ขั้นตอน
วีดีโอ: EP 27. Arduino ฉบับไวจนไฟลุก !! - สาระเดฟ ใน 3 นาที 2024, กรกฎาคม
Anonim
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine

ฉันพบลําโพงตัวจิ๋วขณะรื้อเครื่องพีซีเครื่องเก่า สำหรับการรีไซเคิลและคิดว่าฉันจะเห็นว่ามันฟังดูเหมือนการใช้ฟังก์ชัน Arduino Tone() ฉันเริ่มด้วยโพเทนชิออมิเตอร์ 10Ω หนึ่งตัวเพื่อควบคุมระดับเสียงและเริ่มส่งเสียง ฟังก์ชัน Tone() ใช้รูปแบบพัลส์อย่างง่าย เปิดและปิดเสียงที่ความถี่ต่างๆ ในรูปแบบคลื่นสี่เหลี่ยม ฉันมีโพเทนชิโอมิเตอร์อีกสองตัววางอยู่รอบ ๆ ดังนั้นฉันจึงเพิ่มพวกมันและใช้เพื่อควบคุมระยะเวลาของเสียง หนึ่งเพื่อควบคุมความยาวของโทนและอีกอันสำหรับควบคุมช่องว่างระหว่างโทนเสียง โดยพื้นฐานแล้วจะใช้รูปแบบคลื่นสี่เหลี่ยมอื่น แต่มีความถี่ต่ำกว่ามาก คุณสามารถทำให้เกิดสัญญาณรบกวนที่หลากหลายด้วยวงจรนี้ มันใช้งานได้ดีกับเสียง piezo เช่นกัน แต่ไม่มีการตอบสนองเสียงเบสของลำโพง

ขั้นตอนที่ 1: อะไหล่ที่คุณต้องการ

Arduino Uno

เขียงหั่นขนมและสายจัมเปอร์

1 ลำโพงขนาดเล็กหรือ Piezo buzzer

1 สวิตช์ปุ่มกด

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

ตัวต้านทาน 1 22Ω

ตัวต้านทาน 1 10kΩ

ขั้นตอนที่ 2: สร้างวงจร

สร้างวงจร
สร้างวงจร

เชื่อมต่อเขียงหั่นขนมกับขา Arduino 5V และ GND วางสวิตช์ปุ่มกดที่ด้านขวาสุดหรือซ้ายสุดของเขียงหั่นขนมและเชื่อมต่อกับ 5V และกราวด์โดยใช้ตัวต้านทาน10kΩ ต่อสายไฟจากวงจรสวิตช์ไปที่ขา 2 บน Arduino ของคุณ

อีกด้านหนึ่งของเขียงหั่นขนมตั้งค่าวงจรลำโพง / เพียโซเป็น 5v และกราวด์โดยใช้ตัวต้านทาน220Ω ตัวต้านทานนี้ควบคุมกระแสซึ่งควบคุมระดับเสียง คุณสามารถลองใช้ตัวต้านทานต่างๆ ได้ที่นี่สำหรับระดับเสียงที่สูงขึ้นหรือต่ำลง

จัดเรียงโพเทนชิโอมิเตอร์ของคุณไว้ตรงกลางของเขียงหั่นขนมเพื่อให้มีพื้นที่เพียงพอสำหรับเล่นซอกับลูกบิด แต่ละหม้อจะต้องเชื่อมต่อกับ 5V และกราวด์และพินกลางบนแต่ละอันที่เชื่อมต่อกับพินอะนาล็อก A0, A1 และ A2

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

โพเทนชิออมิเตอร์หรือหม้อเป็นตัวต้านทานปรับค่าได้ ซึ่งเมื่อเชื่อมต่อกับ Arduino จะคืนค่าระหว่าง 0 ถึง 1023 เราจะใช้ฟังก์ชัน map() เพื่อเปลี่ยนค่าเหล่านี้เพื่อให้เหมาะกับความต้องการของเราเอง ฟังก์ชัน map() รับห้าอาร์กิวเมนต์ และในกรณีของเรา เราจำเป็นต้องแมปช่วงใหม่เป็นระหว่าง 220 ถึง 2200 เพื่อสร้างเสียงที่สมเหตุสมผล

ฟังก์ชันมีลักษณะดังนี้:

แผนที่(หม้อ, 0, 1023, 220, 2200);

คุณสามารถลองเล่นกับสองค่าสุดท้ายสำหรับโทนเสียงความถี่สูงและต่ำได้ เพียงแต่ระวังอย่าให้สุนัขของคุณอารมณ์เสีย

Noise_Machine.ino

/* เครื่องเสียงที่ใช้โพเทนชิโอมิเตอร์สามตัวเชื่อมต่อกับอินพุตแบบอะนาล็อก
และเพียโซหรือลำโพงขนาดเล็ก ปุ่มกดจะเปิดเสียงโพเทนชิโอมิเตอร์
ควบคุมระดับเสียงโดยใช้ฟังก์ชัน Arduino tone () และดีเลย์สองครั้ง
ค่าที่ควบคุมความยาวของแต่ละโทนและความยาวระหว่าง
แต่ละโทน โพเทนชิโอมิเตอร์ให้ค่าแอนะล็อกซึ่งมีการเปลี่ยนแปลง
ใช้ฟังก์ชัน map() เป็นช่วงที่ใหญ่ขึ้นหรือเล็กลงเพื่อให้เหมาะกับคุณ
รสนิยมทางดนตรี
รหัสนี้เป็นสาธารณสมบัติ
Matt Thomas 2019-04-05
*/
ปุ่มบังคับพิน = 2; // หมุดปุ่มกด 2
ลำโพงคงตัว = 9; // ลำโพงหรือ piezo ในพิน 9
int buttonState = 0; // ตัวแปรสำหรับปุ่ม
int potZero; // และโพเทนชิโอมิเตอร์
int potOne;
int potTwo;
voidsetup() {
โหมดพิน (9, เอาต์พุต); // พินเอาต์พุตของลำโพง / piezo
}
โมฆะลูป () {
buttonState = digitalRead (ปุ่มพิน); // อ่านสถานะปุ่มกด
potZero = analogRead (A0); //ตัวแปรสำหรับอ่านค่าอนาล็อก
potOne = analogRead (A1);
potTwo = analogRead (A2);
int htz = แผนที่ (potZero, 0, 1023, 0, 8800); // แมปการอ่านแบบแอนะล็อกลงใน
int สูง = แผนที่ (potOne, 0, 1023, 0, 100); // ช่วงตัวเลขใหม่และสร้าง
int ต่ำ = แผนที่ (potTwo, 0, 1023, 0, 100); // ตัวแปรใหม่
if (buttonState == HIGH) { // หากกดปุ่ม…
เสียง(ลำโพง, htz); //เปิดเสียง
ล่าช้า (สูง); // ความยาวของโทน
noTone(ลำโพง); // ปิดเสียง
ล่าช้า (ต่ำ); // เวลาจนถึงเสียงถัดไป
} อื่น {
noTone(ลำโพง); // ไม่มีเสียงหากปล่อยปุ่ม
}
}

ดู rawNoise_Machine.ino โฮสต์ด้วย ❤ โดย GitHub

ขั้นตอนที่ 4: จุดจบ

นั่นคือทั้งหมดที่มีให้ เล่นกับค่าต่างๆ ในโค้ด เพิ่ม pot /buttons และดูว่าคุณสามารถควบคุมอะไรได้อีก ผิดพลาดประการใดขออภัยมา ณ ที่นี้ด้วย หวังว่าจะชอบเพลงกันนะครับ

แนะนำ: