INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Geskep deur: Haotian Ye
Oorsig
Dit is 'n klavierbord met agt drukknopskakelaars waarmee u een oktaaf (Do Re Mi Fa So La Si Do) kan speel, en met hierdie een oktaaf kan u 'n paar liedjies probeer speel waarvan u hou. Vir hierdie projek is daar 'n paar belangrike kennis wat u moet weet voordat u begin.
Eerstens moet ons die frekwensies van basnote van 'n klavier ken.
Die frekwensies word hieronder gelys:
Doen - 261Hz
Herhaling - 294 Hz
Mi - 329Hz
Fa - 349Hz
Dus - 392Hz
La - 440Hz
Si - 493Hz
Doen - 523Hz
Tweedens sal ek u wys hoe u die kring kan bou deur die onderdele te gebruik wat u by Lee's Electronic Store kan koop. Uiteindelik , sal ek die kode wat op die Arduino -bord opgelaai moet word, aanbied en verduidelik.
Onderdele wat u benodig:
Arduino Uno R3 (produk -ID: 10997)
USB A tot B -kabel M/M (produk -ID: 29861)
10K weerstand * 8 (produk -ID: 91516)
Verskillende kleure van klepskakelaar * 8 (produk -ID: 3124, 31242, 31243, 31245, 31246)
Mini luidspreker (produk -ID: 41680)
Broodbord (produk -ID: 106861)
Jumper Wires (Produk ID: 21801)
Stap 1: Stap 1: Bou die kring
Plaas eers al die drukknopskakelaars en mini -luidspreker een vir een op die broodbord en pas dit op een ry. Koppel dan die penne van elke drukknopskakelaar aan die grond. Koppel tweedens 10k weerstande tussen positiewe krag en die ander penne van elke drukknopskakelaar. Koppel hierdie kolom aan penne 2-9 op Arduino Board. Koppel ook die grond aan die grondpen en die positiewe krag op die 3.3v -pen op Arduino. Koppel laastens die mini -luidspreker aan die pen 10 op Arduino.
Stap 2: Stap 2: Kode en verduideliking
Die onderstaande kode is wat ek geskryf het
const int swart = 2;
const int wit = 3;
const int rooi = 4;
const int groen = 5;
const int blou = 6;
const int black2 = 7;
const int green2 = 8;
const int red2 = 9;
const int speaker = 10; // Koppel alle drukknopskakelaars en luidsprekers met die seinpenne van arduino
int frekwensie = {262, 294, 330, 349, 392, 440, 493, 523}; // skikking bevat alle frekwensies van een oktaaf
ongeldige opstelling () {
// plaas u opstellingskode hier om een keer te werk:
pinMode (swart, INVOER);
pinMode (wit, INVOER);
pinMode (rooi, INVOER);
pinMode (groen, INVOER);
pinMode (blou, INVOER);
pinMode (black2, INPUT);
pinMode (groen2, INVOER);
pinMode (rooi2, INVOER);
pinMode (luidspreker, UITGANG);
toon (spreker, 2000);
Serial.begin (9600);
}
leemte -lus () {
// plaas u hoofkode hier om herhaaldelik te werk:
if (digitalRead (black) == LOW) // as u op die "DO" drukknopskakelaar druk
{toon (luidspreker, frekwensie [0], 50);
vertraging (50);
noTone (spreker);}
anders as (digitalRead (white) == LOW) // as u op die "RE" drukknoppie skakelaar druk
{toon (luidspreker, frekwensie [1], 50);
vertraging (50);
noTone (spreker);}
anders as (digitalRead (rooi) == LOW) // as u op die "MI" drukknopskakelaar druk
{toon (spreker, frekwensie [2], 50);
vertraging (50);
noTone (spreker);}
anders as (digitalRead (groen) == LOW) // as u op die drukknoppie "FA" druk
{toon (luidspreker, frekwensie [3], 50);
vertraging (50);
noTone (spreker);}
anders as (digitalRead (blou) == LOW) // as u op die "SO" drukknoppie skakelaar druk
{toon (luidspreker, frekwensie [4], 50);
vertraging (50);
noTone (spreker);}
anders as (digitalRead (black2) == LOW) // as u op die drukknoppie "LA" druk
{toon (luidspreker, frekwensie [5], 50);
vertraging (50);
noTone (spreker);}
anders as (digitalRead (green2) == LOW) // as u op die "SI" drukknoppie skakelaar druk
{toon (spreker, frekwensie [6], 50);
vertraging (50);
noTone (spreker);}
anders as (digitalRead (red2) == LOW) // as u op die "DO" drukknoppie skakelaar druk
{toon (luidspreker, frekwensie [7], 50);
vertraging (50);
noTone (spreker);}
anders // as u niks druk nie
noTone (spreker);
}
Eerstens moet ons alle drukknopskakelaars en luidsprekers as die pen van 2 tot 10 op Arduino verklaar. Elke skakelaar verteenwoordig 'n noot. Gebruik dan een skikking om al die frekwensies binne te plaas. Vervolgens is die verklaring If and else wat ek gebruik om Arduino te laat weet watter drukknopskakelaar ek druk.
Koppel laastens u Arduino -kaart met u rekenaar of skootrekenaar met 'n usb A tot B -kabel. Voordat u u kode oplaai, moet u steeds die Arduino -sagteware aflaai en 'n standaardinstelling doen. Kies Tools -> Board -> Arduino/Genuino Uno; Dan moet ons die kommunikasiepoort kies wat gekoppel is aan die Arduino -bord. Kies Gereedskap -> Poort, en dan is die poortnaam ook gemerk "(Arduino/Genuino Uno)." Dan kan u die kode na die Arduino -bord laai.