Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Introduktion
Efter att ha experimenterat med konstruktionen av olika synthesizers bestämde jag mig för att bygga en ljudsampler, som var lätt replikerbar och billig.
För att ha bra ljudkvalitet (44,1 kHz) och tillräcklig lagringskapacitet användes DFPlayer -modulen, som använder micro SD -minneskort för att lagra upp till 32 gigabyte information. Denna modul kan bara spela ett ljud i taget, så vi kommer att använda två.
Ett annat krav för projektet är att kretsen kan anpassas till olika gränssnitt, varför vi valde kapacitiva sensorer istället för knappar.
Kapacitiva sensorer kan aktiveras med bara handkontakten med vilken metallyta som helst som är ansluten till sensorn.
För avläsning av sensorerna kommer vi att använda en Arduino nano, på grund av dess förmåga och lilla storlek.
egenskaper
6 olika ljud
Aktiveras av kapacitiva sensorer.
Polyfoni med 2 ljud samtidigt.
Steg 1: Material och verktyg
Material
Arduino Nano
2x DFPlayer
2x micro SD
3.5 Ljuduttag
2.1 DC-uttag https://www.taydaelectronics.com/dc-power-jack-2-1mm- fat-type-pcb-mount.html
10x10 kopparkort
Ferriklorid
Lödtråd
PCB-överföringspapper
Verktyg
Lödjärn
Komponentledare
Dator
Järn
programvara
Arduino Ide
Kicad
ADTouch Librarie
Snabb DFPlayer Librarie
Steg 2: Hur fungerar det
Provtagaren fungerar enligt följande, med hjälp av ADTouch -biblioteket konverterar vi 6 av de analoga portarna på Arduino Nano till kapacitiva sensorer.
Som sensor kan vi använda vilken metallbit som helst som är ansluten till en av dessa stift med hjälp av en kabel.
Du kan läsa mer om biblioteket och kapacitiva sensorer på följande länk
När en av dessa sensorer vidrörs detekterar arduino en kapacitansändring och skickar därefter ordern att utföra ljudet som motsvarar den sensorn till DFPlayer -modulerna.
Varje DFPlayer -modul kan bara spela ett ljud i taget, så för att ha möjlighet att köra 2 ljud åt gången använder instrumentet 2 moduler.
Steg 3: Schematisk
I diagrammet kan vi se hur arduino och de två DFPlayer -modulerna är anslutna
R1 och R2 (1 k) är för att ansluta modulerna till DFP -spelarna.
R 3 4 5 och 6 (10k) är för blandning av utgångarna från kanalerna l och r på modulerna.
R 7 (330) är skyddsmotståndet för en lysdiod som kommer att användas som en indikator på att arduinoen får ström.
Steg 4: Bygg kretskortet
Därefter tillverkar vi plattan med hjälp av värmeöverföringsmetoden, som förklaras i denna instruerbara:
6 plattor har placerats på kortet som gör att provtagaren kan användas utan att det behövs externa sensorer.
Steg 5: Lödning av komponenterna
Därefter lödar vi komponenterna.
Först motstånden.
Det rekommenderas att använda headers för att montera Arduino och modulerna utan att lödda dem direkt.
För att löda rubrikerna börjar med en nål, kontrollera sedan att den sitter bra och löd sedan resten av tapparna.
Slutligen kommer vi att löda kontakterna
Steg 6: Installera biblioteken
I det här projektet kommer vi att använda tre bibliotek som vi behöver installera:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
I följande länk kan du se i detalj hur du installerar bibliotek i Arduino
www.arduino.cc/en/guide/libraries
Steg 7: Kod
Nu kan vi ladda upp koden till Arduino -kortet.
För detta måste vi välja Arduino Nano -kortet.
#include #include #include
int ref0, ref1, ref2, ref3, ref4, ref5; int th;
SoftwareSerial mySerial (8, 9); // RX, TX DFPlayerMini_Fast myMP3;
SoftwareSerial mySerial2 (10, 11); // RX, TX DFPlayerMini_Fast myMP32;
void setup () {int th = 550; // Serial.begin (9600); mySerial.begin (9600); mySerial2.begin (9600); myMP3.begin (mySerial); myMP32.begin (mySerial2); myMP3.volym (18); ref0 = ADCTouch.read (A0, 500); ref1 = ADCTouch.read (A1, 500); ref2 = ADCTouch.read (A2, 500); ref3 = ADCTouch.read (A3, 500); ref4 = ADCTouch.read (A4, 500); ref5 = ADCTouch.read (A5, 500);
}
void loop () {
int total1 = ADCTouch.read (A0, 20); int total2 = ADCTouch.read (A1, 20); int total3 = ADCTouch.read (A2, 20); int total4 = ADCTouch.read (A3, 20); int total5 = ADCTouch.read (A4, 20); int total6 = ADCTouch.read (A5, 20);
total1 -= ref0; total2 -= ref1; total3 -= ref2; total4 -= ref3; total5 -= ref4; total6 -= ref5; // // Serial.print (total1> th); // Serial.print (total2> th); // Serial.print (total3> th); // Serial.print (total4> th); // Serial.print (total5> th); // Serial.println (total6> th);
// Serial.print (total1); // Serial.print ("\ t"); // Serial.print (total2); // Serial.print ("\ t"); // Serial.print (total3); // Serial.print ("\ t"); // Serial.print (total4); // Serial.print ("\ t"); // Serial.print (total5); // Serial.print ("\ t"); // Serial.println (total6); if (total1> 100 && total1> th) {myMP32.play (1); // Serial.println ("o1"); }
if (total2> 100 && total2> th) {myMP32.play (2); //Serial.println("o2 "); }
if (total3> 100 && total3> th) {
myMP32.play (3); //Serial.println("o3 ");
}
if (total4> 100 && total4> th) {
myMP3.play (1); //Serial.println("o4 ");
}
if (total5> 100 && total5> th) {
myMP3.play (2); //Serial.println("o5 ");
}
if (total6> 100 && total6> th) {
myMP3.play (3); //Serial.println("o6 ");
} // gör inget försenat (1); }
Steg 8: Sätt in ljuden i minneskort
Nu kan du ladda dina ljud i micro SD -korten
Formatet måste vara 44,1 kHz och 16 bitars wav
Du måste ladda upp 3 ljud på varje SD -kort.
Steg 9: Gränssnittet
För närvarande kan du redan köra din provtagare med dynor i kretskortet, men du har fortfarande möjlighet att anpassa den, välja ett fodral och olika föremål eller metallytor att använda som sensorer.
I detta fall använde jag 3 handledshuvuden som jag satte metallskruvar till som ett metallkontaktljud.
För detta, anslut skruvarna till kortets stift med hjälp av kablar.
Du kan använda valfritt metallföremål, ledande tejp eller experimentera med ledande bläck.