Агуулгын хүснэгт:
- Алхам 1: Тоног төхөөрөмжийн тохиргоо
- Алхам 2: Програм хангамжийн тохиргоо
- Алхам 3: Твиттер
- Алхам 4: Бусад төслүүд
Видео: Arduino Doorbell: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Өнөөдөр би танд Arduino ашиглан хаалганы хонх хэрхэн хийхийг үзүүлэх болно. Энэ хаалганы хонх нь дууны номын сангаас санамсаргүй байдлаар тоглодог. Та хаалганыхаа хонхыг өөрчилж, бүр илүү олон дуу нэмж болно. Унтлагын өрөө, анги, оффис, тэр ч байтугай үүднийхээ гадаа суулгаарай!
Хангамж:
- Arduino Uno (бусад ихэнх төрлүүд хийх болно)
- Програмчлалын зориулалттай Arduino IDE бүхий компьютер
- Arduino програмчлахад зориулагдсан USB-A-USB-B кабель
- Талхны самбар
- 4х холбогч утас
- Товчлуур эсвэл бусад унтраалга
- 10 кОм эсэргүүцэл
- Идэвхгүй дуугаралт (жишээ нь пьезоэлектрик чанга яригч)
-
Байнгын суулгахын тулд:
- 9V DC тэжээлийн хангамж эсвэл 9V батерей нь Arduino -ийг тэжээдэг
- Хаалганы гадна талын товчлуурыг холбох 2х урт утас
Алхам 1: Тоног төхөөрөмжийн тохиргоо
Нэгдүгээрт, бид тоног төхөөрөмжийг тохируулах болно. Бид идэвхгүй дуугаруулагч (өөрөөр хэлбэл чанга яригч) -аас эхлэх болно. Бид идэвхгүй дохионы эерэг үзүүрийг ("+" тэмдгээр тэмдэглэсэн) Arduino дээрх дижитал зүү 8 -тай холбохыг хүсч байна. Бид passize дуугаралтын нөгөө үзүүрийг газартай холбоно.
Дараа нь бид хаалганы хонхны товчлуурыг суулгана. Шилжүүлэгчийн хувьд бид 10 кОм -ийн хүчин чадалтай гадаад эсэргүүцэгчийг ашиглах тул Arduino -ийн оролт дээр хөвөгч хүчдэл, тогтворгүй төлөв байхгүй байна. Татах эсэргүүцэл ашиглан Arduino нь товчлуур дарагдаагүй үед хүчдэлийг 0В, товчлуурыг дарахад 5V гэж уншдаг. Татах эсвэл татах эсэргүүцлийн талаар дэлгэрэнгүй мэдээлэл авахыг хүсвэл энэ нийтлэлийг уншиж болно:
Бид товчлуурын нэг талыг 5V -т холбоно. Түлхүүр товчлуурын нөгөө тал нь 10 кОм эсэргүүцэлтэй эсэргүүцэгчээр дамжин газардуулагдах болно. Санаж байна уу: товчлуурууд нь хэвтээ байдлаар дотооддоо холбогддог. Тэд дарагдсан үед зөвхөн босоо байдлаар холбогддог. Дэлгэрэнгүй мэдээллийг энэ нийтлэлд өгсөн болно:
Алхам 2: Програм хангамжийн тохиргоо
Бүх кодыг хавсаргасан болно. Доорх кодын хормын хувилбар бүхий функц бүрийн тайлбарыг энд оруулав.
тохируулах:
Setup () функц дээр бид товчлуур болон чанга яригчийнхаа дижитал тээглүүрийг тохируулахыг хүсч байна. Бид 2 -р зүүг товчлуурын оролт болгон, 8 -р зүүг чанга яригчийн гаралт болгон тохируулахыг хүсч байна.
Бид мөн хэн нэгэн бидний хаалганы хонхыг дарахад аяыг санамсаргүй байдлаар сонгох санамсаргүй тооны генераторыг "үржүүлэхийг" хүсч байна. Манай санамсаргүй тооны генераторыг тарина гэдэг нь түүнд санамсаргүй оролт өгөхийг хэлнэ. Бид санамсаргүй тооны үүсгүүрээ 0 аналог оролт дээр хүчдэлийн утгаар суулгана. Энэ оролтонд юу ч холбогдоогүй тул энэ санамсаргүй тооны генераторыг олон янзын утгаар хангах "санамсаргүй", хэлбэлзэлтэй хүчдэл байх болно. Энэ нь бид хаалганы хонхны дуу сонгох өөр дараалалтай байх болно. Arduino random () функцын талаар дэлгэрэнгүй мэдээлэл авахыг хүсвэл эндээс үзнэ үү:
#"давирхай.h" оруулах
#include "songs.h" #BUTTON_PIN 2 -ийг тодорхойлох #SPEAKER_PIN 8/ * функцийг тохируулах */void setup () {// оролт/гаралтын тээглүүрийг идэвхжүүлэх pinMode (BUTTON_PIN, INPUT); pinMode (SPEAKER_PIN, OUTPUT); // seed random () функц, ингэснээр бид өөр захиалга авах болно randomSeed (analogRead (0)); }
гогцоо:
Бидний loop () функц дээр бид товчлуур дарагдсан эсэхийг шалгах болно (дижитал зүү 2 өндөр). Хэрэв зүү өндөр байвал бид 50 ms хүлээгээд өндөр хэвээр байгаа эсэхийг дахин шалгана уу. Энэ нь товчлуур дээр дарагдсан бөгөөд дижитал оролтын зүү дээр дуу чимээ гараагүй бөгөөд энэ нь хуурамч эерэг зүйл үүсгэсэн болно.
Товчлуур дарагдсан болохыг баталгаажуулсны дараа бид санамсаргүй тооны үүсгүүрээ ашиглан 5 дууны аль нэгийг нь сольж өгөх командыг ашиглан сонгож авдаг. Эдгээр дуунуудын өгөгдлийг "songs.h" -д, давтамжийн мэдээллийг "pitches.h" -д хадгалдаг. Дуу сонгосны дараа бид энэ мэдээллийг play_song () функцэд дамжуулдаг.
/ * main while loop функц */
void loop () {// (digitalRead (BUTTON_PIN) == HIGH) {// товчлуур дарагдсан эсэхийг шалгахын тулд дарагдсан хэвээр байгаа эсэхийг шалгахын тулд 50 ms -ийг хойшлуулна уу. if (digitalRead (BUTTON_PIN) == HIGH) {// санамсаргүй байдлаар сонгоно уу int song_choice = random (5); // аль дууг тоглуулахыг сонгоно уу (дууны сонголт) {тохиолдол 0: тоглох_ дуу завсарлага; тохиолдол 1: play_song (marioLength, mario, marioDurations, marioTempo); завсарлага; тохиолдол 2: play_song (miiLength, mii, miiDurations, miiTempo); завсарлага; тохиолдол 3: play_song (hpLength, hp, hpDurations, hpTempo); завсарлага; тохиолдол 4: play_song (takeonmeLength, takeonme, takeonmeDurations, takeonmeTempo); завсарлага; анхдагч: play_song (miiLength, mii, miiDurations, miiTempo); завсарлага; }}}}
тоглох_ дуу:
play_song () нь 4 аргументыг авдаг: дууны бүхэл тооны тэмдэглэл, аялгууны давтамжийн бүхэл тоо, үргэлжлэх хугацааны бүхэл тоо, тухайн дууны бүхэл тооны хэмнэл. Та тоглохыг хүссэн дуу бүрийн хувьд эдгээрийг тус бүрээр нь зааж өгөх ёстой. Arduino -ийн аяны функцийг ашиглах талаар нэмэлт мэдээлэл авахыг хүсвэл энэ хичээлийг үзнэ үү: https://www.arduino.cc/en/Tutorial/ToneMelody. Би энэ гарын авлага дээр тасархай тэмдэглэл хийх зарим функцийг нэмсэн. Хэрэв тэмдэглэлийн үргэлжлэх массивын утга сөрөг байвал энэ нь тасархай тэмдэглэл гэсэн үг (урт нь 1.5 дахин их).
/ * дууг тоглодог */
void play_song (int num_notes, int melody , int noteDurations , int tempo) {// (int i = 0; i 0) {duration = tempo / noteDurations ; } // хэрэв энэ нь сөрөг тоо бол, энэ нь цэгтэй тэмдэглэл гэсэн үг юм // өөр тэмдэгтүүдийн үргэлжлэх хугацааг хоёр дахин нэмэгдүүлдэг бол (noteDurations <0) {duration = tempo / abs (noteDurations ) * 1.5; } ая (SPEAKER_PIN, аялгуу , үргэлжлэх хугацаа); // тэмдэглэлийг ялгахын тулд тэдгээрийн хоорондох хамгийн бага хугацааг тохируулна уу. // тэмдэглэлийн үргэлжлэх хугацаа + 30% сайн ажилладаг бололтой: int pauseBetweenNotes = үргэлжлэх хугацаа * 1.30; саатал (pauseBetweenNotes); // ая тоглохыг зогсоох: noTone (SPEAKER_PIN); }}
Дууны жишээ.h:
"Songs.h" доторх нэг дууны дээжийг доор харуулав. Тэмдэглэл нь "pitches.h" -д тодорхойлогдсон макро юм. Тоонууд нь герц (Гц) дэх тэмдэглэлийн давтамжтай тохирч байна. Тэмдэглэлийн үргэлжлэх хугацааг дараах байдлаар тодорхойлно: 1 = бүтэн тэмдэглэл, 2 = хагас тэмдэглэл, 4 = улирлын тэмдэглэл, 8 = найм дахь тэмдэглэл, -4 = тасархай улирлын тэмдэглэл гэх мэт. Урт нь дууны нийт тэмдэглэлийн тоо юм. Хурд нь дууны хурдыг хуваагч юм (өндөр тоо нь удаан хэмнэлийг илэрхийлдэг). Та дуртай дугаараа авах хүртэл энэ дугаараар тоглох хэрэгтэй болно.
/* Харри Поттер */
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: Твиттер
Өөр дуу нэмээрэй! "Songs.h" -д үзүүлсэн форматыг дагаж, зааварчилгааг ашиглаарай: https://www.arduino.cc/en/Tutorial/ToneMelody. Таны оруулсан шинэ дуу бүрийн хувьд шилжүүлэгчийн мэдэгдэлд шинэ тохиолдол нэмж, random () функцээр үүсгэж болох хамгийн их тоог нэмэгдүүлэхээ мартуузай. Аз жаргалтай кодчилол!
Алхам 4: Бусад төслүүд
Бусад төслүүдийн талаар миний хуудсуудаас үзээрэй.
- https://dargen.io/
- https://github.com/mjdargen
- https://www.instructables.com/member/mjdargen/
Зөвлөмж болгож буй:
Их Британийн Ring Video Doorbell Pro нь механик хонхтой ажилладаг: 6 алхам (зурагтай)
Их Британийн Ring Video Doorbell Pro нь механик хонхтой ажилладаг: ************************************** *************** Энэ арга нь яг одоо зөвхөн АС тэжээлээр ажилладаг болохыг анхаарна уу, хэрэв би тогтмол гүйдлийн хүчийг ашиглан хаалганы хонхны шийдлийг олох юм бол шинэчлэх болно. хангамж, танд хэрэгтэй болно
Arduino Doorbell: 5 алхам
Arduino Doorbell: ХАНГАМАЛ-2 талхны хавтан-дуугарагч-холбогч утас-2 arduino/genuino цахилгаан кабель-rf дамжуулагч, хүлээн авагч-товчлуур-100 ом эсэргүүцэл
MQTT/Google Home DoorBell ESP-01 ашиглан: 6 алхам
ESP-01 ашиглан MQTT/Google Home DoorBell: Хаалганы хонхны дууг сонсоход хэт хол байгаа байшингийн нэг хэсэг байсан болохоор л хаалганыхаа хонхыг дарсан зочдод хариулахаа больсон уу? хонгил, хаалттай унтлагын өрөө, эсвэл та зурагт үзэж эсвэл хөгжим сонсож байсан байж магадгүй
Dr Who Tardis Doorbell: 14 алхам (зурагтай)
Dr Who Tardis Doorbell: Энэ бол миний Тардисын хаалганы хонхыг бүтээх төсөл юм. Энэ бол утасгүй хаалганы хонх бөгөөд дарахад шоуны аудиог тоглуулдаг. Би Матт Смитийн цуврал киноны аудиог бичиж, ашигласан, учир нь энэ бол миний хойд эгчид өгсөн бэлэг бөгөөд тэр бол тэр
Ring Doorbell Pro Facia хулгайн эсрэг өөрчлөлт: 4 алхам (зурагтай)
Ring Doorbell Pro Facia-ийн хулгайн эсрэг өөрчлөлт: Ring Doorbell Pro бол гайхалтай жижиг төхөөрөмж бөгөөд Ring нь хайрцгандаа 4 өөр өнгийн нүүрийг маш өгөөмөр өгдөг тул та урд хаалгандаа хамгийн сайн тохирохыг сонгож болно. урд нүүр нь зөвхөн аюулгүй байдгийг анзаарсан