![Arduino durvju zvans: 4 soļi Arduino durvju zvans: 4 soļi](https://i.howwhatproduce.com/images/001/image-756-j.webp)
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59
![Arduino durvju zvans Arduino durvju zvans](https://i.howwhatproduce.com/images/001/image-756-1-j.webp)
Šodien es jums parādīšu, kā izveidot durvju zvanu, izmantojot Arduino. Šis durvju zvans atskaņo nejaušu melodiju no dziesmu bibliotēkas. Jūs varat pielāgot savu durvju zvanu un pievienot vēl vairāk dziesmu. Uzstādiet to ārpus savas guļamistabas, klases, biroja vai pat ieejas durvīm!
Piegādes:
- Arduino Uno (to darīs vairums citu veidu)
- Dators ar Arduino IDE programmēšanai
- USB-A līdz USB-B kabelis Arduino programmēšanai
- Maizes dēlis
- 4x džemperu vadi
- Spiedpoga vai cits slēdzis
- 10 kOhm rezistors
- Pasīvais skaņas signāls (t.i., pjezoelektriskais skaļrunis)
-
Pastāvīgai uzstādīšanai:
- 9 V līdzstrāvas barošanas avots vai 9 V akumulators Arduino barošanai
- 2x gari vadi elektroinstalācijas pogai ārpus durvīm
1. darbība. Aparatūras iestatīšana
![Aparatūras iestatīšana Aparatūras iestatīšana](https://i.howwhatproduce.com/images/001/image-756-2-j.webp)
![Aparatūras iestatīšana Aparatūras iestatīšana](https://i.howwhatproduce.com/images/001/image-756-3-j.webp)
![Aparatūras iestatīšana Aparatūras iestatīšana](https://i.howwhatproduce.com/images/001/image-756-4-j.webp)
Pirmkārt, mēs uzstādīsim aparatūru. Mēs sāksim ar pasīvo skaņas signālu (t.i., skaļruni). Mēs vēlamies savienot pasīvā signāla pozitīvo galu (apzīmēts ar "+" zīmi) ar Arduino 8. ciparu tapu. Mēs savienosim otru passize skaņas signāla galu ar zemi.
Tālāk mēs uzstādīsim durvju zvana pogu. Slēdzim mēs izmantosim 10 kOhm ārējo nolaižamo rezistoru, tāpēc Arduino ievadē nav peldoša sprieguma vai nestabila stāvokļa. Izmantojot nolaižamo rezistoru, Arduino nolasa spriegumu kā 0 V, ja poga nav nospiesta, un 5 V, kad poga tiek nospiesta. Lai iegūtu papildinformāciju par pievilkšanas vai nolaižamajiem rezistoriem, varat izlasīt šo rakstu:
Mēs pieslēgsim vienu spiedpogas pusi 5V. Spiedpogas otra puse tiks savienota ar zemi caur 10 kOhm nolaižamo rezistoru. Atcerieties: spiedpogas iekšpusē ir savienotas horizontāli. Nospiežot, tie ir savienoti tikai vertikāli. Plašāka informācija ir sniegta šajā rakstā:
2. darbība. Programmatūras iestatīšana
Viss kods ir pievienots. Zemāk ir katras funkcijas apraksts ar koda momentuzņēmumiem.
uzstādīt:
Funkcijā setup () mēs vēlamies konfigurēt savas pogas un skaļruņa digitālās tapas. Mēs vēlamies konfigurēt 2. tapu kā mūsu pogas ievadi, un mēs vēlamies konfigurēt 8. tapu kā mūsu skaļruņa izeju.
Mēs arī vēlamies "iesēt" mūsu izlases numuru ģeneratoru, lai nejauši izvēlētos melodiju, kad kāds zvana pie mūsu durvīm. Mūsu izlases skaitļu ģeneratora iesēšana nozīmē to ievadīt nejaušā ievadē. Mēs iesēsim nejaušo skaitļu ģeneratoru ar sprieguma vērtību analogā ieejā 0. Tā kā šai ieejai nekas nav pievienots, šajā tapā būs "nejaušs", svārstīgs spriegums, nodrošinot mūsu nejaušo skaitļu ģeneratoru ar daudzām dažādām vērtībām. Tas nodrošina, ka mūsu durvju zvana dziesmu izvēles secība būs atšķirīga. Lai iegūtu papildinformāciju par Arduino izlases () funkciju, apmeklējiet šeit:
#include "piķi.h"
#include "songs.h" #define BUTTON_PIN 2 #define SPEAKER_PIN 8/ * iestatīšanas funkcija */void setup () {// iespējot ievades/izvades tapas pinMode (BUTTON_PIN, INPUT); pinMode (SPEAKER_PIN, OUTPUT); // sēklas izlases () funkcija, lai mēs iegūtu atšķirīgu secību randomSeed (analogRead (0)); }
cilpa:
Mūsu cilpas () funkcijā mēs pastāvīgi pārbaudīsim, vai poga ir nospiesta (2. ciparu tapa ir augsta). Ja tapa ir augsta, mēs gaidām 50 ms un vēlreiz pārbaudām, vai tā joprojām ir augsta. Tas nodrošina, ka poga ir nospiesta un digitālās ieejas tapā nebija izkliedēts troksnis, kas izraisīja kļūdaini pozitīvu rezultātu.
Kad esam apstiprinājuši, ka poga ir nospiesta, mēs izmantojam nejaušo skaitļu ģeneratoru, lai atlasītu vienu no piecām dziesmām, izmantojot slēdzi. Šo dziesmu dati tiek saglabāti mapē "songs.h", un informācija par piķi tiek saglabāta mapē "pitchches.h". Kad mēs izvēlamies dziesmu, mēs nododam šo informāciju funkcijai play_song ().
/ * galvenā cilpas funkcija */
void loop () {// pārbaudiet, vai poga ir nospiesta, ja (digitalRead (BUTTON_PIN) == HIGH) {// aizkavē 50 ms, lai pārliecinātos, ka tas joprojām ir nospiests // izvairās no jebkādas kļūdainas lasīšanas aizkaves (50); if (digitalRead (BUTTON_PIN) == HIGH) {// nejauši izvēlēties dziesmu int song_choice = random (5); // izvēlieties, kuru dziesmu atskaņot slēdzis (dziesmas_izvēle) {case 0: play_song (haircutLength, haircut, haircutDurations, haircutTempo); pārtraukums; 1. gadījums: play_song (marioLength, mario, marioDurations, marioTempo); pārtraukums; 2. gadījums: play_song (miiLength, mii, miiDurations, miiTempo); pārtraukums; 3. gadījums: play_song (hpLength, hp, hpDurations, hpTempo); pārtraukums; 4. gadījums: play_song (takeonmeLength, takeonme, takeonmeDurations, takeonmeTempo); pārtraukums; noklusējums: play_song (miiLength, mii, miiDurations, miiTempo); pārtraukums; }}}}
play_song:
play_song () ņem 4 argumentus: vesels skaitlis dziesmas piezīmju, vesels skaitlis melodijas augstumu, vesels skaitlis ilguma masīvs un vesels skaitlis šai dziesmai. Jums ir jānorāda katrs no tiem katrai dziesmai, kuru vēlaties atskaņot. Lai iegūtu papildinformāciju par to, kā izmantot Arduino toņu funkcijas, varat apskatīt šo pamācību: https://www.arduino.cc/en/Tutorial/ToneMelody. Šīs apmācības augšpusē es pievienoju dažas funkcijas punktētām piezīmēm. Ja vērtība piezīmju ilguma masīvā ir negatīva, tas nozīmē, ka tā ir punktēta piezīme (garums ir 1,5 reizes lielāks).
/ * atskaņo dziesmu */
void play_song (int num_notes, int melody , int noteDurations , int tempo) {// iziet un atskaņot visas notis (int i = 0; i 0) {duration = tempo / noteDurations ; } // ja tas ir negatīvs skaitlis, tas nozīmē punktētu piezīmi // pagarina uz pusi punktu punktu skaitu, ja if (noteDurations <0) {duration = tempo / abs (noteDurations ) * 1.5; } tonis (SPEAKER_PIN, melodija , ilgums); // lai atšķirtu piezīmes, starp tām iestatiet minimālo laiku. // šķiet, ka piezīmes ilgums + 30% darbojas labi: int pauseBetweenNotes = ilgums * 1,30; kavēšanās (pauseBetweenNotes); // pārtraukt toņa atskaņošanu: noTone (SPEAKER_PIN); }}
Dziesmu paraugs.h:
Zemāk ir vienas dziesmas paraugs sadaļā "songs.h". Piezīmes ir makro, kas definētas "piches.h". Skaitļi atbilst piezīmju frekvencēm hercos (Hz). Piezīmju ilgums ir definēts šādi: 1 = vesela nots, 2 = puse nots, 4 = ceturkšņa piezīme, 8 = astotā nots, -4 = punktētā ceturkšņa piezīme utt. Garums ir kopējais dziesmas piezīmju skaits. Temps ir dalītājs dziesmas ātrumam (lielāks skaitlis nozīmē lēnāku tempu). Jums būs jāspēlē ar šo numuru, līdz iegūsit sev tīkamu tempu.
/* Harijs Poters */
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 hpLength = 14; int hpTempo = 1050;
3. solis: uzlabojumi
Pievienojiet vairāk dziesmu! Izpildiet formātu, kas parādīts sadaļā "songs.h", un izmantojiet apmācību, lai saņemtu palīdzību: https://www.arduino.cc/en/Tutorial/ToneMelody. Katrai jaunajai dziesmai, ko pievienojat, neaizmirstiet slēdzim pievienot jaunu reģistru un palielināt maksimālo skaitu, ko var radīt jūsu nejaušā () funkcija. Laimīgu kodēšanu!
4. solis: vairāk projektu
Lai iegūtu vairāk projektu, apmeklējiet manas lapas:
- https://dargen.io/
- https://github.com/mjdargen
- https://www.instructables.com/member/mjdargen/
Ieteicams:
Pielāgots durvju paklājs Aktivizēts durvju zvans: 6 soļi
![Pielāgots durvju paklājs Aktivizēts durvju zvans: 6 soļi Pielāgots durvju paklājs Aktivizēts durvju zvans: 6 soļi](https://i.howwhatproduce.com/preview/how-it-works/10382809-custom-door-mat-triggered-door-bell-6-steps.webp)
Pielāgots durvju paklājs, kas iedarbināja durvju zvanu: Sveiki! Mani sauc Džastins, es esmu juniors vidusskolā, un šī pamācība parādīs, kā izveidot durvju zvanu, kas tiek aktivizēts, kad kāds uzkāpj uz jūsu durvju paklājiņa, un tas var būt jebkura melodija vai dziesma, kuru vēlaties! Tā kā durvju paklājiņš iedarbina durvis
DIY bez pieskāriena durvju zvans bez Arduino!: 7 soļi
![DIY bez pieskāriena durvju zvans bez Arduino!: 7 soļi DIY bez pieskāriena durvju zvans bez Arduino!: 7 soļi](https://i.howwhatproduce.com/images/007/image-18542-j.webp)
DIY bez pieskāriena durvju zvans bez Arduino !: Durvju zvana slēdži ir viena no lietām, kuru visvairāk skar svešinieki. Un tā kā Covid 19 pandēmija kļūst par nopietnu problēmu, labas higiēnas saglabāšana mūsdienās ir kļuvusi par galveno prioritāti. Tāpēc šajā pamācībā es jums parādīšu vienkāršu veidu
Arduino koronavīrusa durvju zvans: 6 soļi
![Arduino koronavīrusa durvju zvans: 6 soļi Arduino koronavīrusa durvju zvans: 6 soļi](https://i.howwhatproduce.com/images/007/image-18860-j.webp)
Arduino koronavīrusa durvju zvans: globālā koronavīrusa uzliesmojuma dēļ es vēlos piezvanīt pie durvīm, ka jums nav jāspiež nekādi signāli cilvēkiem, kas atrodas šeit, un viņiem ir jāatver durvis. Šī lieta var likt jums inficēties ar vīrusu, pieskaroties citu cilvēku durvju zvanam
Arduino durvju zvans: 5 soļi
![Arduino durvju zvans: 5 soļi Arduino durvju zvans: 5 soļi](https://i.howwhatproduce.com/preview/how-to/10417219-arduino-doorbell-5-steps-0.webp)
Arduino durvju zvans: PIEDERUMI-2 maizes dēļi-buzzer-jumper vadi-2 arduino/genuino ar barošanas kabeļiem-RF raidītājs un uztvērēja spiedpoga-100 omu rezistors
Arduino durvju zvans ar VU skaitītāju: 4 soļi (ar attēliem)
![Arduino durvju zvans ar VU skaitītāju: 4 soļi (ar attēliem) Arduino durvju zvans ar VU skaitītāju: 4 soļi (ar attēliem)](https://i.howwhatproduce.com/images/001/image-2034-65-j.webp)
Arduino durvju zvans ar VU skaitītāju: Pamatideja ir tāda - nospiežot durvju zvana spiedpogu, gaismas diodes sāks ritmiski spīdēt kopā ar skaņas signālu, pēc kāda laika divi notikumi automātiski apstāsies. Gaismas diodes var atrasties ārpus durvīm, lai izklaidētu apmeklētāju, vai iekšpusē. Šajā es