สารบัญ:

คีย์บอร์ดโมดูลเปียโนพร้อมไฟ LED RGB: 5 ขั้นตอน (พร้อมรูปภาพ)
คีย์บอร์ดโมดูลเปียโนพร้อมไฟ LED RGB: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: คีย์บอร์ดโมดูลเปียโนพร้อมไฟ LED RGB: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: คีย์บอร์ดโมดูลเปียโนพร้อมไฟ LED RGB: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DEKAY61 คีย์บอร์ดหลัก100 พร้อมคีย์ไทยไฟลอด ถูกเเละดี มีอยู่จริง 2024, กรกฎาคม
Anonim
Image
Image
วัสดุที่จำเป็น
วัสดุที่จำเป็น

บทนำ

สวัสดีท่านสุภาพสตรีและสุภาพบุรุษ ยินดีต้อนรับสู่คำสั่งสอนครั้งแรกของฉัน! วันนี้ผมจะมาสอนวิธีสร้างเปียโนโดยมีส่วนประกอบหลักเป็นโมดูลปุ่มกดและ Piezo Buzzer และสามารถเล่น DO-RE-MI ได้เป็นต้น

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

แนวคิดแนวคิด

แนวความคิดในการสร้างสรรค์นี้พัฒนาจากความทรงจำที่มีความสุขง่ายๆ ขณะเล่นระนาดเมื่อตอนที่ฉันยังเด็กในชั้นเรียนดนตรี ปริมาณของความสุขและความตื่นเต้นที่ไหลผ่านร่างกายของฉันอยู่ที่จุดสูงสุด ฉันหมายความว่าเด็กทุกคนพอใจอย่างง่ายดาย และความพึงพอใจของฉันคือการเล่นระนาด

การวิจัย

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

ขั้นตอนที่ 1: วัสดุที่จำเป็น

วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น

รายการวัสดุ

  • Piezo Buzzer 1x ▶
  • โมดูลปุ่มกด 4x4 1x ▶
  • Arduino Uno 1x ▶
  • สาย USB 2.0 ชนิด A/B 1x ▶
  • โมดูลเซนเซอร์เสียง 1x ▶
  • RGB LED 1x ▶
  • ตัวต้านทาน 330 โอห์ม 3x ▶
  • สายจัมเปอร์ชาย-หญิง 8x ▶
  • สายจัมเปอร์ตัวผู้ถึงตัวผู้ 4x ▶
  • สายจัมเปอร์ชาย-หญิง 3 พิน 1x ▶

รายการวัสดุอยู่ในลำดับที่มีรูปภาพด้านบน

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

สร้างเวลา!
สร้างเวลา!
สร้างเวลา!
สร้างเวลา!
สร้างเวลา!
สร้างเวลา!
สร้างเวลา!
สร้างเวลา!

โมดูลปุ่มกด 4x4 & Piezo Buzzer

ทฤษฎี

เนื่องจากโมดูลปุ่มกด 4x4 และออดแบบเพียโซมีอินพุตพินจำนวนมาก และฉันจะตัดสินใจแยกส่วนประกอบที่ใช้เป็นสองคู่ เน้นที่ปุ่มกด ปกติจะใช้เป็นอินพุต SunFounder 4*4 Matrix Keypad Module เป็นปุ่มกดแบบเมทริกซ์ที่ไม่ได้เข้ารหัสซึ่งประกอบด้วยปุ่ม 16 ปุ่มแบบขนาน คีย์ของแต่ละแถวและคอลัมน์เชื่อมต่อผ่านหมุดด้านนอก - พิน Y1-Y4 ตามป้ายกำกับข้างปุ่มควบคุม เมื่อ X1- X4 คอลัมน์

วัตถุประสงค์

วัตถุประสงค์ของส่วนประกอบเหล่านี้ในโปรเจ็กต์ทั้งหมด คือการอนุญาตให้ผู้ใช้กดปุ่มซึ่งกำหนดเป็นเสียงเฉพาะที่สร้างโดย Piezo buzzer ผ่านความถี่ในหน่วยเฮิรตซ์

พินโมดูลเมทริกซ์ - Arduino Pin

  • 4 - 2
  • 3 - 3
  • 2 - 4
  • 1 - 5
  • 5 - 6
  • 6 - 7
  • 7 - 8
  • 8 - 13

Piezo Buzzer - Arduino Pin

สีดำ - GND

สีแดง - พาวเวอร์

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

