สารบัญ:
- เสบียง
- ขั้นตอนที่ 1:
- ขั้นตอนที่ 2:
- ขั้นตอนที่ 3:
- ขั้นตอนที่ 4:
- ขั้นตอนที่ 5:
- ขั้นตอนที่ 6:
- ขั้นตอนที่ 7: รหัส
วีดีโอ: กล่องปริศนา Arduino: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
สำหรับโปรเจ็กต์นี้ เราจะทำกล่องปริศนาที่ทำงานร่วมกับดนตรีได้ สาระสำคัญพื้นฐานของมันคือเมื่อคุณกดปุ่ม มันจะปล่อยเพลงออกมา และ Arduino จะคำนวณว่าปุ่มใดถูกกด เพื่อให้รู้ว่าอะไรถูกและอะไรคือคำตอบที่ผิด
เสบียง
1 x Arduino uno
ตัวต้านทาน 1 x 1k โอห์ม
ตัวต้านทาน 5 x 220 โอห์ม
1 xPiezo Buzzer
ปุ่มกด 5 x 6x6 มม.
1 x ชุดสายจัมเปอร์
1 x บอร์ด perf/สตริป
1 x ชุดบัดกรี
1 x บานพับ
1 x แคลมป์
1 x ตู้ลิ้นชักเล็ก/ไม้
1x ปืนกาวร้อน + แท่งกาว
แบตเตอรี่ 1 x 9v + ที่ยึด
วอร์บลานิดหน่อย
สี
ขั้นตอนที่ 1:
ในการเริ่มต้นคุณต้องกดหมุดบนเขียงหั่นขนมของคุณ ตอนนี้เชื่อมต่อแอนะล็อก 2 ด้วยสายที่มุมของบอร์ด เราจะเชื่อมต่อตัวต้านทานสองตัวเข้ากับมันในแนวเดียวกัน อย่างแรกคือตัวต้านทาน 10k โอห์ม ที่ปลายอีกด้านหนึ่งของตัวต้านทานนี้เราเชื่อมต่อสายกับกราวด์แอนะล็อก ตัวต้านทานตัวที่สองคือตัวต้านทาน 220 โอห์มที่เราเชื่อมต่อกับปุ่มแรก ใช้ตัวต้านทานอื่นที่มีค่าเท่ากันเพื่อเชื่อมต่อด้านที่เปิดที่สองของปุ่มกับปุ่มที่สอง เชื่อมต่อปุ่มแบบนี้จนถึงปุ่มสุดท้าย สุดท้ายคุณคว้าลวดและเชื่อมต่อกับด้านปิดที่สอดคล้องกันของปุ่มและเชื่อมต่อกับสายถัดไปในบรรทัด ตอนนี้คุณทำซ้ำขั้นตอนที่คุณทำกับตัวต้านทานเท่านั้นที่รู้ด้วยสายธรรมดา เชื่อมต่อปุ่มแรกเข้ากับพอร์ตอนาล็อก 3, 3V บน Arduino ของคุณ โดยรวมแล้วคุณจะได้รับแบบ cross patern ตามที่แสดงด้านล่าง
ขั้นตอนที่ 2:
จากนั้นเสียบออดเข้ากับเขียงหั่นขนมและยึดด้านหนึ่งกับกราวด์ดิจิตอลและอีกด้านหนึ่งเข้ากับพอร์ต 12 เป็นการดีที่จะอัปโหลดโค้ดต่อไปนี้ไปยัง Arduino เพื่อให้คุณสามารถทดสอบว่าทุกอย่างถูกต้องหรือไม่ หากเป็นเช่นนั้น คุณสามารถเริ่มบัดกรีส่วนประกอบเข้าด้วยกันได้ ทำได้โดยนำออกจากเขียงหั่นขนมแล้วบัดกรีสายไฟและการเชื่อมต่อเข้าด้วยกันโดยตรง ถ้าคุณคิดว่าคุณต้องการความยาวมากขึ้นระหว่างปุ่มต่างๆ คุณสามารถเพิ่มลวดพิเศษระหว่างตัวต้านทานได้ ตอนนี้ไม่จำเป็นต้องใช้เขียงหั่นขนมอีกต่อไป
ขั้นตอนที่ 3:
หลังจากที่ทุกอย่างถูกบัดกรีแล้วก็ถึงเวลาทำกล่องด้วยตัวเอง ฉันใช้ชุดลิ้นชักราคาถูกเป็นฐานของฉัน ฉันแค่ผ่าครึ่งตามยาวแล้วเอาด้านหลังและด้านที่ฉันผ่าออก ตอนนี้คุณควรมีชิ้นส่วนรูปตัว c สองชิ้น ตัดด้านหนึ่งเพื่อใช้เป็นฝา ตอนนี้หมุนชิ้นส่วนที่เหลือหนึ่งชิ้นเพื่อให้พอดีกันเหมือนกล่องที่ไม่มีฝาปิดแล้วทากาวเข้าด้วยกัน เมื่อกาวเซ็ตตัวถูกต้องแล้ว ให้เจาะรูเล็กๆ ในแต่ละด้านของกล่องสำหรับกระดุม และเจาะให้ใหญ่ขึ้นสำหรับกริ่งที่ฝา
ขั้นตอนที่ 4:
ตอนนี้คุณสามารถทาสีกล่องได้ ฉันทำการออกแบบดอกไม้ตาม BOTW แต่คุณสามารถเลือกการออกแบบที่คุณต้องการได้จริงๆ หลังจากนี้เสร็จแล้ว คุณสามารถใส่กระดุมเข้าไปในรูและติดกาวที่ด้านหลังของกระดุมและไม้รอบๆ หลักการเดียวกันนี้ใช้กับออด แต่ของฉันพอดีกับรูอย่างสมบูรณ์ทำให้ไม่จำเป็น ต่อไปคุณหยิบวอร์บลาและความร้อนแล้วตัดเพื่อทำปุ่มเล็กๆ ค่อยๆ ติดกาวบนปุ่มต่างๆ แต่อย่าใช้กาวมากเกินไป เพราะอาจทำให้ปุ่มติดโดยไม่ได้ตั้งใจ ตอนนี้คุณสามารถทาสีทับเพื่อให้เข้ากับกล่องมากขึ้น
ขั้นตอนที่ 5:
สุดท้ายคุณกาวหรือสกรู แคลมป์และบานพับบนกล่องและฝาที่เชื่อมต่อทั้งสอง
ขั้นตอนที่ 6:
เมื่อกล่องของคุณเสร็จสมบูรณ์แล้ว สิ่งที่คุณต้องทำคือใส่ Arduino และแบตเตอรี่เข้าไปข้างในแล้วปิดฝา
ขั้นตอนที่ 7: รหัส
// นี่คือรหัสสำหรับกล่องดนตรี/ปริศนาธีม Zelda
// นี่เชื่อมต่อรหัสของคุณกับรายการบันทึกย่อในแท็บอื่น ๆ
#รวม "pitches.h"
// ตัวแปรนี้จะทำให้แน่ใจว่า Arduino จะเห็นการกดปุ่มที่ยาวขึ้นเพียงแค่กดครั้งเดียว
int เดียวกัน = 0;
// จากตรงนี้ มันจะอ่านอินพุตของคุณ
int k = 2;
//นี่คือพินเอาต์พุตของคุณ
ลำโพง int = 12;
// ด้านล่างเป็นท่วงทำนองตอนจบ
int Zelda = {NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A5, NOTE_G5, NOTE_D5, NOTE_C5, NOTE_B4, NOTE_
int ZeldaTime = {2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2};
int Epona = {NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_B4, NOTE_A4};
int EponaTime = {4, 4, 1.5, 4, 4, 1.5, 4, 4, 2, 2, 1};
int Saria = {NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_E5, NOTE_D5, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_E}
int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// ระยะเวลาปกติของบันทึกย่อ
int BEATTIME = 300;
// ตัวนับที่จะติดตามเมื่อเราอยู่ในการแก้ปัญหา
ผู้บอก int = 0;
การตั้งค่าเป็นโมฆะ () {
Serial.begin(9600);
โหมดพิน (2, อินพุต);
โหมดพิน (1, อินพุต);
}
วงเป็นโมฆะ () {
// อ่านอินพุตจากพิน
k = แอนะล็อกอ่าน(2);
int p = analogRead(1);
//ถ้าไม่มีการกดปุ่มใดๆ ก็ไม่ควรมีเสียง
ถ้า (ผู้บอก == 0) {
โนโทน(12);
}
// ถ้าข้อมูลที่อ่านสอดคล้องกับพารามิเตอร์ให้รันบิตโค้ดที่อธิบายไว้
ถ้า (k > 320 && k < 350) {
rechts();
}
//""
อย่างอื่นถ้า (k 290) {
ลิงค์ ();
}
//""
อื่นถ้า (k > 260 && k < 280) {
โบเวน();
}
//""
อื่นถ้า (k> 240 && k <260) {
บน ();
}
//""
อื่นถ้า (k > 220 && k < 240) {
NS();
}
// หากไม่เป็นเช่นนั้น (เมื่อไม่มีการกดปุ่ม) ให้รันโค้ดนี้
อื่น {
// reset เหมือนเดิม ใช้ได้ครั้งถัดไปที่กดปุ่ม
เหมือนกัน = 0;
// ถ้าตัวนับถึงจำนวนที่แน่นอนให้รันโค้ดบิตที่อธิบายไว้
ถ้า (ผู้บอก == 166) {
เซลด้า();
}
//""
อื่นถ้า (ผู้บอก == 386) {
ซาเรีย();
}
//""
อื่นถ้า (ผู้บอก == 266) {
epona();
}
//""
อื่นถ้า (ผู้บอก == 999) {
// เล่นโทนนี้เพื่อทำเครื่องหมายข้อผิดพลาด
โทนเสียง (ลำโพง NOTE_C3, BEATTIME);
//รีเซ็ตตัวนับเป็น0
หมอดู = 0;
}
}
//ความล่าช้าระหว่างอินพุตและเอาต์พุต
ล่าช้า (100);
// พิมพ์ค่าอินพุตของคุณในมอนิเตอร์แบบอนุกรม
Serial.println(k);
}
// นี่คือทำนองเพลงแรก
โมฆะ zelda() {
// เป็นการตั้งค่าตัวนับที่อัปเดตตัวเองขณะเล่นเมโลดี้เพื่อให้สามารถอ่านและหยุดเมื่อควร
สำหรับ (int i = 0; i < sizeof (Zelda); i++) {
//บอกว่าโน้ตควรอยู่ได้นานแค่ไหน
int ZTime = 1,000 / ZeldaTime;
//สร้างเสียง
โทนเสียง (ลำโพง, Zelda, ZTime);
//สร้างการหน่วงเวลาที่ถูกต้อง
int หยุดชั่วคราว = ZTime * 1.30;
ล่าช้า (หยุดชั่วคราว);
//รีเซ็ตตัวนับ
หมอดู = 0;
// พิมพ์ค่าอินพุตของคุณในมอนิเตอร์แบบอนุกรม
Serial.println (หมอดู);
}
}
//""
โมฆะepona() {
สำหรับ (int i = 0; i < sizeof (Epona); i++) {
int ETime = 1,000 / EponaTime;
น้ำเสียง (ลำโพง, Epona, ETime);
หยุดชั่วคราว = ETime * 1.30;
ล่าช้า (หยุดชั่วคราว);
หมอดู = 0;
Serial.println (หมอดู);
}
}
//""
โมฆะซาเรีย () {
สำหรับ (int i = 0; i < sizeof(Saria); i++) {
int STime = 1,000 / SariaTime;
น้ำเสียง (ผู้พูด, Saria, STime);
int หยุดชั่วคราว = STime * 1.30;
ล่าช้า (หยุดชั่วคราว);
หมอดู = 0;
Serial.println (หมอดู);
}
}
เป็นโมฆะ rec
hts() {
// ถ้ายังไม่ได้กด
ถ้า (เหมือนกัน == 0) {
// ถ้าตัวนับปัจจุบันมีค่าเหล่านี้ให้เพิ่มเข้าไป
if (teller == 0 || teller == 132 || teller == 165 || teller == 232 || teller == 265 || teller == 331 || หมอดู == 374) {
หมอดู = หมอดู + 1;
}
// มิฉะนั้นให้ตั้งค่าเป็น 999 เพื่อให้คุณได้ยินเสียงข้อผิดพลาด te
อื่น {
หมอดู = 999;
}
// ตั้งค่าเหมือนกันเพื่อให้ Arduino ไม่อ่านการกดที่ยืดเยื้อเป็นการกดหลายครั้ง
เหมือนกัน = 1;
}
// เล่นเสียง
อื่น {
โทนเสียง (ลำโพง NOTE_A4, BEATTIME);
}
// พิมพ์ค่าอินพุตของคุณในมอนิเตอร์แบบอนุกรม
Serial.println (หมอดู); }
//""
ลิงก์เป็นโมฆะ () {
ถ้า (เหมือนกัน == 0) {
if (teller == 133 || teller == 254 || teller == 244 || teller == 332 || teller == 375 || หมอดู == 221) {
หมอดู = หมอดู + 11;
}
อื่นถ้า (ผู้บอก == 0) {
หมอดู = 111;
}
อื่น {
หมอดู = 999;
}
เหมือนกัน = 1;
} อื่น{
โทนเสียง (ลำโพง NOTE_B4, BEATTIME);
} Serial.println (หมอดู);
}
//""
เป็นโมฆะ boven() {
if (เท่ากัน == 0) { if (teller == 111 || teller == 144 || teller == 233) {
หมอดู = หมอดู + 21;
}
อื่นถ้า (ผู้บอก == 0) {
หมอดู = 221;
}
อื่น {
หมอดู = 999;
}
เหมือนกัน = 1;
}
อื่น {
โทนเสียง (ลำโพง NOTE_D5, BEATTIME);
Serial.println (หมอดู);
}
}
//""
ถือเป็นโมฆะ () {
ถ้า (เหมือนกัน == 0) {
ถ้า (ผู้บอก == 343) {
หมอดู = หมอดู + 31;
}
อื่นถ้า (ผู้บอก == 0) {
หมอดู = 331;
} อื่น {
หมอดู = 999;
} เหมือนกัน = 1;
} อื่น {
โทนเสียง (ลำโพง NOTE_F4, BEATTIME);
Serial.println (หมอดู);
}
}
//""
เป็นโมฆะ () {
ถ้า (เหมือนกัน == 0) {
ถ้า (ผู้บอก == 0) {
หมอดู = 461;
}
อื่น {
หมอดู = 999;
}
เหมือนกัน = 1;
}
โทนเสียง (ลำโพง NOTE_D4, BEATTIME);
Serial.println (หมอดู);
}
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino