Kazalo:
Video: Arduino sestavljanka: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Za ta projekt bomo izdelali sestavljanko, ki deluje z glasbo. Osnovni bistvo tega je, da ob pritisku na gumb sprosti melodijo in Arduino izračuna, kateri gumbi so pritisnjeni, tako da ve, kaj je pravi in kaj napačen odgovor.
Zaloge
1 x Arduino uno
1 x 1k ohmski upor
5 x 220 ohmski upori
1 x zvočnik Piezo
5 x gumb 6x6 mm
1 x nastavljene mostične žice
1 x perf/deska
1 x set za spajkanje
1 x tečaj
1x sponka
1 x majhna komoda/les
1x pištola za vroče lepilo + lepilne palice
1 x 9v baterija + držalo
malo worbla
barve
Korak 1:
Za začetek morate pritisniti zatiče na ploščo. Zdaj povežite analog 2 z žico na vogal plošče. Na to bomo v linijo priključili dva upora. Prvi je 10k ohmski upor. Na drugi konec tega upora priključimo žico na analogno ozemljitev. Drugi upor je 220 ohmski upor, ki ga povežemo s prvim gumbom. Za povezavo druge odprte strani gumba z drugim gumbom uporabite drug upor iste vrednosti. Povežite takšne gumbe do zadnjega. Na zadnjem primete žico in jo povežete z ustrezno zaprto stranjo gumba ter jo povežete z naslednjo v vrsti. Zdaj ponovite postopek, ki ste ga izvedli z upori, ki jih poznate le z navadnimi žicami. Prvi gumb povežite z analognimi 3, 3V vrati na vašem Arduinu. Vse skupaj boste dobili nekakšno križno podobo, kot je prikazano spodaj.
2. korak:
Nato priključite zvočni signal na ploščo in pritrdite eno stran na digitalno ozemljitev, drugo pa na vrata 12. Pametno je, da naslednjo kodo že naložite v svoj Arduino, da lahko preizkusite, ali vse deluje pravilno. Če je tako, lahko začnete spajkati komponente skupaj. To naredite tako, da jih vzamete iz plošče in žice in povezave neposredno spajkate. Če menite, da med gumbi potrebujete več dolžine, lahko med upore dodate nekaj dodatne žice. Okvir na tej točki ni več potreben.
3. korak:
Ko je vse spajkano, je čas za izdelavo same škatle. Za podlago sem uporabil poceni komplet predalov. Preprosto sem prerezal na pol po dolžini in odstranil hrbet in stran, ki sem jo prerezal. Zdaj bi morali imeti dva kosa v obliki črke c. Odrežite eno stran enega od njih, da ga uporabite kot pokrov. Zdaj zavrtite enega od preostalih kosov, tako da se prilegajo skupaj kot škatla brez pokrovov, in jih zlepite skupaj. Ko se lepilo pravilno strdi, izvrtajte majhno luknjo na vsaki strani škatle za gumbe in večjo za zvočni signal v pokrovu.
4. korak:
Zdaj lahko začnete slikati škatlo. Jaz sem naredil svoj s cvetličnim dizajnom, ki temelji na BOTW, vendar lahko resnično izberete poljuben dizajn. Ko to storite, lahko gumbe vstavite v luknje in nalepite globino lepila na zadnjo stran gumba in les v okolici. Enako načelo velja za zvočni signal, vendar se moj popolnoma prilega luknji, zaradi česar ni potreben. Nato vzamete nekaj worble in segrejte ter ga razrežite, da naredite nekaj majhnih gumbov. Previdno jih prilepite na gumbe, vendar pazite, da ne uporabite preveč lepila, ker se vam lahko gumbi pomotoma zataknejo. Sedaj jih lahko pobarvate, da se bodo bolj zlili s škatlo.
5. korak:
Na koncu lepite ali privijte objemko in tečaje na škatli in pokrovu, ki povezuje oba.
6. korak:
Zdaj, ko je škatla končana, morate vstaviti Arduino in baterijo v notranjost ter zapreti pokrov.
7. korak: Koda
// To je koda za uganko/glasbeno skrinjico na temo Zelda.
// to poveže vašo kodo s seznamom beležk na drugem zavihku
#include "pitches.h"
// ta spremenljivka bo zagotovila, da Arduino vidi daljši pritisk gumba kot samo en pritisk
int enako = 0;
// tukaj bo prebral vaš vnos
int k = 2;
// to je vaš izhodni pin
int zvočnik = 12;
// spodaj so zaključne melodije
int Zelda = {NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A5, NOTE_G5, NOTE_5, NOTE_5, NOTE5
int ZeldaTime = {2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2};
int Epona = {NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_B4, NOTE_A4};
int EponaTime = {4, 4, 1.5, 4, 4, 1.5, 4, 4, 2, 2, 1};
int Saria = {NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_E5, NOTE_D5, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_ NOTE_ NOTE_ NOTE_4
int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// normalno trajanje zapiska
int BEATTIME = 300;
// števec, ki ga bomo spremljali, če smo v rešitvi
int števec = 0;
void setup () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
void loop () {
// bere vnos iz zatičev
k = analogRead (2);
int p = analogRead (1);
// če ni pritisnjen noben gumb, ne sme biti tona
če (teller == 0) {
noTone (12);
}
// če odčitani podatki ustrezajo parametrom, zaženite opisani bit kode
če (k> 320 && k <350) {
rechts ();
}
//""
sicer če (k 290) {
povezave ();
}
//""
sicer če (k> 260 && k <280) {
boven ();
}
//""
sicer če (k> 240 && k <260) {
onder ();
}
//""
sicer če (k> 220 && k <240) {
a ();
}
// če se ne (ko ni pritisnjen noben gumb), zaženite to kodo
drugače {
// ponastavi isto, tako da jo lahko uporabite naslednjič, ko pritisnete gumb
enako = 0;
// če je števec do določenega števila, zaženite opisani bit kode
če (teller == 166) {
zelda ();
}
//""
sicer če (teller == 386) {
saria ();
}
//""
sicer če (teller == 266) {
epona ();
}
//""
sicer če (teller == 999) {
// predvajamo ta ton, da označimo napako
ton (zvočnik, NOTE_C3, BEATTIME);
// ponastavimo števec na 0
blagajnik = 0;
}
}
// zakasnitev med vhodom in izhodom
zamuda (100);
// natisne vrednosti vašega vnosa na serijskem monitorju
Serial.println (k);
}
// to je prva melodija
void zelda () {
// s tem nastavimo števec, ki se med predvajanjem melodije posodobi, tako da jo lahko prebere in ustavi, ko se mora
for (int i = 0; i <sizeof (Zelda); i ++) {
// pove, kako dolgo naj traja zapisek
int ZTime = 1000 / ZeldaTime ;
// ustvarja tone
ton (zvočnik, Zelda , ZTime);
// ustvari pravilno zakasnitev
int pause = ZTime * 1,30;
zamuda (premor);
// ponastavi števec
blagajnik = 0;
// natisne vrednosti vašega vnosa na serijskem monitorju
Serial.println (blagajnik);
}
}
//""
void epona () {
for (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
ton (zvočnik, Epona , ETime);
int pause = ETime * 1,30;
zamuda (premor);
blagajnik = 0;
Serial.println (blagajnik);
}
}
//""
void saria () {
for (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
ton (govornik, Saria , STime);
int pause = STime * 1,30;
zamuda (premor);
blagajnik = 0;
Serial.println (blagajnik);
}
}
void rec
hts () {
// če to še ni bilo pritisnjeno
če (enako == 0) {
// če števec trenutno vsebuje eno od teh vrednosti, mu to dodajte
če (teller == 0 || teller == 132 || teller == 165 || teller == 232 || teller == 265 || teller == 331 || bančnik == 374) {
blagajnik = števec + 1;
}
// drugače nastavite na 999, da slišite hrup napake
drugače {
blagajnik = 999;
}
// nastavite enako na eno, tako da Arduino ne bere daljšega tiska kot večkratnih pritiskov
enako = 1;
}
// predvajajte ton
drugače {
ton (zvočnik, NOTE_A4, BEATTIME);
}
// natisne vrednosti vašega vnosa na serijskem monitorju
Serial.println (blagajnik); }
//""
void links () {
če (enako == 0) {
če (teller == 133 || teller == 254 || teller == 244 || teller == 332 || teller == 375 || bančnik == 221) {
blagajnik = blagajnik + 11;
}
sicer če (teller == 0) {
blagajnik = 111;
}
drugače {
blagajnik = 999;
}
enako = 1;
} drugo {
ton (zvočnik, NOTE_B4, BEATTIME);
} Serial.println (blagajnik);
}
//""
void boven () {
if (enako == 0) {if (teller == 111 || teller == 144 || teller == 233) {
blagajnik = blagajnik + 21;
}
sicer če (teller == 0) {
blagajnik = 221;
}
drugače {
blagajnik = 999;
}
enako = 1;
}
drugače {
ton (zvočnik, NOTE_D5, BEATTIME);
Serial.println (blagajnik);
}
}
//""
void onder () {
če (enako == 0) {
če (teller == 343) {
blagajnik = blagajnik + 31;
}
sicer če (teller == 0) {
blagajnik = 331;
} drugo {
blagajnik = 999;
} enako = 1;
} drugo {
ton (zvočnik, NOTE_F4, BEATTIME);
Serial.println (blagajnik);
}
}
//""
void a () {
če (enako == 0) {
če (teller == 0) {
blagajnik = 461;
}
drugače {
blagajnik = 999;
}
enako = 1;
}
ton (zvočnik, NOTE_D4, BEATTIME);
Serial.println (blagajnik);
}
Priporočena:
Števec korakov - mikro: Bit: 12 korakov (s slikami)
Števec korakov - Micro: Bit: Ta projekt bo števec korakov. Za merjenje korakov bomo uporabili senzor pospeška, ki je vgrajen v Micro: Bit. Vsakič, ko se Micro: Bit trese, bomo štetju dodali 2 in ga prikazali na zaslonu
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): 8 korakov
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): ultrazvočni pretvorniki zvoka L298N Dc ženski adapter z napajalnim vtičem za enosmerni tok Arduino UNOBreadboard Kako to deluje: Najprej naložite kodo v Arduino Uno (to je mikrokrmilnik, opremljen z digitalnim in analogna vrata za pretvorbo kode (C ++)
Merilnik korakov 1. del: Enobarvni zaslon 128x32 in Arduino: 5 korakov
Pedometer 1. del: Enobarvni zaslon 128x32 in Arduino: To je osnovna vadnica, ki uči, kako uporabljati zaslon OLED s svojim Arduinom. Uporabljam zaslon velikosti 128x32, lahko pa uporabite tudi drugačen zaslon z ločljivostjo in po potrebi spremenite ločljivost/koordinate. V tem delu vam bom pokazal, kako
LED sestavljanka (akrilni laserski rez): 7 korakov (s slikami)
LED sestavljanka (akrilni laserski rez): Vedno sem užival v različnih akrilnih laserskih nočnih lučkah, ki so jih izdelali drugi. Ko sem razmišljal o teh stvareh, sem mislil, da bi bilo super, če bi se lahko nočna lučka podvojila tudi kot oblika zabave. S tem mislim sem se odločil ustvariti
Najcenejši Arduino -- Najmanjši Arduino -- Arduino Pro Mini -- Programiranje -- Arduino Neno: 6 korakov (s slikami)
Najcenejši Arduino || Najmanjši Arduino || Arduino Pro Mini || Programiranje || Arduino Neno: …………………………. PRIJAVITE SE na moj YouTube kanal za več videov ……. .Ta projekt govori o tem, kako povezati najmanjši in najcenejši arduino doslej. Najmanjši in najcenejši arduino je arduino pro mini. Podobno je arduinu