Mundarija:

DIY Arduino ikkilik budilnik: 14 qadam (rasmlar bilan)
DIY Arduino ikkilik budilnik: 14 qadam (rasmlar bilan)

Video: DIY Arduino ikkilik budilnik: 14 qadam (rasmlar bilan)

Video: DIY Arduino ikkilik budilnik: 14 qadam (rasmlar bilan)
Video: LDmicro 14: ЖК-дисплей I2C и часы реального времени DS3231 (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Iyul
Anonim
DIY Arduino ikkilik budilnik
DIY Arduino ikkilik budilnik
DIY Arduino ikkilik budilnik
DIY Arduino ikkilik budilnik
DIY Arduino ikkilik budilnik
DIY Arduino ikkilik budilnik

Bu yana klassik ikkilik soat! Ammo bu safar qo'shimcha funktsiyalar bilan! Men sizga Arduino -da ikkilik budilnikni qanday qurishni ko'rsataman, u sizga nafaqat vaqtni, balki sanani, oyni, hatto taymer va budilnik yordamida ham ko'rpa -to'shak lampasi sifatida ko'rsatishi mumkin! Ko'p gapirmasdan, boshlaylik!

Eslatma: Ushbu loyiha RTC modulidan foydalanmaydi, shuning uchun aniqlik siz foydalangan taxtaga bog'liq. Men ma'lum vaqt oralig'ida vaqt o'zgarishini to'g'rilaydigan tuzatish mexanizmini qo'shdim, lekin siz vaqt oralig'ida to'g'ri qiymatni topish uchun tajriba o'tkazishingiz kerak bo'ladi (bu haqda quyida batafsilroq) va hatto tuzatish mexanizmi bilan ham u o'zgarib ketadi. uzoq vaqt davomida (ularsiz taqqoslaganda). Agar kim qiziqsa, ushbu loyihada RTC modulidan foydalanishni xohlasangiz

Ta'minotlar

5 mm LED (har qanday rangda, men indikator sifatida bitta RGB LEDli 13 ta oq LEDni ishlatardim) --- 14 dona

Arduino Nano (boshqalar ishlashi mumkin) --- 1 dona

Mikro kalit-1 dona

Alyuminiy folga kichik bo'lagi

O'rnatish taxtasi (korpus uchun, lekin o'zingizni loyihalashda erkin bo'ling)

Oq qog'oz parchasi (yoki boshqa rang)

Bir nechta plastik plyonka (kitob muqovasi sifatida ishlatiladi)

Bir nechta simlar

Buzzer-1 dona

NPN tranzistor-1 dona

Rezistorlar 6k8 --- 14 dona, 500R --- 1 dona, 20R (10Rx2) --- 1 dona, 4k7 --- 1 dona

Loyiha uchun quvvat manbai (men batareyali batareyadan foydalanganman)

5050 LED tasmasi va slaydni almashtirish (ixtiyoriy)

1 -qadam: davrani ulang

Davrani ulang!
Davrani ulang!

Men bu bosqichni quyidagicha ajrataman:

1) signal qismi

2) LED paneli

3) kalit (tugma)

4) LED tasmasi

5) sig'im sensori

6) Elektr ta'minoti

7) Barchasini Arduino -ga ulang

Ko'pincha, bu "sxemaga amal qilish" bosqichi. Shunday qilib, yuqoridagi sxemani ko'rib chiqing yoki hatto yuklab oling va chop eting!

2 -qadam: Buzzer qismini tayyorlash

Buzzer qismini tayyorlash
Buzzer qismini tayyorlash
Buzzer qismini tayyorlash
Buzzer qismini tayyorlash
Buzzer qismini tayyorlash
Buzzer qismini tayyorlash

Agar siz bundan oldin Arduino -da buzzerdan foydalangan bo'lsangiz, bilasizki, agar biz uni to'g'ridan -to'g'ri Arduino -ga ulasak, ovoz baland bo'lmaydi. Shunday qilib, bizga kuchaytirgich kerak. Kuchaytirgichni qurish uchun bizga NPN tranzistori kerak (asosan har qanday NPN ishlaydi, men S9013 dan foydalanganman, chunki uni eski loyihadan olganman) va tokni cheklash uchun qarshilik. Ishni boshlash uchun birinchi navbatda tranzistorning kollektorini, emitentini va bazasini aniqlang. Ma'lumotlar varag'ini biroz googling qilish buning uchun ishlaydi. Keyin tranzistor kollektorini buzzerning salbiy terminaliga lehimlang. Buzzerning ijobiy terminalida biz unga simni lehimlaymiz, shunda biz uni keyinchalik Arduino -ga lehimlaymiz. Shundan so'ng, 500R (yoki shunga o'xshash qarshilik qiymati) rezistorini tranzistor tagiga va rezistordan lehimlang, kelajakda foydalanish uchun boshqa simni lehimlang. Nihoyat, ikkita 10R rezistorni ketma -ket transistor emitentiga lehimlang va rezistorlardan boshqa simni ulang.