*เคล็ดลับคือติดตามว่าแต่ละเส้นมีตำแหน่งจากปลายด้านหนึ่งไปอีกด้านหนึ่ง

ภาพร่าง Tinkercad ของสายไฟส่วนประกอบเฉพาะทั้งหมดมีรหัสสีอย่างถูกต้อง ดังนั้นให้ปฏิบัติตามอย่างระมัดระวัง

ขั้นตอนที่ 3: โมดูลเซนเซอร์เสียงและไฟ LED RGB

โมดูลเซนเซอร์เสียงและไฟ LED RGB
โมดูลเซนเซอร์เสียงและไฟ LED RGB
โมดูลเซนเซอร์เสียงและไฟ LED RGB
โมดูลเซนเซอร์เสียงและไฟ LED RGB
โมดูลเซนเซอร์เสียงและไฟ LED RGB
โมดูลเซนเซอร์เสียงและไฟ LED RGB

โมดูลเซนเซอร์เสียงและไฟ LED RGB

ทฤษฎี

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

วัตถุประสงค์

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

โมดูลเซนเซอร์เสียง - Arduino Pin (ใช้สายจัมเปอร์ 3 ขา)

  • เอาต์พุต - A0 อนาล็อก Pin
  • GND - ช่องเสียบพิน GND ใดๆ ที่เปิดอยู่
  • VCC - 3V

RGB คอมมอนแอโนด (+) LED - Arduino Pin

  • สีแดง - 9
  • กำลังไฟ - 5V
  • สีเขียว - 10
  • สีฟ้า - 11

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

งานที่ยากที่สุดของฉันในงานสร้างนี้คือการหาว่าแต่ละสายเชื่อมต่ออยู่ที่ใด ด้านบนนี้ ฉันจะให้ข้อมูลและวิธีการที่รวดเร็วและง่ายดายแก่คุณเกี่ยวกับตำแหน่งลวด ตราบใดที่ทำตามบนลงล่าง เคล็ดลับคือใช้เวลาของคุณและตรวจสอบให้แน่ใจว่าเสียบพินทุกอันลงในสล็อตที่ถูกต้องเพื่อป้องกันการดีบักในอนาคต

*เคล็ดลับคือให้ปฏิบัติตามตำแหน่งที่แต่ละเส้นถูกสอดเข้าไปในทางใดทางหนึ่ง

ร่าง Tinkercad ทั้งหมดของสายส่วนประกอบเฉพาะนั้นได้รับการกำหนดรหัสสีอย่างถูกต้อง ดังนั้นให้ปฏิบัติตาม

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

รหัส

รหัสนี้อนุญาตให้ส่วนประกอบทั้งหมดทำงานร่วมกันโดยใช้ฟังก์ชันที่กำหนดไว้ใหม่เพื่อให้มีตัวควบคุมจำนวนมากทั้งหมด ส่วนประกอบเดียวที่มีตัวแปรที่เปลี่ยนแปลงได้มากมาย ส่วนประกอบเหล่านั้นคือ RGB led และใช้สี rgb เพื่อเปลี่ยนสีในขณะที่เปิดอยู่ และสัญญาณเสียงพายโซและ เสียงมันจะทำให้ขึ้นอยู่กับการกดปุ่ม

ที่ต้องมีในรหัสนี้คือห้องสมุดปุ่มกด

ลิงค์ที่นี่:

เมื่อดาวน์โหลดแล้ว ให้เพิ่มไลบรารีใหม่ลงใน Arduino หลังจากนั้นให้ใส่โค้ดบรรทัดเดียวที่จำเป็นในการเปิดใช้งาน

ความยากลำบากที่ฉันมีระหว่างโค้ดคือตำแหน่งที่จะวางฟังก์ชันที่กำหนดไว้ใหม่ จากการลองผิดลองถูก ฉันคิดว่ามันต้องอยู่ในการตั้งค่า ไม่ใช่การวนซ้ำ

รหัส

#include // ไลบรารีปุ่มกด

int greenPin = 11; //RGB Green Pin เชื่อมต่อกับพินดิจิตอล 9

int redPin= 10; //RGB Red Pin เชื่อมต่อกับพินดิจิตอล 9

int bluePin = 9; //RGB Blue Pin เชื่อมต่อกับพินดิจิตอล 9 int speakerPin = 12; // ลำโพงเชื่อมต่อกับพินดิจิตอล 12 const byte ROWS = 4; // สี่แถว const ไบต์ COLS = 4; // สี่ colums const int soundPin = A0; // เซ็นเซอร์เสียงแนบกับ A0

