Sisällysluettelo:
Video: Arduino -palapelirasia: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Tätä projektia varten aiomme tehdä palapelirasian, joka toimii musiikin kanssa. Perusajatuksena on, että kun painat painiketta, se vapauttaa virityksen ja Arduino laskee painikkeita, jotta se tietää, mikä on oikea ja mikä on väärä vastaus.
Tarvikkeet
1 x Arduino uno
1 x 1 k ohmin vastus
5 x 220 ohmin vastukset
1 x pietsosummeri
5 x painike 6x6 mm
1 x sarja hyppyjohdot
1 x perf/strip -levy
1 x juotosarja
1 x sarana
1 x puristin
1 x pieni lipasto/puu
1x kuuma liimapistooli + liimapuikot
1 x 9v paristo + pidike
vähän hommaa
maali-
Vaihe 1:
Aluksi sinun on painettava nastat leipälautaan. Liitä nyt analoginen 2 johdolla kortin kulmaan. Yhdistämme siihen kaksi vastusta rivillä. Ensimmäinen on 10 k ohmin vastus. Tämän vastuksen toiseen päähän liitämme johdon analogiseen maahan. Toinen vastus on 220 ohmin vastus, jonka yhdistämme ensimmäiseen painikkeeseen. Käytä toista samanarvoista vastusta liittääksesi painikkeen toisen avoimen puolen toiseen painikkeeseen. Jatka tällaisten painikkeiden yhdistämistä viimeiseen. Viimeisessä tartut lankaan ja liität sen vastaavaan suljettuun puoleen ja kytket sen seuraavaan. Toistat nyt prosessin, jonka teit vain vastuilla, jotka tiedät vain tavallisilla johtimilla. Liitä ensimmäinen painike Arduinon analogiseen 3, 3 V -porttiin. Kaiken kaikkiaan saat jonkinlaisen ristipatruunan, kuten alla on kuvattu.
Vaihe 2:
Liitä seuraavaksi summeri leipälautaan ja kiinnitä toinen puoli digitaaliseen maahan ja toinen 12 -porttiin. On järkevää ladata seuraava koodi jo Arduinoosi, jotta voit testata, toimiiko kaikki oikein. Jos näin on, voit aloittaa komponenttien juottamisen yhteen. Tee tämä ottamalla ne ulos leipälevyltä ja juottamalla johdot ja liitännät suoraan yhteen. Jos luulet tarvitsevasi enemmän pituutta painikkeiden välissä, voit lisätä ylimääräistä johtoa vastusten väliin. Leipälauta ei ole enää tarpeen tässä vaiheessa.
Vaihe 3:
Kun kaikki on juotettu, on aika tehdä laatikko itse. Käytin pohjana halpaa laatikkoa. Leikkasin vain puoliksi pituussuunnassa ja poistin selän ja sen sivun, jonka leikkain. Sinulla pitäisi olla nyt kaksi c -muotoista kappaletta. Leikkaa toisesta yksi sivu käytettäväksi kannena. Kierrä nyt yksi jäljellä olevista kappaleista niin, että ne sopivat yhteen kuin kanneton laatikko ja liimaa ne yhteen. Kun liima on kovettunut kunnolla, poraa laatikon kummallekin puolelle pieni reikä painikkeille ja suurempi reikä kannen summerille.
Vaihe 4:
Nyt voit maalata laatikon. Tein omani BOTW -pohjaiseen kukkakuvioon, mutta voit todella valita minkä tahansa haluamasi mallin. Kun tämä on tehty, voit laittaa napit reikien sisään ja laittaa liimapalloa napin takaosaan ja ympäröivään puuhun. Sama periaate koskee summeria, mutta omani sopivat täydellisesti reikään, mikä tekee siitä tarpeettoman. Seuraavaksi nappaat worblaa ja lämmität ja leikataan se, jotta voidaan tehdä pieniä painikkeita. Liimaa ne varovasti nappeihin, mutta älä käytä liikaa liimaa, koska saatat vahingossa saada painikkeet kiinni. Nyt voit maalata ne päälle, jotta ne sulautuvat paremmin laatikkoon.
Vaihe 5:
Lopuksi liimaat tai ruuvit, puristin ja saranat laatikossa ja kannessa, jotka yhdistävät nämä kaksi.
Vaihe 6:
Nyt kun laatikkosi on valmis, sinun tarvitsee vain laittaa Arduino ja akku sen sisään ja sulkea kansi.
Vaihe 7: Koodi
// Tämä on Zelda -aiheisen palapelin/musiikkilaatikon koodi.
// tämä yhdistää koodisi muistiinpanojen luetteloon toisessa välilehdessä
#include "pitches.h"
// tämä muuttuja varmistaa, että Arduino näkee painikkeen pidemmän painalluksen vain yhdellä painalluksella
int sama = 0;
// täältä se lukee syötteesi
int k = 2;
// tämä on lähtönasi
int kaiutin = 12;
// alla ovat lopun melodiat
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_D5, NOTE_C5, NOTE_B4, NOTE_A5};
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_G4, NOTE_E4, NOTE_D4, 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};
// nuotin normaali kesto
int BEATTIME = 300;
// laskuri, jota seurataan, jos olemme ratkaisussa
int kertoja = 0;
void setup () {
Sarja.alku (9600);
pinMode (2, TULO);
pinMode (1, TULO);
}
void loop () {
// lukee syötteen nastoista
k = analoginen (2);
int p = analoginenLue (1);
// jos mitään painiketta ei paineta, äänimerkkiä ei pitäisi olla
jos (kertoja == 0) {
noTone (12);
}
// jos luetut tiedot vastaavat parametreja, suorita kuvattu koodibitti
jos (k> 320 && k <350) {
rechts ();
}
//""
muuten jos (k 290) {
linkit ();
}
//""
muuten jos (k> 260 && k <280) {
boven ();
}
//""
muuten jos (k> 240 && k <260) {
onder ();
}
//""
muuten jos (k> 220 && k <240) {
a ();
}
// jos ei, (kun mitään painiketta ei paineta), suorita tämä koodi
muu {
// nollaa sama, jotta sitä voidaan käyttää seuraavan kerran, kun painiketta painetaan
sama = 0;
// jos laskuri on tiettyyn numeroon asti, suorita kuvattu koodibitti
jos (kertoja == 166) {
zelda ();
}
//""
muuten jos (kertoja == 386) {
saria ();
}
//""
muuten jos (teller == 266) {
epona ();
}
//""
muuten jos (teller == 999) {
// toista tämä sävy virheen merkitsemiseksi
ääni (kaiutin, NOTE_C3, BEATTIME);
// nollaa laskuri arvoon 0
kertoja = 0;
}
}
// tulon ja lähdön välinen viive
viive (100);
// tulostaa syöttämäsi arvot sarjamonitorissa
Sarja.println (k);
}
// tämä on ensimmäinen melodia
void zelda () {
// tämä asettaa laskurin, joka päivittää itsensä melodian toiston aikana, jotta se voi lukea sen ja lopettaa sen, kun sen pitäisi
for (int i = 0; i <sizeof (Zelda); i ++) {
// kertoo kuinka kauan muistiinpanon pitäisi kestää
int ZTime = 1000 / ZeldaTime ;
// luo sävyt
ääni (kaiutin, Zelda , ZTime);
// luo oikean viiveen
int tauko = ZTime * 1.30;
viive (tauko);
// nollaa laskurin
kertoja = 0;
// tulostaa syöttämäsi arvot sarjamonitorissa
Serial.println (teller);
}
}
//""
void epona () {
for (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
ääni (kaiutin, Epona , ETime);
int tauko = ETime * 1.30;
viive (tauko);
kertoja = 0;
Serial.println (teller);
}
}
//""
void saria () {
for (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
ääni (kaiutin, Saria , STime);
int tauko = STime * 1,30;
viive (tauko);
kertoja = 0;
Serial.println (teller);
}
}
mitätön rec
hts () {
// jos tätä ei ole jo painettu
jos (sama == 0) {
// jos laskurilla on tällä hetkellä jokin näistä arvoista, lisää tämä siihen
jos (teller == 0 || teller == 132 || teller == 165 || teller == 232 || teller == 265 || teller == 331 || teller == 374) {
kertoja = teller + 1;
}
// Muussa tapauksessa aseta se 999: ksi, jotta kuulet virhekohinan
muu {
kertoja = 999;
}
// aseta sama yhdeksi, jotta Arduino ei lue pitkää painallusta useina painalluksina
sama = 1;
}
// soita sävy
muu {
ääni (kaiutin, NOTE_A4, BEATTIME);
}
// tulostaa syöttämäsi arvot sarjamonitorissa
Serial.println (teller); }
//""
tyhjät linkit () {
jos (sama == 0) {
jos (teller == 133 || teller == 254 || teller == 244 || teller == 332 || teller == 375 || teller == 221) {
kertoja = teller + 11;
}
muuten jos (kertoja == 0) {
kertoja = 111;
}
muu {
kertoja = 999;
}
sama = 1;
} muuta {
ääni (kaiutin, NOTE_B4, BEATTIME);
} Sarja.println (kertoja);
}
//""
void boven () {
jos (sama == 0) {jos (teller == 111 || teller == 144 || teller == 233) {
kertoja = teller + 21;
}
muuten jos (kertoja == 0) {
kertoja = 221;
}
muu {
kertoja = 999;
}
sama = 1;
}
muu {
ääni (kaiutin, NOTE_D5, BEATTIME);
Serial.println (teller);
}
}
//""
void onder () {
jos (sama == 0) {
jos (kertoja == 343) {
kertoja = teller + 31;
}
muuten jos (kertoja == 0) {
kertoja = 331;
} muuta {
kertoja = 999;
} sama = 1;
} muuta {
ääni (kaiutin, NOTE_F4, BEATTIME);
Serial.println (teller);
}
}
//""
mitätön a () {
jos (sama == 0) {
jos (kertoja == 0) {
kertoja = 461;
}
muu {
kertoja = 999;
}
sama = 1;
}
ääni (kaiutin, NOTE_D4, BEATTIME);
Serial.println (teller);
}
Suositeltava:
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen
Halvin Arduino -- Pienin Arduino -- Arduino Pro Mini -- Ohjelmointi -- Arduino Neno: 6 vaihetta (kuvilla)
Halvin Arduino || Pienin Arduino || Arduino Pro Mini || Ohjelmointi || Arduino Neno: …………………………. Tilaa YouTube -kanavani saadaksesi lisää videoita ……. Tässä projektissa keskitytään kaikkien aikojen pienimpään ja halvinan arduinoon. Pienin ja halvin arduino on arduino pro mini. Se muistuttaa arduinoa