Mundarija:
- Ta'minotlar
- 1 -qadam: davrani ulang
- 2 -qadam: Buzzer qismini tayyorlash
- 3 -qadam: LED panelini tayyorlash
- 4 -qadam: kalitni tayyorlash (aslida tugma)
- 5 -qadam: LED chizig'ini tayyorlash
- 6 -qadam: Imkoniyat sensori tayyorlash
- 7 -qadam: elektr ta'minotini tayyorlash
- 8 -qadam: Ularni Arduino -ga ulash
- 9 -qadam: mahkamlash
- 10 -qadam: Dasturlash vaqti
- 11 -qadam: tuzatish mexanizmi
- 12 -qadam: Barcha funktsiyalarni qanday ishlatish kerak
- 13 -qadam: Xulosa
- 14 -qadam: yangilash: bir haftalik foydalanishdan keyin
Video: DIY Arduino ikkilik budilnik: 14 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
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
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
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 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)
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 tasmasi yotoq yonidagi chiroq uchun, ixtiyoriy. LED tasmasini va slaydni kalitini ketma -ket ulang, alohida narsa yo'q.
6 -qadam: Imkoniyat 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
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
Sxemaga amal qiling! Sxemaga amal qiling! Sxemaga amal qiling!
Noto'g'ri pinni ulamang, aks holda narsalar g'alati bo'ladi.
9 -qadam: mahkamlash
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
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
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
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
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:
Aqlli budilnik: Raspberry Pi -dan tayyorlangan aqlli budilnik: 10 qadam (rasmlar bilan)
Aqlli budilnik: Raspberry Pi bilan yasalgan aqlli budilnik: Siz hech qachon aqlli soatni xohlaganmisiz? Agar shunday bo'lsa, bu siz uchun yechim! Men Smart Budilnikni yaratdim, bu soat, siz budilnik vaqtini veb -saytga ko'ra o'zgartirishingiz mumkin. Signal o'chganda, ovoz eshitiladi va ikkita chiroq yonadi
Budilnik bilan DIY aqlli o'lchov (Wi-Fi, ESP8266, Arduino IDE va Adafruit.io bilan): 10 qadam (rasmlar bilan)
Budilnik bilan DIY aqlli o'lchov (Wi-Fi, ESP8266, Arduino IDE va Adafruit.io bilan): Oldingi loyihamda men Wi-Fi bilan aqlli hammom o'lchovini ishlab chiqdim. U foydalanuvchi vaznini o'lchashi, uni mahalliy ko'rsatishi va bulutga yuborishi mumkin. Bu haqda batafsil ma'lumotni quyidagi havola orqali olishingiz mumkin: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
3 raqamli Arduino ikkilik hisoblagichi: 8 qadam (rasmlar bilan)
3 raqamli Arduino ikkilik hisoblagichi: bu loyiha 1-999 hisoblagichi bo'lib, har bir raqamga 4-LEDni ishlatadi, uning boshqaruv pimi esa anod bo'lib, katodlarni mos keladigan LEDlar qatoriga va shu va Arduino pinlari orasidagi rezistorga ulanadi. . Umumiy anodlar
DIY Sesame ko'chasidagi budilnik (yong'in signalizatsiyasi bilan!): 6 qadam (rasmlar bilan)
DIY Sesame ko'chasidagi budilnik (yong'in signalizatsiyasi bilan!): Hammaga salom! Bu loyiha mening birinchi loyiham. Amakivachchalarning birinchi tug'ilgan kuni yaqinlashayotgani uchun, men unga maxsus sovg'a tayyorlamoqchi edim. Men amakim va xolamdan u Sesame ko'chasida ekanini eshitdim, shuning uchun men aka -ukalarim bilan budilnik yasashga qaror qildim
Arduino asosidagi ikkilik budilnik: 13 qadam (rasmlar bilan)
Arduino asosidagi ikkilik budilnik: Hey, bugun men sizga eng so'nggi loyihalarimdan birini, ikkilik budilnikni qanday qurishni ko'rsatmoqchiman. Internetda juda ko'p turli xil ikkilik soatlar mavjud, lekin bu aslida rang -barang manzilli LED -lentalardan yasalgan birinchi soat bo'lishi mumkin