ปุ่มถ่าน [ROWS][COLS] = {

{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l'}, {'m', 'n', 'o', 'p'} }; // การสร้างภาพโมดูลปุ่มกด

ไบต์ rowPins[ROWS] = {2, 3, 4, 5}; // เชื่อมต่อกับ pinout ของแถวของปุ่มกด

ไบต์ colPins[COLS] = {6, 7, 8, 13}; // เชื่อมต่อกับ colum pinouts ของปุ่มกด

ปุ่มกด = ปุ่มกด (makeKeymap (คีย์), rowPins, colPins, ROWS, COLS); // สร้างคีย์

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

pinMode (ลำโพงพิน, เอาต์พุต); // ตั้งค่า speakerPin ให้เป็นเอาต์พุต

โหมดพิน (redPin, เอาต์พุต); // ตั้งค่าพินสีแดงให้เป็นเอาต์พุตพินโหมด (greenPin, OUTPUT); // ตั้งค่าพินสีเขียวให้เป็นเอาต์พุต pinMode(bluePin, OUTPUT); // ตั้งค่าพินสีน้ำเงินให้เป็นเอาต์พุต

Serial.begin (9600);

} void setColor (int red, int green, int blue) // ฟังก์ชันที่กำหนดใหม่เพื่อให้ RGB แสดงสีผ่านโค้ด RGB { #ifdef COMMON_ANODE red = 255 - red; สีเขียว = 255 - สีเขียว; สีน้ำเงิน = 255 - สีน้ำเงิน; #endif analogWrite (หมุดสีแดง, สีแดง); analogWrite (greenPin, สีเขียว); analogWrite (บลูพิน, น้ำเงิน); }

เสียงบี๊บเป็นโมฆะ (พินลำโพงถ่านที่ไม่ได้ลงชื่อ, ความถี่ intInHertz, timeInMilliseconds นาน) {// ฟังก์ชันสร้างเสียง

int x; ระยะเวลาล่าช้าจำนวน = (ยาว) (1000000/ความถี่ในเฮิรตซ์); loopTime ยาว = (long)((timeInMilliseconds*1000)/(delayAmount*2)); สำหรับ (x=0;x

วงโมฆะ (){

ปุ่มถ่าน = keypad.getKey(); ค่า int = analogRead (soundPin); // อ่านค่าของ A0 Serial.println (value); // พิมพ์ค่า

ถ้า (คีย์ != NO_KEY) {

Serial.println (คีย์); } if (คีย์=='a'){ beep(speakerPin, 2093, 100); setColor(218, 112, 214); } if (คีย์=='b'){ beep(speakerPin, 2349, 100); setColor(218, 112, 214); } if (คีย์=='c'){ beep(speakerPin, 2637, 100); setColor(218, 112, 214); } if (คีย์=='d'){ beep(speakerPin, 2793, 100); setColor(218, 112, 214); } if (คีย์=='e'){ beep(speakerPin, 3136, 100); setColor(218, 112, 214); } if (คีย์=='f'){ beep(speakerPin, 3520, 100); setColor(218, 112, 214); } if (คีย์=='g'){ beep(speakerPin, 3951, 100); setColor(218, 112, 214); } if (คีย์=='h'){ beep(speakerPin, 4186, 100); setColor(218, 112, 214); } if (คีย์=='i'){ beep(speakerPin, 2093, 100); setColor(230, 230, 0); } if (คีย์=='j'){ beep(speakerPin, 2349, 100); setColor(180, 255, 130); } if (คีย์=='k'){ beep(speakerPin, 2637, 100); setColor(130, 255, 130); } if (คีย์=='l'){ beep(speakerPin, 2739, 100); setColor(130, 220, 130); } if (คีย์=='m'){ beep(speakerPin, 3136, 100); setColor(0, 255, 255); } if (คีย์=='n'){ beep(speakerPin, 3520, 100); setColor(0, 220, 255); } if (คีย์=='o'){ beep(speakerPin, 3951, 100); setColor(0, 69, 255); } if (คีย์=='p'){ beep(speakerPin, 4186, 100); setColor(255, 0, 255); } }

ขั้นตอนที่ 5: ความคิดสุดท้าย

Image
Image

ความคิดสุดท้าย

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

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

โปรดอย่าลืมแชร์หากคุณชอบโครงการ Arduino นี้

แนะนำ: