
Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02


Laget av: Haotian Ye
Oversikt
Dette er et pianobrett med åtte trykknappbrytere som lar deg spille en oktav (Do Re Mi Fa So La Si Do), og med denne oktaven kan du prøve å spille noen sanger du liker. For dette prosjektet er det noen viktige kunnskaper du trenger å vite før du starter.
Først må vi kjenne frekvensene til grunnnotene til et piano.
Frekvensene er listet opp nedenfor:
Gjør - 261Hz
Re - 294Hz
Mi - 329Hz
Fa - 349Hz
Så - 392Hz
La - 440Hz
Si - 493Hz
Gjør - 523Hz
For det andre vil jeg vise deg hvordan du bygger kretsen ved å bruke delene som kan kjøpes fra Lees elektroniske butikk. Til slutt , Jeg vil presentere og forklare koden som må lastes opp på Arduino -kortet.
Deler du trenger:
Arduino Uno R3 (produkt -ID: 10997)
USB A til B -kabel M/M (produkt -ID: 29861)
10K motstand * 8 (produkt -ID: 91516)
Ulike farger på takkebryter * 8 (produkt -ID: 3124, 31242, 31243, 31245, 31246)
Minihøyttaler (produkt -ID: 41680)
Brødbrett (produkt -ID: 106861)
Jumper Wires (Produkt -ID: 21801)
Trinn 1: Trinn 1: Bygg kretsen




Sett først inn alle trykknappbryterne og minihøyttaleren på brødbrettet en etter en, og match dem på en rad. Koble deretter pinnene til hver trykknappbryter til bakken. Koble deretter 10k motstander mellom positiv effekt og de andre pinnene på hver trykknappbryter. Og koble denne kolonnen til pinne 2-9 på Arduino Board. Koble også bakken til jordpinnen og positiv strøm til 3,3v pinne på Arduino. Til slutt kobler du minihøyttaleren til pinnen 10 på Arduino.
Trinn 2: Trinn 2: Kode og forklaring
Koden nedenfor er det jeg skrev
const int svart = 2;
const int hvit = 3;
const int rød = 4;
const int grønn = 5;
const int blå = 6;
const int black2 = 7;
const int green2 = 8;
const int red2 = 9;
const int speaker = 10; // Koble alle trykknappbrytere og høyttalere med arduinos signalpinner
int frekvens = {262, 294, 330, 349, 392, 440, 493, 523}; // array inneholder alle frekvenser på en oktav
ugyldig oppsett () {
// legg oppsettskoden her for å kjøre en gang:
pinMode (svart, INNGANG);
pinMode (hvit, INNGANG);
pinMode (rød, INNGANG);
pinMode (grønn, INNGANG);
pinMode (blå, INNGANG);
pinMode (black2, INPUT);
pinMode (grønn2, INNGANG);
pinMode (red2, INPUT);
pinMode (høyttaler, OUTPUT);
tone (høyttaler, 2000);
Serial.begin (9600);
}
void loop () {
// legg hovedkoden her for å kjøre gjentatte ganger:
hvis (digitalRead (svart) == LAV) // når du trykker på "DO" -bryteren
{tone (høyttaler, frekvens [0], 50);
forsinkelse (50);
noTone (høyttaler);}
ellers hvis (digitalRead (hvit) == LAV) // når du trykker på knappen "RE"
{tone (høyttaler, frekvens [1], 50);
forsinkelse (50);
noTone (høyttaler);}
ellers hvis (digitalRead (rød) == LAV) // når du trykker på "MI" trykknappbryteren
{tone (høyttaler, frekvens [2], 50);
forsinkelse (50);
noTone (høyttaler);}
ellers hvis (digitalRead (grønn) == LAV) // når du trykker på "FA" trykknappbryteren
{tone (høyttaler, frekvens [3], 50);
forsinkelse (50);
noTone (høyttaler);}
ellers hvis (digitalRead (blå) == LAV) // når du trykker på knappen "SO"
{tone (høyttaler, frekvens [4], 50);
forsinkelse (50);
noTone (høyttaler);}
ellers hvis (digitalRead (black2) == LOW) // når du trykker på "LA" trykknappbryteren
{tone (høyttaler, frekvens [5], 50);
forsinkelse (50);
noTone (høyttaler);}
ellers hvis (digitalRead (green2) == LOW) // når du trykker på "SI" trykknappbryteren
{tone (høyttaler, frekvens [6], 50);
forsinkelse (50);
noTone (høyttaler);}
ellers hvis (digitalRead (red2) == LOW) // når du trykker på "DO" trykknappbryteren
{tone (høyttaler, frekvens [7], 50);
forsinkelse (50);
noTone (høyttaler);}
annet // når du ikke trykker på noe
noTone (høyttaler);
}
Først må vi deklarere alle trykknappbrytere og høyttalere som pinnen fra 2 til 10 på Arduino. Hver bryter representerer én note. Bruk deretter en matrise for å sette alle frekvensene inne. Deretter er If and else -uttalelsen det jeg bruker for å la Arduino vite hvilken trykknappbryter jeg trykker på.
Til slutt kobler du Arduino -kortet til datamaskinen eller den bærbare datamaskinen med usb A til B -kabel. Før du laster opp koden din, må du fortsatt laste ned Arduino -programvare og gjøre noen standardinnstillinger. Velg Verktøy -> Brett -> Arduino/Genuino Uno; Deretter må vi velge kommunikasjonsporten som er koblet til Arduino -kortet. Velg Verktøy -> Port, og deretter det portnavnet som er merket "(Arduino/Genuino Uno)." Deretter kan du laste opp koden til Arduino -kortet.
Anbefalt:
Raspberry Pi -eske med kjølevifte med CPU -temperaturindikator: 10 trinn (med bilder)

Raspberry Pi-eske med kjølevifte med CPU-temperaturindikator: Jeg hadde introdusert bringebær pi (heretter som RPI) CPU-temperaturindikatorkrets i det forrige prosjektet. Kretsen viser ganske enkelt RPI 4 forskjellige CPU-temperaturnivå som følger.- Grønn LED ble slått på når CPU -temperaturen er innenfor 30 ~
Gratulerer med dagen med vannsynthesizer med MakeyMakey og Scratch: 5 trinn

Gratulerer med dagen på vannsynthesizer med MakeyMakey og Scratch: I stedet for blomster og sang kan du bygge denne installasjonen som en stor overraskelse for bursdager
Plattformspill med uendelige nivåer på GameGo med Makecode Arcade: 5 trinn (med bilder)

Plattformspill med uendelige nivåer på GameGo med Makecode Arcade: GameGo er en Microsoft Makecode -kompatibel retro spillkonsoll utviklet av TinkerGen STEM education. Den er basert på STM32F401RET6 ARM Cortex M4 -brikken og laget for STEM -lærere eller bare folk som liker å ha det gøy med å lage retro videospill
PWM Med ESP32 - Dimmende LED med PWM på ESP 32 Med Arduino IDE: 6 trinn

PWM Med ESP32 | Dimmende LED med PWM på ESP 32 Med Arduino IDE: I denne instruksen vil vi se hvordan du genererer PWM -signaler med ESP32 ved hjelp av Arduino IDE & PWM brukes i utgangspunktet til å generere analog utgang fra hvilken som helst MCU, og den analoge utgangen kan være alt mellom 0V til 3,3V (i tilfelle esp32) & fra
Teppe med sensorer/ RF -kommunikasjon med Arduino Micro: 4 trinn (med bilder)

Teppe med sensorer/ RF -kommunikasjon med Arduino Micro: Jeg avsluttet nylig installasjonen Like variert, som er laget av en serie lamper som reagerer på sensorene plassert i et teppe under lampene. Her er hvordan jeg laget teppet med trykksensorer. Jeg håper du finner det nyttig