Haqiqatan ham, sxemaga murojaat qiling.

p/s: Men buni yozayotganda men hali ham tranzistor uchun rezistorni qanday tanlashni bilmayman. Men ishlatgan qiymat empirik tarzda tanlangan.

3 -qadam: LED panelini tayyorlash

LED panelini tayyorlash
LED panelini tayyorlash
LED panelini tayyorlash
LED panelini tayyorlash
LED panelini tayyorlash
LED panelini tayyorlash

LED va rezistorni prototip taxtasiga mos ravishda ulang va lehimlang. Bo'ldi shu. Sxemaga amal qiling. Agar siz foydalangan bo'shliq sizni qiziqtirsa, har bir ustun uchun 3 teshik va har bir satr uchun ikkita teshik (rasmga qarang). Va indikatorli LED? Men uni tasodifiy uladim.

LED va rezistorni taxtaga lehimlagandan so'ng, LEDlarning barcha ijobiy terminallarini bir -biriga ulang. Keyin, LEDlarning salbiy terminallaridagi rezistorlarning har biriga birma -bir lehimlang, shunda biz ularni keyinchalik Arduino -ga lehimlay olamiz.

QAYD: Siz bu qadamni chalkashtirib yuborishingiz mumkin. Esda tutingki, hamma erni bir -biriga ulash o'rniga, biz barcha musbat terminallarni va salbiy terminallarni Arduino -dagi alohida pin bilan bog'laymiz. Shunday qilib, biz Arduino GPIO pinini Vcc emas, balki tuproq sifatida ishlatamiz. Agar siz tasodifan uni orqaga bog'lab qo'ysangiz, xavotir olmang. Siz LEDni boshqarish funktsiyasida barcha "HIGH" ni "LOW" va "LOW" ni "HIGH" ga o'zgartirishingiz mumkin.

4 -qadam: kalitni tayyorlash (aslida tugma)

Kalitni tayyorlash (aslida tugma)
Kalitni tayyorlash (aslida tugma)
Kalitni tayyorlash (aslida tugma)
Kalitni tayyorlash (aslida tugma)
Kalitni tayyorlash (aslida tugma)
Kalitni tayyorlash (aslida tugma)

Kommutator uchun (men uni kalit deb atayman, chunki men mikro-kalitni ishlatganman, lekin siz bilasizki, bu tugma), bizga 4k7 ochiladigan qarshilik va, albatta, kalitning o'zi kerak. Oh, ba'zi simlarni tayyorlashni unutmang. Rezistorni va simni mikro kalitning umumiy eriga (COM) lehimlashdan boshlang. Keyin yana bir bo'lak simni mikro kalitning odatda ochilgan (NO) qismiga lehimlang. Nihoyat, rezistorga boshqa simni ulang. Uni issiq elim bilan mahkamlang.

Bilim burchagi: Nega bizga qarshilik rezistori kerak?

"Agar siz raqamli kirish -chiqish pinini hamma narsadan uzib qo'ysangiz, svetodiod notekis miltillashi mumkin. Buning sababi shundaki, kirish" suzuvchi ", ya'ni tasodifiy ravishda" YUQORI "yoki" LOW "holatiga qaytadi. Shuning uchun sizga tortish yoki kontaktlarning zanglashiga olib keladigan qarshilik ». - Manba: Arduino veb-sayti

5 -qadam: LED chizig'ini tayyorlash

LED chizig'ini tayyorlash
LED chizig'ini tayyorlash
LED chizig'ini tayyorlash
LED chizig'ini tayyorlash

LED tasmasi yotoq yonidagi chiroq uchun, ixtiyoriy. LED tasmasini va slaydni kalitini ketma -ket ulang, alohida narsa yo'q.

6 -qadam: Imkoniyat sensori tayyorlash

Imkoniyatlar sensori tayyorlash
Imkoniyatlar sensori tayyorlash
Imkoniyatlar sensori tayyorlash
Imkoniyatlar sensori tayyorlash
Imkoniyatlar sensori tayyorlash
Imkoniyatlar sensori tayyorlash
Imkoniyatlar sensori tayyorlash
Imkoniyatlar sensori tayyorlash

OK, rasmga qarang. Asosan, biz simni kichik alyumin folga bilan bog'laymiz (chunki alyumin folga lehimlanmaydi), keyin uni taxtaning kichik bir qismiga yopishtiring. Eslatib o'tamiz, alyumin folga to'liq yopishtirilmaganligiga ishonch hosil qiling. Bir qismini ochiq aloqada qoldiring.

7 -qadam: elektr ta'minotini tayyorlash

Elektr ta'minotini tayyorlash
Elektr ta'minotini tayyorlash
Elektr ta'minotini tayyorlash
Elektr ta'minotini tayyorlash
Elektr ta'minotini tayyorlash
Elektr ta'minotini tayyorlash

Men batareyali quvvat manbai sifatida ishlatganim uchun menga zaryadlash va himoya qilish uchun TP4056 moduli va kuchlanishni 9v ga aylantirish uchun kuchaytirgich kerak. Agar siz 9V kuchlanishli devor adapteridan foydalanishga qaror qilgan bo'lsangiz, sizga shahar uyasi kerak bo'lishi mumkin yoki uni to'g'ridan -to'g'ri ulashingiz mumkin. E'tibor bering, kuchaytirgich uchun qarshilik qiymati 9V uchun mo'ljallangan va agar siz boshqa kuchlanishni ishlatmoqchi bo'lsangiz, rezistorni o'zgartirishingiz kerak bo'ladi.

8 -qadam: Ularni Arduino -ga ulash

Ularni Arduino -ga ulash
Ularni Arduino -ga ulash
Ularni Arduino -ga ulash
Ularni Arduino -ga ulash
Ularni Arduino -ga ulash
Ularni Arduino -ga ulash

Sxemaga amal qiling! Sxemaga amal qiling! Sxemaga amal qiling!

Noto'g'ri pinni ulamang, aks holda narsalar g'alati bo'ladi.

9 -qadam: mahkamlash

Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama

Mening dizaynimning o'lchami 6,5 sm*6,5 sm*8 sm, shuning uchun u biroz hajmli. U LED displey uchun old oynadan va yotoq yonidagi chiroq uchun yuqori oynadan iborat. Mening dizaynim uchun rasmlarga qarang.

10 -qadam: Dasturlash vaqti

Image
Image
Dasturlash vaqti!
Dasturlash vaqti!

Quyidagi eskizimni yuklab oling va Arduino -ga yuklang. Agar siz buni qanday qilishni bilmasangiz, bu loyihani bajarishga shoshilmang! Yo'q, hazil, mana bu borada yaxshi darslik: eskizni arduino -ga yuklang

Keyin ketma -ket monitorni oching va siz uning joriy vaqtini ko'rasiz. Vaqtni belgilash uchun buni qanday qilish kerak.

Soatni o'rnatish uchun: h, XX - bu erda xx - joriy soat

Daqiqani o'rnatish uchun: min, XX - xx - bu joriy daqiqa

Ikkinchisini o'rnatish uchun: s, XX

Sana o'rnatish uchun: d, XX

Oyni o'rnatish uchun: dushanba, XX

Yuqoridagi sharh bajarilgach, u siz o'rnatgan qiymatni qaytarishi kerak. (Masalan, h, 15 bilan soatni o'rnatganingizda, ketma -ket monitorda Hour: 15 ni qaytarishi kerak.

Sig'im sensori uchun uni ishlamasdan oldin kalibrlash kerak bo'lishi mumkin. Buning uchun mikro kalitni ikki marta bosing va ketma-ket monitorga qarang. U bir nechta raqamni chiqarishi kerak. Endi barmog'ingizni sig'im sensori ustiga qo'ying va raqamlar diapazoniga e'tibor bering. Keyin "captrigger" o'zgaruvchisini o'zgartiring. Aytaylik, siz bosilganda 20-30 ni olasiz, keyin kaptriggerni 20 ga qo'ying.

Eskiz ADCTouch kutubxonasidan foydalanadi, uni o'rnatganingizga ishonch hosil qiling.

11 -qadam: tuzatish mexanizmi

Mening kodimdagi tuzatish mexanizmining vaqti men uchun to'g'ri bo'lgan vaqtga o'rnatiladi. Agar vaqt hali aniq bo'lmasa, "to'g'rilash" o'zgaruvchining qiymatini o'zgartirish kerak.

So'nggi yangilanishda to'g'rilanuvchi 0 ga o'rnatildi.

Cordur qiymati bir soniyani sekinlashtirish uchun necha millisekund kerakligini bildiradi

Cordur qiymatini bilish uchun quyidagi formuladan foydalaning.

2000/(y-x)/x)

bu erda x = o'tgan vaqtning haqiqiy davomiyligi va y = soatning davomiyligi, ham sekundda

X va y qiymatini topish uchun ozgina tajriba qilish kerak.

Soat vaqtini haqiqiy vaqtga qo'ying va boshlang'ich vaqtni yozing (haqiqiy boshlang'ich vaqt va soatning boshlang'ich vaqti bir xil bo'lishi kerak). Biroz vaqt o'tgach (bir necha soat), oxirgi haqiqiy vaqt va soatning oxirgi vaqtini yozib oling.

x = haqiqiy oxirgi vaqt-boshlang'ich vaqt va y = soat oxirgi vaqt-boshlanish vaqti

Keyin koddagi to'g'rilash qiymatini o'zgartiring va Arduino -ga qayta yuklang.

Keyin testni takrorlang va bu safar formulani o'zgartiring:

2000/((2/z)+(y-x/x))

Bu erda x va y - avvalgidek, z - joriy tuzatish qiymati.

Qayta yuklang va siz uchun aniq bo'lmaguncha testni qayta -qayta bajaring.

Agar sizning soatingiz hali ham tezlashayotgan bo'lsa, hatto tuzatish 0 ga o'rnatilsa (tuzatuvchi mexanizm yo'q), siz ikkinchi ++ ni ikkinchisiga o'zgartirishingiz kerak- kodning tuzatish mexanizmi qismida (men buni sharhladim), to'g'rilashni 0 ga o'rnating, keyin yo'qni toping. bir soniyani tezlashtirish uchun millisekund kerak.

12 -qadam: Barcha funktsiyalarni qanday ishlatish kerak

Image
Image

Siz mikro kalitni bosib rejimni o'zgartirishingiz mumkin.

Birinchi rejimda u faqat vaqtni ko'rsatadi. Agar indikator nuri sekundiga 1 marta yonib tursa, signal o'chadi. Agar sekundiga 2 marta bo'lsa, signal yoqiladi. Sig'im sensori yordamida siz signalni birinchi rejimda 10 daqiqaga qoldirishingiz mumkin.

Ikkinchi rejimda u sanani ko'rsatadi. Sensorni bosish hech narsa qilmaydi.

Uchinchi rejimda siz taymerni o'rnatishingiz mumkin. Sensorni bosish taymerni yoqadi va siz indikator chirog'i miltillay boshlaganini ko'rasiz. Sig'im sensori taymer vaqtini sozlash uchun ham ishlatiladi. Taymer oralig'i 1 daqiqadan 59 daqiqagacha.

To'rtinchi rejimda siz signal sig'imini sensorlar yordamida o'rnatishingiz mumkin

Beshinchi rejimda siz signal sig'imini sensori yordamida o'rnatishingiz mumkin.

Oltinchi rejimda, sig'im sensori bosilganda, soatni o'zgartirmasdan, daqiqa 30 va sekund 0 ga qaytariladi. Bu shuni anglatadiki, agar sizning soatingiz 30 daqiqadan oshmasa, uni ushbu rejim yordamida qayta sozlashingiz mumkin.

Ettinchi rejim - agar zaryad olayotganda sig'im sensori ishlamay qolsa, hech narsa qilmang.

Oh, signalni o'chirish uchun mikro kalitni bosing. (ALARM SNOOZE QO'SHILGAN SO'NGgi YANGILANISH)

Xo'sh, soatni o'qish qanday? Bu oson! Ikkilik soatni o'qish - Wikihow Siz o'zingizni g'alati his qilishingiz mumkin, lekin siz bunga ko'nikasiz!

13 -qadam: Xulosa

Xulosa
Xulosa
Xulosa
Xulosa

Nega men bu loyihani boshladim. Avvaliga menda eski raqamli soat bor va men uni budilnikga aylantirmoqchiman. Afsuski, eski soat singan bo'lib chiqdi. Xo'sh, men nima uchun Arduino -dan foydalanib qurmasligim kerak edi? Bir oz Google qidiruvi bilan men Cello62 tomonidan ko'rsatiladigan RTC bo'lmagan bu ikkilik soatli loyihani topdim. Biroq, u men xohlagan budilnik xususiyatiga ega emas, shuning uchun men kodni olib, o'zim o'zgartiraman. Va loyiha tug'iladi. Bundan tashqari, men yaqinda ko'rsatuvlar bo'yicha o'tkaziladigan soat musobaqasini ko'rdim, bu menga bundan ham ko'proq turtki berdi. Qanday bo'lmasin, bu mening Arduino -dan foydalangan birinchi loyiham, shuning uchun ko'plab yaxshilanishlar mumkin.

Kelgusida takomillashtirish:

1) RTC -dan foydalaning

2) Simsiz signal yoki vaqt yoki taymerni o'rnating!

