
Orodha ya maudhui:
2025 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2025-01-23 15:11

Leo, nitakuonyesha jinsi ya kutengeneza kengele ya mlango kwa kutumia Arduino. Kengele hii ya mlango hucheza tune kutoka kwa maktaba ya nyimbo. Unaweza kubadilisha kengele ya mlango wako na uongeze nyimbo zaidi. Isakinishe nje ya chumba chako cha kulala, darasa, ofisi, au hata mlango wako wa mbele!
Ugavi:
- Arduino Uno (aina nyingine nyingi zitafanya)
- Kompyuta na Arduino IDE ya programu
- USB-A kwa kebo ya USB-B kwa programu ya Arduino
- Bodi ya mkate
- Waya 4 za kuruka
- Pushbutton au swichi nyingine
- 10 kOhm Resistor
- Buzzer ya kupita (i.e. spika ya umeme)
-
Kwa usanikishaji wa kudumu:
- Ugavi wa Nguvu ya 9V DC au 9V betri kuwezesha Arduino
- Waya 2x ndefu kwa kifungo cha wiring nje ya mlango
Hatua ya 1: Usanidi wa vifaa



Kwanza, tutaanzisha vifaa. Tutaanza na buzzer ya kupita (i.e. spika). Tunataka kuunganisha mwisho mzuri wa buzzer isiyo na maana (iliyoashiria "" "ishara) kwa pini ya dijiti 8 kwenye Arduino. Tutaunganisha mwisho mwingine wa buzzer ya kupita kwenye ardhi.
Ifuatayo, tutaweka kitufe cha kushinikiza kwa kengele ya mlango. Tutatumia kontena ya nje ya chini ya 10 kOhm kwa swichi, kwa hivyo hakuna voltage inayoelea au hali isiyo na msimamo kwenye pembejeo kwa Arduino. Kwa kutumia kontena la kusukuma chini, Arduino inasoma voltage kama 0V wakati kitufe hakijabanwa na 5V wakati kitufe kinabanwa. Kwa habari zaidi juu ya vidhibiti vya pullup au pulldown, unaweza kusoma nakala hii:
Tutaunganisha upande mmoja wa kitufe cha kusukuma hadi 5V. Upande wa pili wa kitufe cha kushinikiza utaunganishwa ardhini kupitia kontena la 10 kOhm. Kumbuka: vifungo vya kushinikiza vimeunganishwa kwa usawa ndani. Wao ni kushikamana tu kwa wima wakati wa kushinikizwa. Habari zaidi imetolewa katika nakala hii:
Hatua ya 2: Usanidi wa Programu
Nambari yote imeambatanishwa. Chini ni maelezo ya kila moja ya kazi na picha za nambari.
kuanzisha:
Katika kazi ya kuanzisha (), tunataka kusanidi pini za dijiti kwa kitufe chetu na spika yetu. Tunataka kusanidi pini 2 kama pembejeo kwa kitufe chetu, na tunataka kusanidi pini 8 kama pato kwa spika yetu.
Tunataka pia "kuzaa" jenereta yetu ya nambari ya nasibu kwa kuchagua nasibu tune wakati mtu anapiga kengele ya mlango wetu. Kupanda jenereta yetu ya nambari isiyo na maana inamaanisha kulisha pembejeo bila mpangilio. Tutapanda jenereta yetu ya nambari bila mpangilio na thamani ya voltage kwenye pembejeo ya Analog 0. Kwa kuwa hakuna kitu kinachounganishwa na pembejeo hii, kutakuwa na "nasibu", inayobadilika kwa voltage kwenye pini hii ikitoa jenereta yetu ya nambari isiyo ya kawaida na maadili mengi tofauti. Hii inahakikisha kwamba tutakuwa na mpangilio tofauti wa nyimbo za kuchagua kengele yetu ya mlango. Kwa habari zaidi juu ya kazi ya Arduino bila mpangilio (), nenda hapa:
# pamoja na "viwanja."
#jumuisha nyimbo. pinMode (SPEAKER_PIN, OUTPUT); // mbegu random () kazi ili tupate mpangilio tofauti randomSeed (analogRead (0)); }
kitanzi:
Katika kazi yetu ya kitanzi (), tutaendelea kuangalia ikiwa kitufe kinabanwa (pini 2 ya dijiti iko juu). Ikiwa pini iko juu, tunasubiri ms ms 50 na uangalie tena ili kuhakikisha kuwa bado iko juu. Hii inahakikisha kuwa kitufe kimeshinikizwa na haikuwa kelele iliyopotea kwenye pini ya pembejeo ya dijiti inayosababisha chanya bandia.
Mara tu tutakapothibitisha kuwa kitufe kilibonyezwa, tunatumia jenereta ya nambari ya nasibu kuchagua moja ya nyimbo 5 kwa kutumia taarifa ya kubadili. Takwimu za nyimbo hizi zimehifadhiwa katika "songs.h" na habari ya lami imehifadhiwa kwenye "pitches.h". Mara tu tunapochagua wimbo, tunapitisha habari hii kwenye kazi play_song ().
/ * kuu wakati kazi ya kitanzi * /
kitanzi batili () {// angalia ikiwa kitufe kinabanwa ikiwa (digitalRead (BUTTON_PIN) == JUU) {// kuchelewesha ms ms 50 ili kuhakikisha bado imebanwa // inaepuka ucheleweshaji wowote wa upotovu wa kusoma (50); ikiwa (digitalRead (BUTTON_PIN) == JUU) {// nasibu chagua wimbo int song_choice = nasibu (5); // chagua wimbo upi wa kucheza switch (song_choice) {kesi 0: play_song (kukata nyweleLength, kukata nywele, kukata nyweleDurations, kukata nyweleTempo); kuvunja; kesi 1: play_song (marioLength, mario, marioDurations, marioTempo); kuvunja; kesi 2: play_song (miiLength, mii, miiDurations, miiTempo); kuvunja; kesi 3: play_song (hpLength, hp, hpDurations, hpTempo); kuvunja; kesi 4: play_song (takeonmeLength, takeonme, takeonmeDurations, takeonmeTempo); kuvunja; chaguo-msingi: play_song (miiLength, mii, miiDurations, miiTempo); kuvunja; }}}}
cheza_song:
play_song () inachukua hoja 4: idadi kamili ya noti kwenye wimbo, safu kamili ya viunga kwenye wimbo, safu kamili ya muda, na tempo kamili ya wimbo huo. Lazima ueleze kila moja ya haya kwa kila wimbo unayotaka kucheza. Kwa habari zaidi juu ya jinsi ya kutumia kazi za toni za Arduino, unaweza kuangalia mafunzo haya: https://www.arduino.cc/en/Tutorial/ToneMelody. Niliongeza utendakazi juu ya mafunzo haya kwa maelezo yenye doti. Ikiwa thamani katika safu ya muda wa dokezo ni hasi, hiyo inamaanisha kuwa ni dokezo lenye nukta (urefu ni mara 1.5 zaidi).
/ * anacheza wimbo * /
batili play_song (int num_notes, int melody , int noteDurations , int tempo) {// pitia na ucheze noti zote za (int i = 0; i 0) {duration = tempo / noteDurations ; } // ikiwa ni nambari hasi, inamaanisha dokezo lenye nukta toni (SPEAKER_PIN, wimbo , muda); // kutofautisha maelezo, weka muda wa chini kati yao. // muda wa dokezo + 30% unaonekana kufanya kazi vizuri: int pauseBetweenNotes = duration * 1.30; kuchelewesha (pauseBetweenNotes); // simamisha sauti ikicheza: hakuna Toni (SPEAKER_PIN); }}
Mfano wa nyimbo.h:
Chini ni sampuli ya moja ya nyimbo katika "songs.h". Vidokezo ni macros hufafanuliwa katika "pitches.h". Nambari zinahusiana na masafa ya maelezo kwenye hertz (Hz). Muda wa madokezo hufafanuliwa kama: 1 = dokezo zima, 2 = dokezo la nusu, 4 = noti ya robo, 8 = noti ya nane, -4 = noti ya nukta, n.k Urefu ni jumla ya noti kwenye wimbo. Tempo ni mgawanyiko kwa kasi ya wimbo (nambari ya juu inamaanisha tempo polepole). Itabidi ucheze karibu na nambari hii mpaka upate tempo ambayo unapenda.
/ * harry mfinyanzi * /
int hp = {NOTE_D4, NOTE_G4, NOTE_AS4, NOTE_A4, NOTE_G4, NOTE_D5, NOTE_C5, NOTE_A4, NOTE_G4, NOTE_AS4, NOTE_A4, NOTE_F4, NOTE_GS4, NOTE_D4}; int hpDurations = {4, -4, 8, 4, 2, 4, -2, -2, -4, 8, 4, 2, 4, 1}; int hpUrefu = 14; int hpTempo = 1050;
Hatua ya 3: Tweaks
Ongeza nyimbo zaidi! Fuata fomati iliyoonyeshwa kwenye "songs.h" na utumie mafunzo kwa msaada: https://www.arduino.cc/en/Tutorial/ToneMelody. Kwa kila wimbo mpya unaongeza, kumbuka kuongeza kesi mpya kwenye taarifa ya kubadili na kuongeza idadi kubwa ambayo inaweza kuzalishwa na kazi yako ya nasibu (). Furaha ya kuweka alama!
Hatua ya 4: Miradi zaidi
Kwa miradi zaidi, tembelea kurasa zangu:
- https://dargen.io/
- https://github.com/mjdargen
- https://www.instructables.com/member/mjdargen/
Ilipendekeza:
Kiota Hello - Mlango wa Mlango na Transformer Iliyounganishwa Uingereza (220-240V AC - 16V AC): Hatua 7 (na Picha)

Nest Hello - Mlango wa Mlango na Transformer Iliyounganishwa Uingereza (220-240V AC - 16V AC): Nilitaka kusanikisha kengele ya mlango wa Nest Hello nyumbani, gizmo inayoendesha 16V-24V AC (KUMBUKA: sasisho la programu mnamo 2019 limebadilisha Ulaya toleo la toleo hadi 12V-24V AC). Chimes ya kawaida ya kengele ya mlango na transfoma jumuishi zilizopatikana nchini Uingereza kwenye
Kubadilisha mlango wa mlango: 21 Hatua

Kubadilisha Kusaidia Kengele ya Mlango: Kubadilisha Kusaidia Kengele ni mfano wa teknolojia ya kusaidia kutumia vifaa vya kila siku. Ni swichi inayobadilisha kengele ya kawaida ya mlango ili iweze kuwawezesha watoto wenye mahitaji maalum ya kutumia vitu vya kila siku
Mlango wa Kikawaida wa Kengele ya Mlango uliosababishwa: Hatua 6

Mlango wa Kikawaida wa Kengele ya Mlango uliosababishwa. Hello! Jina langu ni Justin, mimi ni Junior katika shule ya upili, na hii inayoweza kufundishwa itakuonyesha jinsi ya kutengeneza kengele ya mlango ambayo husababishwa mtu anapokanyaga kwenye mkeka wako wa mlango, na anaweza kuwa wimbo wowote au wimbo unaotaka! Kwa kuwa kitanda cha mlango huchochea mlango
Mlango wa Mlango: Hatua 4

Mlango wa mlango: Halo kila mtu! Katika mradi huu nitakuonyesha jinsi ya kuunganisha buzzer ya mlango na kengele ya mlango ndani ya nyumba yako nzuri! Kwa kuwa ninatumia FHEM kama mfumo wangu mzuri wa nyumbani, naweza kukuonyesha njia ya FHEM, lakini mimi ' nina hakika unaweza kutafsiri hiyo kwa mfumo mwingine wowote rahisi
Badili Mlango wa Mlango wa Wiring kuwa mlango wa Smart na Msaidizi wa Nyumbani: Hatua 6

Badili Mlango wako wa Wired kuwa mlango wa Smart na Msaidizi wa Nyumbani: Badili kengele yako iliyopo ya waya kuwa mlango mzuri wa mlango. Pokea arifa kwa simu yako au jozi na kamera yako ya mlango wa mbele ili upate picha au video tahadhari wakati wowote mtu anapiga kengele ya mlango wako. Jifunze zaidi kwa: fireflyelectronix.com/pro