Innehållsförteckning:
- Steg 1: Material som behövs
- Steg 2: Byggtid
- Steg 3: Ljudsensormodul och RGB LED
- Steg 4: Kod
- Steg 5: Slutliga tankar
Video: Knappsatsmodul Piano med RGB LED: 5 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Intro
Hej mina damer och herrar, välkommen till min allra första instruerbara! Idag kommer jag att lära dig hur du skapar ett piano med huvudkomponenter som en knappsatsmodul och en piezo-summer och låter den spela DO-RE-MI och så vidare.
Knappsatsmodulen som oftast är avsedd är att vara en knappsats kombinerad med en arduino RFID för att skapa en säker förvaringsbox för värdefulla föremål. I det här fallet ändrade jag knappsatsen, istället för att skydda något som jag bestämmer mig för att använda för att tala om enkel glädje och musik.
Idékoncept
Idékonceptet för denna skapelse, utvecklas från ett enkelt lyckligt minne när jag spelade xylofon när jag var yngre i musikklassen. Mängden glädje och spänning som rann genom min kropp var på topp, jag menar att varje barn var lätt nöjd och min tillfredsställelse spelade xylofon.
Forskning
När din idé glödlampa ovan tänds måste lite forskning göras. Efter att ha surfat på nätet någon gång kan jag komma på min idé som jag först tänkte på! En knappsatsmodul vände piano, någon har skapat samma projektvideo här. När jag tänkte framåt behövde jag lägga till en separat komponent som skulle ytterligare förbättra projektet men göra det mer engagerande och kunna kalla det mitt eget.
Steg 1: Material som behövs
Materiallista
- Piezo Buzzer 1x ▶
- 4x4 knappsatsmodul 1x ▶
- Arduino Uno 1x ▶
- USB 2.0-kabel typ A/B 1x ▶
- Ljudsensormodul 1x ▶
- RGB LED 1x ▶
- 330 ohm motstånd 3x ▶
- Manlig till kvinnlig bygelkabel 8x ▶
- Manlig till manlig bygelkabel 4x ▶
- 3-stifts han- till hona-kabel 1x ▶
Materiallistan är i ordning med bilderna ovan.
Steg 2: Byggtid
4x4 knappsatsmodul och piezo -summer
Teori
Eftersom knappsatsmodulen 4x4 och piezo -summern innehåller så många individuella stiftingångar och jag bestämmer mig för att dela upp komponenterna som används i två par. Fokus på knappsatsen, vanligtvis används som ingång. SunFounder 4*4 Matrix-knappsatsmodul är en matriskodad knappsats som består av 16 tangenter parallellt. Nycklarna för varje rad och kolumn är anslutna genom stiften utanför- stift Y1-Y4 som är märkt bredvid kontrollraderna, när X1- X4, kolumnerna.
Ändamål
Syftet med dessa komponenter för hela projektet är att låta användaren trycka på en knapp som är inställd på ett specifikt ljud som skapas av piezo -summern genom frekvens i hertz.
Matrix Module Pin - Arduino Pin
- 4 - 2
- 3 - 3
- 2 - 4
- 1 - 5
- 5 - 6
- 6 - 7
- 7 - 8
- 8 - 13
Piezo Buzzer - Arduino Pin
Svart - GND
Röd - Power
Min svåraste uppgift i detta bygge är att räkna ut var varje kabel är ansluten till. Ovanför ger jag dig en snabb och enkel väg till trådplatserna, så länge det följs uppifrån och ner, tipset är att ta dig tid och se till att varje stift är korrekt isatt i rätt plats.
*Tips är att följa var varje tråd är placerad från ena änden till en annan.
Alla Tinkercad -skisser av de specifika komponenttrådarna är färgkodade korrekt, så följ noga
Steg 3: Ljudsensormodul och RGB LED
Ljudsensormodul och RGB LED
Teori
Ljudsensormodulen låter dig upptäcka när ljudet har överskridit ett börvärde du väljer. Ljud detekteras via en mikrofon och matas in i en LM393 op -förstärkare. När ljudnivån överskrider börvärdet tänds en lysdiod på modulen och utgången.
Ändamål
Syftet med dessa komponenter för hela projektet är att erhålla en ljud-/volymavläsning av ljudsensormodulen och genom den avläsningen aktiverar en RGB -LED rätt färg för ljud.
Ljudsensormodul - Arduino -stift (använd 3 -stifts bygeltråd)
- Utgång - A0 analog stift
- GND - Alla öppna GND -stiftplatser
- VCC - 3V
RGB Common Anode (+) LED - Arduino Pin
- Röd - 9
- Effekt - 5V
- Grön - 10
- Blå - 11
Tänk på att leda varje enskild ledning genom ett 330 ohm motstånd. Använd bilden ovan som referens.
Min svåraste uppgift i detta bygge är att räkna ut var varje kabel är ansluten. Ovanför ger jag dig en snabb och enkel väg till trådplatser, så länge de följs uppifrån och ner, tipset är att ta dig tid och se till att varje stift är korrekt isatt i rätt plats för att förhindra framtida felsökning.
*Tips är att följa där varje tråd sätts in åt båda hållen
Alla Tinkercad -skisser av de specifika komponentledningarna är färgkodade korrekt så följ med
Steg 4: Kod
Koda
Denna kod gör att alla komponenter kan arbeta tillsammans genom att använda nydefinierad funktion för att innehålla alla de många kontrollerna en enda komponent som har många variabla variabler, dessa komponenter var RGB -ledda och med hjälp av rgb -färg för att ändra färgen medan den var på och piezo -summern och ljud det skulle göra beroende på knapptryckningen.
Ett måste inom denna kod var knappsatsbiblioteket
Länk här:
När du har laddat ner lägg till det nya biblioteket i arduinoen, sätt sedan in den enda kodraden som behövs för att aktivera det.
Svårigheter jag hade under koden var var man skulle placera de nyligen definierade funktionerna eftersom jag genom försök och fel kom på att det måste vara i installationen och inte i slingan.
Koda
#include // Knappsatsbibliotek
int greenPin = 11; // RGB Green Pin ansluten till digital pin 9
int redPin = 10; // RGB Red Pin ansluten till digital pin 9
int bluePin = 9; // RGB Blue Pin ansluten till digital pin 9 int speakerPin = 12; // högtalare ansluten till digital pin 12 const byte RADER = 4; // fyra rader const byte COLS = 4; // fyra kolum const int soundPin = A0; // ljudsensor kopplad till A0
char nycklar [RADER] [COLS] = {
{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l '}, {' m ',' n ',' o ',' p '}}; // Visualisering av knappsatsmodul
byte rowPins [ROWS] = {2, 3, 4, 5}; // Anslut till knapparna på knappsatsen
byte colPins [COLS] = {6, 7, 8, 13}; // Anslut till knapparna på knappsatsen
Knappsats knappsats = Knappsats (makeKeymap (nycklar), rowPins, colPins, ROWS, COLS); // Skapar nycklar
void setup () {
pinMode (speakerPin, OUTPUT); // anger att speakerPin ska vara en utgång
pinMode (redPin, OUTPUT); // ställer in den röda stiftet som en utgång pinMode (greenPin, OUTPUT); // ställer in den gröna stiftet som en utgång pinMode (bluePin, OUTPUT); // anger den blå stiftet som en utgång
Serial.begin (9600);
} void setColor (int röd, int grön, int blå) // Ny definierad funktion som gör att RGB kan visa färg genom RGB -kod {#ifdef COMMON_ANODE röd = 255 - röd; grön = 255 - grön; blå = 255 - blå; #endif analogWrite (redPin, röd); analogWrite (greenPin, grön); analogWrite (bluePin, blue); }
void pip (osignerad char speakerPin, int frequencyInHertz, long timeInMilliseconds) {// de ljudproducerande funktionerna
int x; long delayAmount = (long) (1000000/frequencyInHertz); long loopTime = (long) ((timeInMilliseconds*1000)/(delayAmount*2)); för (x = 0; x
void loop () {
char key = knappsats.getKey (); int värde = analogRead (soundPin); // läs värdet för A0 Serial.println (värde); // skriv ut värdet
if (key! = NO_KEY) {
Serial.println (nyckel); } if (key == 'a') {pip (speakerPin, 2093, 100); setColor (218, 112, 214); } if (key == 'b') {pip (speakerPin, 2349, 100); setColor (218, 112, 214); } if (key == 'c') {pip (speakerPin, 2637, 100); setColor (218, 112, 214); } if (key == 'd') {pip (speakerPin, 2793, 100); setColor (218, 112, 214); } if (key == 'e') {pip (speakerPin, 3136, 100); setColor (218, 112, 214); } if (key == 'f') {pip (speakerPin, 3520, 100); setColor (218, 112, 214); } if (key == 'g') {pip (speakerPin, 3951, 100); setColor (218, 112, 214); } if (key == 'h') {pip (speakerPin, 4186, 100); setColor (218, 112, 214); } if (key == 'i') {pip (speakerPin, 2093, 100); setColor (230, 230, 0); } if (key == 'j') {pip (speakerPin, 2349, 100); setColor (180, 255, 130); } if (key == 'k') {pip (speakerPin, 2637, 100); setColor (130, 255, 130); } if (key == 'l') {pip (speakerPin, 2739, 100); setColor (130, 220, 130); } if (key == 'm') {pip (speakerPin, 3136, 100); setColor (0, 255, 255); } if (key == 'n') {pip (speakerPin, 3520, 100); setColor (0, 220, 255); } if (key == 'o') {pip (speakerPin, 3951, 100); setColor (0, 69, 255); } if (key == 'p') {pip (speakerPin, 4186, 100); setColor (255, 0, 255); }}
Steg 5: Slutliga tankar
Slutgiltiga tankar
Slutliga tankar med detta projekt är dess avsedda syfte är att vara en leksak, att ge rolig och förenklad glädje. Eftersom det här projektet är ett färdigt och pågående, tror jag att detta bygge och kan främjas med kanske fler komponenter som ett inspelningselement, eller kopiera/simon säger element, eller till och med LCD med noterna som verkar spela en specifik låt.
Jag skulle gärna vilja veta din åsikt om knappsatsmodulen, vilka komponenter du trodde kunde ha lagts till. Kommer du att använda den i något av dina projekt? Skriv dina idéer i kommentarfältet nedan.
Vänligen se till att dela om du gillade detta arduino -projekt.
Rekommenderad:
Elektrifiera ditt Tap-A-Tune Piano: 9 steg (med bilder)
Electrify Your Tap-A-Tune Piano: Skapa experimentell punkmusik och skräckfilmseffekter med detta projekt inspirerat av Randofos " Electric Cigar Box Guitar " Instructable och EvanKales " Electric Ukelele with Tone Control”Instructable. Tap-a-tune piano är
PCB Touch Piano: 6 steg (med bilder)
PCB Touch Piano: Ett piano för din ficka? Säker! Med hjälp av en skrivartoneröverföring, kopparetsningslösning och en Teensy 3.2 gör vi en liten MIDI -styrenhet som svarar på ett enkelt fingertryck. Du behöver några material: 100mm X 70mm koppar PCB Teensy 3.2 Ferric
Ultraljud Pi -piano med gestkontroller !: 10 steg (med bilder)
Ultrasonic Pi Piano With Gesture Controls !: Detta projekt använder billiga HC-SR04 ultraljudssensorer som ingångar och genererar MIDI-noter som kan spelas via en synthesizer på Raspberry Pi för ett högkvalitativt ljud.Projektet använder också en grundläggande form av gestkontroll , där musiken
El-analogt piano: 10 steg (med bilder)
El-analogt piano: Musik är en stor del av vår kultur-alla tycker om att lyssna på musik. Men medan du lyssnar på musik är en sak, är det att lära sig att göra musik en annan sak. På samma sätt, medan att göra musik är en svår uppgift, är att bygga ett musikinstrument en helhet
Raspberry Pi LED Light Schroeder Piano: 3 steg (med bilder)
Raspberry Pi LED Light Schroeder Piano: Raspberry Pi LED Light Light Schroeder PianoLED (Light Emitting Diode) and LDR (Light Dependent Resistor, or photoresitor) arrays are used to play musical notes using the Raspberry Pi Pygame MIDI sequencer. Det finns 15 paris LED & LDR (12 för en fu