3) Men qanday xususiyat haqida o'ylayman

14 -qadam: yangilash: bir haftalik foydalanishdan keyin

Yangilanish: bir haftalik foydalanishdan keyin
Yangilanish: bir haftalik foydalanishdan keyin
Yangilanish: bir haftalik foydalanishdan keyin
Yangilanish: bir haftalik foydalanishdan keyin
Yangilanish: bir haftalik foydalanishdan keyin
Yangilanish: bir haftalik foydalanishdan keyin

Aniq muammodan tashqari - vaqt o'zgarishi, men aytmoqchi bo'lgan yana bir narsa - bu quvvat sarfi. Birinchidan, men kuchlanishni 9v ga ko'taraman, keyin Arduino -dagi chiziqli regulyator tomonidan tushiriladi. Chiziqli regulyator juda samarasiz. Soat faqat BIR KUN uchun ishlaydi. Bu shuni anglatadiki, men uni har kuni zaryad qilishim kerak. Bu butun tizim faqat 50% samaradorligini tushunmaguningizcha, bu eng katta bitim emas. Batareyam 2000 mA / soat ekanligini hisobga olib, men har kuni sarflangan quvvatni hisoblay olaman.

Quvvat sarflangan = (7.4Wh*10%)+(7.4Wh*90%*50%) = 4.07Wh kuniga

Bu yiliga 1.486 kVt / soat! Bu 283 g suvni (25 C dan 100 C gacha) qaynatish uchun ishlatilishi mumkinmi? Lekin baribir, men soat samaradorligini oshiraman. Buning yo'li - chiziqli regulyatorni umuman ishlatmaslik. Bu shuni anglatadiki, biz kuchaytirgichni 5V kuchlanishini Arduino -dagi 5V -pinga to'g'ridan -to'g'ri sozlashimiz kerak. Keyinchalik, sarflangan quvvatni kamaytirish uchun men bortdagi ikkita LEDni (pin13 va quvvat) olib tashlashim kerak, chunki ular kuniga 0,95 Vt quvvat sarflaydi. Afsuski, men SMD -da lehimlashda mutlaqo nohaqman, shuning uchun buni qilishning yagona yo'li - bortdagi temir yo'lni kesish. Shundan so'ng, ovoz chiqargich va yotoq chiroqidagi emitent rezistorini olib tashlashim kerak (LED chizig'i 5V da ishlamaydi). Lekin bu siz bu ajoyib xususiyatdan voz kechishingiz kerakligini anglatadimi? Yo'q! Sizda bu erda ikkita tanlov bor: oddiy 5 mm LED diodidan foydalaning yoki 5 V LED tasmasidan foydalaning. Ammo men uchun o'tgan haftada men bu loyihani bajarishdan charchadim, shuning uchun men bu imkoniyatdan voz kechishga qaror qildim. Biroq, men kalitni dastlab energiyani tejash uchun soat panelini yoqish yoki o'chirish uchun yorug'lik funktsiyasidan foydalanganman, lekin men uni o'chirganimda LED yonib -o'chib turadi. Xatolik xususiyatga aylanadimi? Bilmayman (kim bilsa, quyida ayting).

O'zgartirish oxirida soat endi 2 kundan ko'proq davom etadi!

Keyin menda soat bilan bog'liq jiddiy muammo bor. Zaryad olayotganda, sig'im sensori aqldan ozadi, shuning uchun men hech narsa qilmaydigan boshqa rejimni qo'shaman.

Vaqt o'zgarishiga kelsak, uni har kuni kompyuterga qayta o'rnatish juda noqulay bo'lgani uchun, men boshqa rejimni qo'shdim, u daqiqani 30 va sekundni 0 ga o'rnatadi. Bu shuni anglatadiki, siz uni har yarim soatda tiklashingiz mumkin!

Tavsiya: