Mundarija:

Arduino asosidagi ikkilik budilnik: 13 qadam (rasmlar bilan)
Arduino asosidagi ikkilik budilnik: 13 qadam (rasmlar bilan)

Video: Arduino asosidagi ikkilik budilnik: 13 qadam (rasmlar bilan)

Video: Arduino asosidagi ikkilik budilnik: 13 qadam (rasmlar bilan)
Video: Lesson 13: Using Flame Sensor module with Arduino 2024, Noyabr
Anonim
Image
Image

Erto'la muhandisligi bo'yicha: Muallifning boshqa ma'lumotlariga amal qiling:

DIY lazerli odamlar hisoblagichi
DIY lazerli odamlar hisoblagichi
O'z-o'zidan yuradigan qayiq qurish (ArduPilot Rover)
O'z-o'zidan yuradigan qayiq qurish (ArduPilot Rover)
O'ziyurar qayiqni qurish (ArduPilot Rover)
O'ziyurar qayiqni qurish (ArduPilot Rover)
Chiroyli yotoq yonidagi chiroq va telefon dock
Chiroyli yotoq yonidagi chiroq va telefon dock
Chiroyli yotoq yonidagi chiroq va telefon dock
Chiroyli yotoq yonidagi chiroq va telefon dock

Haqida: Salom, mening ismim Jan va men ishlab chiqaruvchiman, men buyumlar yasashni va yaratishni yaxshi ko'raman, shuningdek, narsalarni ta'mirlashni yaxshi bilaman. Men o'ylaymanki, men har doim yangi narsalarni yaratishni yaxshi ko'raman va shu qadar davom etaman … Bodrum muhandisligi haqida »

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 rang -barang manzilli LED -lentalardan yasalgan, shuningdek signal va sensorli tugmalar bilan vaqt va rang kabi narsalarni o'rnatish uchun mo'ljallangan birinchi soat bo'lishi mumkin.

Iltimos, uning murakkab ko'rinishi sizni qo'rqitishiga yo'l qo'ymang. Kichkina tushuntirish bilan, ikkilikni o'qish aslida ko'rinadigan darajada qiyin emas. Va agar siz yangi narsalarni o'rganmoqchi bo'lsangiz, men sizga keyinchalik bu borada yordam berishni xohlayman.

Sizga bu loyiha ortidagi hikoya haqida qisqacha aytib beray:

Men dastlab LEDni qo'lda ishlatadigan "oddiy" soatni qurishni rejalashtirgandim, lekin qo'limda LEDlar etarli emas edi.

Sooo, vaqtni iloji boricha kamroq LED bilan ko'rsatishni xohlasangiz nima qilasiz?

Siz ikkilikka o'tasiz va men aynan shu erda qildim.

Bu soat uchinchi turdagi. Men juda oddiy prototipni loyiha g'oyasi menga tegib, Gannoverdagi Maker Fair ko'rgazmasiga olib borganimdan so'ng, odamlar bu haqda nima deb o'ylashini bilib oldim. Men u erda bo'lganimda, men juda ko'p ijobiy va qiziqarli fikrlarni, shuningdek, takomillashtirish g'oyalarini oldim.

Bu fikrlar va soatlab o'ylash, o'ylash va dasturlashning natijasi - bu juda qiziq ko'rinadigan, uyg'otuvchi soat, 1.0 versiyasidan ko'ra ko'proq xususiyatlarga ega va bugun biz qurilish jarayonining har bir bosqichidan o'tamiz. osongina o'zingiz qurasiz.

Agar siz hamma narsani o'qishni xohlamasangiz, Youtube -da juda batafsil video mavjud.

1 -qadam: narsalaringizni oling

O'z narsalaringizni oling
O'z narsalaringizni oling
O'z narsalaringizni oling
O'z narsalaringizni oling
O'z narsalaringizni oling
O'z narsalaringizni oling

Bu erda siz o'zingizning ikkilik soatingizni yaratishingiz kerak bo'lgan barcha komponentlar va asboblarning kichik ro'yxati.

Elektronika:

  • Har bir m (ebay) uchun 60 LEDli tasmada 18 ta manzilli Ws2811 LED (masalan, neopiksel).
  • Arduino Nano (ATMega328 protsessorli) (ebay)
  • 1307 RTC moduli (ebay)
  • 4X sig'imli sensorli tugmalar (ebay)
  • bs18b20 raqamli harorat sensori (ebay)
  • LDR (ebay)
  • noutbuk/smartfon karnayi yoki piezo signal
  • 2222A NPN tranzistor (yoki shunga o'xshash)
  • erkak sarlavhalari
  • burchakli ayol sarlavhalar (ebay)
  • 1 kOhm qarshilik
  • 4, 7 kOhm qarshilik
  • 10 kOhm qarshilik
  • Simlar
  • 7x5 sm o'lchamdagi PCB 24x18 teshiklari (ebay)
  • kumush sim (zargarlik simlari) (ebay)
  • 90 ° mini usb adapter (ebay)

Boshqa materiallar

  • Vinil o'rash
  • 4X45 mm m4 gardish boshli vintlardek (ebay)
  • 32X m4 metall yuvish moslamalari
  • 4X m4 qulflash gaykani
  • 28X4 m4 yong'oq
  • 4X 10 mm m3 guruchli tenglikni tenglamasi (ebay)
  • 8X8 mm m3 vint (ebay)
  • alyuminiy varaq
  • 2 mm sutli akril varaq
  • 2 mm shaffof akril varaq
  • 3 mm MDF qatlami
  • ikki tomonlama lenta

Asboblar

  • mini USB kabeli
  • Arduino IDE bilan ishlaydigan kompyuter
  • 3, 5 mm matkap
  • 4, 5 mm matkap
  • quvvat matkapi
  • kesish pichog'i
  • engish arra
  • lehim ioni
  • metall kesish qaychi
  • fayl
  • qum qog'ozi

Shablonlar (hozir o'lchamlari bilan)

  • PDF
  • Libre Office Draw

Kod

  • Eskizlar
  • Tugma kutubxonasi
  • Taymer kutubxonasi
  • Jukebox kutubxonasi
  • O'zgartirilgan RTClib
  • Adafruit Neopixel kutubxonasi
  • Arduino-harorat-nazorat-kutubxonasi

2 -qadam: old va orqa panelni kesib oling

Old va orqa panelni kesib oling
Old va orqa panelni kesib oling
Old va orqa panelni kesib oling
Old va orqa panelni kesib oling
Old va orqa panelni kesib oling
Old va orqa panelni kesib oling
Old va orqa panelni kesib oling
Old va orqa panelni kesib oling

Biz qilmoqchi bo'lgan birinchi qism - bu akril old panel. Qisqartirishni xohlagan joyimizni belgilaymiz va shuni yodda tutamizki, biz zımpara uchun biroz bardoshli bo'lishni xohlaymiz. Keyin biz akrilni pichoq bilan qirib tashlaymiz. Buni 10 dan 20 martagacha bajarganimizda, bizda yiv bor. Keyin biz bu o'rmonni stol chetiga qo'yib, akrilni sindirib ketguncha egishimiz mumkin.

Old panel o'lchamiga kesilganidan so'ng, biz MDFdan orqa panelni kesib tashladik. Buning uchun biz arralash dastagidan foydalanishimiz mumkin, lekin kesish pichog'i ham ishlaydi. Biz MDFni yog'och bo'lagiga mahkamlashimiz kerak va pichoq o'tguncha va bizda ikkita alohida bo'lak bo'lguncha uni kesish pichog'imiz bilan qirib tashlashimiz kerak.

Endi biz ikkita panelni bir -biriga yopishtiramiz va har tomonini mukammal tekislash uchun qum qilamiz.

Bu bajarilgandan so'ng, biz birinchi shablonni kesib, tasma yordamida ikkita panelga qo'yamiz va belgilangan teshiklarni burg'ilashni boshlaymiz.

Avval 4 burchakning har biriga 4, 5 mm teshik ochamiz. Akril juda mo'rt bo'lgani uchun va biz uning parchalanishini xohlamaymiz, biz kichik burg'ilash bilan boshlaymiz va kerakli teshik diametriga yetguncha harakat qilamiz. Keyin biz shablonni ishlatib, burchaklarni kerakli shaklga silliqlaymiz.

3 -qadam: Orqa panelni tugating

Orqa panelni tugating
Orqa panelni tugating
Orqa panelni tugating
Orqa panelni tugating
Orqa panelni tugating
Orqa panelni tugating
Orqa panelni tugating
Orqa panelni tugating

Hozircha, biz old panelni chetga surib, ikkinchi shablonni orqa panelga yopishtira olamiz, bu erda biz 4 dona pcb uchun teshiklarni, shuningdek qirralarni belgilaydigan 4 teshikni burg'ilash uchun 3, 5 mm matkapni ishlatishimiz kerak. kichik orqa deraza uchun.

Keyin biz arra yordamida derazani kesib, qirralarini tekislaymiz. Bundan tashqari, siz mini USB kabeli uchun teshik ochishni ham unutishni xohlamaysiz (men bunday narsalarga moyil bo'lmagan ishlab chiqaruvchi haqida eshitganman: D).

Orqa panelni kesishni tugatganimizdan so'ng, biz uni vinil bilan o'rashga o'tamiz. Biz ikkita bo'lakni kerakli o'lchamga kesib tashladik va birinchisini bir tomonga qo'llaymiz. Keyin biz jantlarni kesib, derazani bo'shatdik. Soch quritgichi barcha teshiklarni yana ko'rinadigan qilishiga yordam beradi, shuning uchun biz ularni kesib tashlashimiz mumkin. Xuddi shu narsani boshqa tomondan qilganimizdan so'ng, biz orqa shkafimiz uchun kichik akril oynani yasash uchun keyingi shablonimiz va qirqish va kesish texnikamizdan foydalanamiz.

4 -qadam: LED panelini yarating

LED panelini yarating
LED panelini yarating
LED panelini yarating
LED panelini yarating
LED panelini yarating
LED panelini yarating

Endi biz ushbu loyihaning eng muhim nuqtasiga keldik. LED paneli.

Biz metall kesish qaychi yordamida 12, 2 sm dan 8 sm gacha bo'lgan metall varaqni kesib tashlaymiz. Buni qilayotganda ehtiyot bo'ling, chunki qaychi juda o'tkir qirralarni hosil qiladi. Biz ularni faylimiz va zımpara bilan tekislaymiz. Keyin biz vintlardek va simlar uchun teshik ochish uchun navbatdagi shablonimizni qo'shamiz.

Haqiqiy LEDlarni tayyorlash vaqti keldi.

Birinchidan, biz ularni har biri 6 LEDli uchta chiziqqa kesib tashladik. Ba'zi LED chiziqlar juda nozik yopishtiruvchi qatlam bilan yopishtirilgan yoki umuman yopishtirilmagan, shuning uchun biz chiziqlarimizni ikki qirrali lentaga yopishtirib, pichoq bilan kesib olamiz. Bu uni metall plastinkaga yopishtirib qo'yadi va bu professional yechim bo'lmasa -da, mis yostiqchalarini ostidagi metall yuzadan izolyatsiya qiladi.

Chiziqlarni panelga yopishtirishdan oldin, biz uni spirt bilan tozalaymiz. LEDlarni ulashda biz ularni to'g'ri joyga va to'g'ri yo'nalishga qo'yganimizga ishonch hosil qilishimiz kerak. LED chizig'idagi kichik o'qlar chiziqlar orqali ma'lumot o'tadigan yo'nalishni ko'rsatadi.

Beshinchi rasmda ko'rib turganingizdek, bizning ma'lumotlar chizig'i panelning yuqori chap burchagidan keladi, birinchi chiziqdan o'ng tomonga o'tadi, chapdagi keyingi chiziqning boshiga va boshqalarga.. Shunday qilib, bizning barcha o'qlarimiz o'ng tomonga yo'naltirilishi kerak.

Keling, lehim ionimizni qizdiramiz va mis yostiqchalarga, shuningdek simimizga qalay qo'yamiz. Ma'lumot liniyalari men aytganidek ulanadi, biz esa chiziqning ortiqcha va minus yostiqchalarini parallel ravishda bog'laymiz.

Chiziqlar simga ulangandan so'ng, biz pichog'imiz yordamida har bir chiziqning uchlarini ehtiyotkorlik bilan ko'taramiz, shuning uchun ular hali ham yuqoriga ishora qiladilar. Keyin biz lehim bo'g'inlarini izolyatsiya qilish uchun ostiga issiq elim qo'yamiz.

Bu amalga oshirilgandan so'ng, biz PCBga o'tadigan simlarga bir nechta sarg'ish pimlarini qo'shamiz. Bunday simlarning uzunligi taxminan 16 sm bo'lishi kerak. Ishonch hosil qilish uchun, metall panel hech narsani qisqartirmaydi, biz barcha pinlar orasidagi qarshilikni o'lchash uchun multimetrdan foydalanamiz. Agar u 1kOm dan yuqori biror narsani ko'rsatsa, hammasi yaxshi.

Endi biz uni Arduino -ga ulashimiz, strandtest o'tkazib, ranglardan bahramand bo'lishimiz mumkin.

5 -qadam: Yorug'lik qo'llanmasini yarating

Yorug'lik qo'llanmasini yarating
Yorug'lik qo'llanmasini yarating
Yorug'lik qo'llanmasini yarating
Yorug'lik qo'llanmasini yarating
Yorug'lik qo'llanmasini yarating
Yorug'lik qo'llanmasini yarating
Yorug'lik qo'llanmasini yarating
Yorug'lik qo'llanmasini yarating

Agar biz o'z old panelimizni sutli akrilning orqasiga qo'yadigan bo'lsak, alohida LED -larni ajratish juda qiyin bo'ladi. Bu bizning soatimizni o'qishdan ko'ra qiyinlashtiradi.

Ushbu muammoni hal qilish uchun biz o'zimizni engil ko'rsatma qilmoqchimiz. Buning uchun biz old panel bilan bir xil o'lchamdagi MDFning boshqa qismini kesib tashladik. Keyin biz unga yana bir shablon qo'shamiz va svetodiodlar uchun o'n sakkizta 5, 5 mm teshiklarni, shuningdek, vintlar uchun 4, 5 mm teshiklarni burg'ulaymiz. Keyin biz uni old panelga mahkamlashimiz va ikkalasini tekislash uchun zımpara qog'ozidan foydalanishimiz mumkin.

Oxirgi rasmda ko'rib turganingizdek, yorug'lik hozir ancha aniqroq ko'rinadi.

6 -qadam: Tugma ramkasini yarating

Tugma ramkasini yarating
Tugma ramkasini yarating
Tugma ramkasini yarating
Tugma ramkasini yarating
Tugma ramkasini yarating
Tugma ramkasini yarating

Biz qilmoqchi bo'lgan oxirgi korpus komponenti - bu tugmalar ramkasi.

Biz yana MDFdan kerakli o'lchamdagi bo'lakni kesib, unga shablon qo'shamiz, so'ngra biz kerakli teshiklarni burg'ulaymiz va arra yordamida o'rtasini kesib tashlaymiz.

Bizning ramkamiz 4 ta sensorli tugmachani, yorug'lik sensori va kichkina karnayni ushlab turishi kerak. Ularni ramkaga mahkamlashdan oldin, biz MDFdan ikkita kichikroq qopqoqni kesib tashladik. Keyin biz komponentlarimizni qopqoqlarga issiq yopishtiramiz va ularga simlar qo'shamiz.

Sensorli tugmachaning quvvat yostiqchalari parallel ulanadi, har bir chiqish liniyasi alohida simga ega bo'ladi. Bu hammasi ishlayotganini tekshirish uchun yaxshi vaqt. Yorug'lik sensori bir tomondan 5 voltga muhtoj bo'lgani uchun, biz uni signal tugmachalari VCC ga ulashimiz va simni boshqa oyog'iga lehimlashimiz mumkin.

Panellar tayyorlangandan so'ng, biz ularga va ularning simlariga joy ajratish uchun ramkaning yon tomonlarini kesib tashladik.

Keyin biz yog'och bo'laklarini changyutgich bilan olib tashlaymiz va ularni vinil bilan yopamiz.

Biz aniq pichoq yordamida vinil bo'laklarini, sensorli modullarimizning sezgir joylari ustida olib tashlaymiz. Ikki tomonlama lenta yordamida biz o'z tugmalarimizni MDFga ulashimiz mumkin. Men tugmalarimni kauchuk ko'pikdan yasadim, bu ularga chiroyli, yumshoq to'qimalarni beradi, lekin siz xohlagan metall bo'lmagan materialdan foydalanishingiz mumkin.

Biz ramkada pichog'imizni ishlatib, MDF -ni yana bir oz bo'shatamiz, bu bizga issiq yopishtiruvchi sirtini beradi. Keyin biz oxir -oqibat tarkibiy qismlarni ramkaning yon tomonlariga yopishtirishimiz mumkin.

7 -qadam: Asosiy tenglikni lehimlang

Asosiy tenglikni lehimlang
Asosiy tenglikni lehimlang
Asosiy tenglikni lehimlang
Asosiy tenglikni lehimlang
Asosiy tenglikni lehimlang
Asosiy tenglikni lehimlang

Keling, ramkani hozirgidek qoldirib, PCBga o'tamiz. Siz birinchi rasmda PCB sxemasini ko'rishingiz mumkin.

Biz eng past profilli komponentlarni elektron kartaga joylashtirishdan boshlaymiz. Eng kichik komponentlar - bu tel ko'priklar, men ularni juda kech esladim, shuning uchun men rezistorlar bilan ishlay boshladim. Biz o'z komponentlarimizni lehimlaymiz va keyingi qismlarga o'tamiz.

Keyingi qatorda bizda ayol sarlavhali pinlar bor. Bir oz joy tejash va elektronikani yon tomondan ulash uchun biz ularni 90 graduslik burchak ostida o'rnatamiz.

Transistorlar bizning tenglikni 2, 54 mm teshik oralig'iga to'g'ri kelmaydi, shuning uchun biz pense yordamida oyoqlarini ikkinchi rasmda ko'rsatilgan shaklga egamiz. Biz avval ularning bir oyog'ini joyiga lehimlaymiz va PCBni aylantiramiz. Keyin biz lehim birikmasini qayta isitamiz va komponentni to'g'ri joylashtirish uchun barmog'imiz yoki qisqichni ishlatamiz. Endi biz qolgan ikki oyog'imizni joyiga lehimlashimiz mumkin.

Barcha kichik qismlardan so'ng biz Arduino va real vaqtda soat modulini lehimlaymiz. RTC moduli, shuningdek, teshik oralig'iga to'g'ri kelmaydi, shuning uchun biz faqat 7 ta lehim tagliklari, bosh pimlari bilan jihozlangan tomonni jihozlaymiz. Qisqa tutashuvlarning oldini olish uchun biz uning ostiga lenta joylashtiramiz.

Bizning barcha komponentlarimiz lehimlanganligi sababli, taxtaning boshqa tomonida ulanishlar qilish vaqti keldi. Buning uchun biz izolyatsiyalanmagan simni chiqaramiz. Uni to'g'rilash uchun qisqichlardan foydalanish mumkin. Keyin biz simni mayda bo'laklarga kesib, uni tenglikka lehimlaymiz.

Ulanish uchun biz payvand chokini qizdiramiz va simni joylashtiramiz. Keyin biz lehim ionini kerakli haroratga yetguncha ushlab turamiz va lehim uni yopib qo'yadi va biz rasmdagi kabi bo'g'in olamiz. Agar biz simni qizdirmasak, biz boshqa misolga o'xshab ketadigan va juda yaxshi o'tkazmaydigan sovuq bo'g'imga duch kelishimiz mumkin. Biz payvandlashda simni pastga tushirish va uning tenglikni tenglamasiga yotqizilganligiga ishonch hosil qilish uchun sim kesgichimizdan foydalanishimiz mumkin. Uzunroq ulanish yo'llarida biz burchakka yoki keyingi komponentga yetguncha har 5-6 teshikdan bitta yostiqqa lehimlaymiz.

Bir burchakda biz lehim yostig'ining birinchi yarmidan yuqori simni kesib, oxirini lehimlaymiz. Keyin biz yangi simni olamiz va u erdan to'g'ri burchak ostida davom etamiz.

Bo'sh simli ulanishlarni o'rnatish juda murakkab va ma'lum mahorat talab qiladi, shuning uchun agar siz buni birinchi marta qilayotgan bo'lsangiz, uni to'g'ri ishlatishdan oldin, uni tenglamali PCBda qo'llash yomon emas.

Lehimlash tugagandan so'ng, biz yana ulanishlarni tekshiramiz va hech qanday qisqa tutashuv hosil qilmaganligimizga ishonch hosil qilamiz. Keyin biz PCBni tugma ramkasining ichiga qo'yib, kerakli ramka simlarining uzunligiga mos yozuvlar sifatida foydalanishimiz mumkin. Keyin biz simlarni kerakli uzunlikka kesib tashladik va ularga erkak bosh pimlarini qo'shdik.

Sensorli tugmachalarning barcha 5V va erga ulanishi 2pinli ulagichga birlashadi, 4 chiqish simlari 4pinli ulagichga va yorug'lik sensori chizig'iga, shuningdek ikkita karnay simlari uch pinli ulagichga birlashtirilgan. Har bir rozetka va ulagichning bir tomonini keskin yoki tasma bilan belgilashni unutmang, shuning uchun ularni tasodifan noto'g'ri ulab qo'ymang.

8 -qadam: soatni yig'ing

Soatni yig'ing
Soatni yig'ing
Soatni yig'ing
Soatni yig'ing
Soatni yig'ing
Soatni yig'ing
Soatni yig'ing
Soatni yig'ing

Shundan so'ng men old panelga qaytdim va oxirgi tegish sifatida shaffof lazerli printer plyonkasidan tayyorlangan stikerni ehtiyotkorlik bilan yopishtirdim.

Garchi men uni juda ehtiyotkorlik bilan qo'llagan bo'lsam -da, men qabariqsiz natijaga erisha olmadim, bu, afsuski, yaqinroq tekshirilganda aniq ko'rinadi. Folga burchaklarga yaxshi yopishmaydi, shuning uchun men bu echimni tavsiya qila olmayman.

Buni, ehtimol, yaxshiroq stiker yordamida qilish mumkin, yoki agar siz chizishni yaxshi bilsangiz, raqamlarni uchi bilan qo'shishingiz mumkin.

Endi bizda barcha komponentlar bor va biz soatni yig'a olamiz.

Biz yorug'lik qo'llanmasini va old panelni birlashtirishdan boshlaymiz. Hamma 4 ta murvat o'rnatilgandan so'ng, biz ikkita panelni tekislaymiz va keyin ularni mahkamlaymiz. Bir nechta yong'oq keyinroq yorug'lik paneli keladi, biz yo'nalishni ko'rib chiqishimiz kerak. Kabel yuqori qismida bo'lishi kerak.

Uchinchi qism - bu tugma ramkasi. Shuni yodda tutingki, old tomondan qaraganingizda, karnay soatning o'ng tomonida bo'lishi kerak. O'rnatishdan oldin, old panelning simini ramkaning o'rtasidan torting.

Endi biz oldingi yig'ilish yordamchisini qo'yamiz va orqa panelga o'tamiz. Rasmda siz mening chiroyli 90 darajali mini USB adapterimni ham ko'rishingiz mumkin. Men sizga mos adapterni bog'ladim, shuning uchun siz bunday tartibsizlikka duch kelmaysiz. Siz shunchaki adapterni ulashingiz va kabelni orqa paneldagi teshikdan o'tkazishingiz mumkin.

Kichkina oynani tuzatish uchun biz M3 vintlarini va tenglikni ajratgichlarini olamiz. Vintlarni ehtiyotkorlik bilan mahkamlash juda muhim, chunki biz akrilni shikastlamoqchi emasmiz. Keyin biz PCB -ni olamiz, adapterni ulaymiz va uni ajratgichlarga mahkamlaymiz. Komponent tomoni derazaga qaragan bo'lishi kerak, Arduino USB porti soatning pastki qismiga qaragan bo'lishi kerak.

Keyin biz barcha ulagichlarni oldingi yig'ilishdan ulaymiz, shu bilan birga kutupluluğu yodda tutamiz va barcha simlarni soatga ehtiyotkorlik bilan siqamiz. Keyin biz uni orqa panel bilan yopib, qolgan 4 ta qulf somunini mahkamlashimiz mumkin.

Oxir -oqibat, siz har bir panelning har bir tomonida kir yuvish mashinasiga ega bo'lishni xohlaysiz, yorug'lik yo'riqchisi esa to'g'ridan -to'g'ri old panelning orqasida joylashgan. Bizda yorug'lik yo'riqnomasi va svetodiod paneli o'rtasida bitta yong'oq bor va yana ikkitasi tugmachadan ajratib turadi. Buni oxirgi rasmda ham ko'rishingiz mumkin.

40 mm uzunlikdagi qisqa murvat ishlatganim uchun, menda faqat 3 ta yong'oq bor, ular orqa panelni va ramkani bir -biridan ajratib turadi. To'g'ri 45 mm murvat bilan siz bu erga boshqa yong'oq, shuningdek, bir yoki ikkita qo'shimcha yuvish vositasini qo'shasiz. Yig'ilish oxirida bizda qulflangan non bor, shunda hamma narsa joyida qoladi.

9 -qadam: Kodni yuklang va yorug'lik sensori sozlang

Kodni yuklang va yorug'lik sensori sozlang
Kodni yuklang va yorug'lik sensori sozlang
Kodni yuklang va yorug'lik sensori sozlang
Kodni yuklang va yorug'lik sensori sozlang
Kodni yuklang va yorug'lik sensori sozlang
Kodni yuklang va yorug'lik sensori sozlang

Kodni yuklash vaqti keldi.

Birinchidan, biz barcha kerakli fayllarni yuklab olamiz va ularni ochamiz. Keyin biz Arduino kutubxonalari papkasini ochamiz va unga barcha yangi kutubxonalarni tashlaymiz.

Endi biz yorug'lik sensori kalibrlash eskizini ochamiz, bu bizga soatning avtomatik dimmer funktsiyasining yorqin va qorong'i qiymatlarini beradi. Biz uni yuklaymiz, ketma -ket monitorni ochamiz va ekrandagi ko'rsatmalarga amal qilamiz.

Bu bajarilgandan so'ng biz ikkilik soatlarning haqiqiy kodini ochamiz va ikkita qiymatni biz o'lchagan qiymatlar bilan almashtiramiz.

Biz boshqa barcha oynalarni yopamiz, kodni soatimizga yuklaymiz va ishimiz tugadi.

Yangi gadjet bilan o'ynash vaqti keldi.

10 -qadam: Ikkilik tizimga tezkor kirish

Ikkilik tizimga tezkor kirish
Ikkilik tizimga tezkor kirish
Ikkilik tizimga tezkor kirish
Ikkilik tizimga tezkor kirish
Ikkilik tizimga tezkor kirish
Ikkilik tizimga tezkor kirish
Ikkilik tizimga tezkor kirish
Ikkilik tizimga tezkor kirish

Davom etishdan oldin, ehtimol sizning ongingizdan o'tgan bitta savolga javob bermoqchiman.

"Dunyoda bu soatni qanday o'qiysiz?"

Buning uchun men sizga ikkilik tizim haqida qisqacha ma'lumot bermoqchiman.

Biz hammamiz o'nlik tizimni yaxshi bilamiz, bu erda har bir raqam 0 dan 9 gacha bo'lgan 10 xil holatga ega bo'lishi mumkin. Ikkilikda har bir raqam faqat ikkita holatga ega bo'lishi mumkin, yo 1 yoki 0, shuning uchun siz oddiy narsadan foydalanishingiz mumkin. ikkilik raqamni ko'rsatish.

O'ndan katta bo'lgan raqamlarni o'nli kasrlarda ko'rsatish uchun biz ko'proq raqamlarni qo'shamiz. Har bir raqam ma'lum bir ko'paytma bilan birga keladi. O'ng tarafdagi birinchi raqam 1 -sonli multiplikator bilan birga keladi, keyingi 10 -da, keyingi 100 -da. Har bir yangi raqam bilan ko'paytirgich oldingi raqamdan o'n barobar katta bo'ladi. Biz bilamizki, ikkinchi raqam bitta raqamni chapga qo'yib, 20 raqamini bildiradi. Ikki raqam chapda, 200 ni bildiradi.

Ikkilik tizimda har bir raqam ko'paytirgich bilan birga keladi. Biroq, har bir raqam faqat ikki xil holatga ega bo'lishi mumkinligi sababli, har bir yangi multiplikator avvalgisidan ikki baravar katta. Aytgancha, ikkilik raqamlar Bits deb nomlanadi. Keling, bizning birinchi misolimizni ko'rib chiqaylik, agar biz 1ni eng past joyga qo'ygan bo'lsak, bu oddiy 1, lekin agar biz uni ko'paytirgichimiz 2 bo'lgan keyingi yuqori pozitsiyaga qo'ysak, u ikkilikda 2 raqamini ifodalaydi.

Rasmning pastki qismidagi biroz murakkabroq misol. Uchinchi va birinchi bitlar yoqilgan. Bu erda ko'rsatilgan kasr sonini olish uchun biz faqat ikkita bitning qiymatlarini qo'shamiz. Shunday qilib, 4 * 1 + 1 * 1 yoki 4 + 1 bizga 5 raqamini beradi.

8 bitni bayt deb atashadi, shuning uchun agar biz butun baytni bayt bilan to'ldirsak, qanday sonni olamiz.1+2+4+8+16+32+64+128 - bu 255, bu bitta bayt bo'lishi mumkin bo'lgan eng yuqori qiymatdir.

Aytgancha, o'nlik tizimda eng ko'p ko'paytirgichli raqam har doim birinchi o'rinda turadi, sizda raqamni ikkilikka yozishning ikkita usuli bor. Bu ikkita usul birinchi muhim bayt (LSB) va eng muhim bayt birinchi (MSB) deb nomlanadi. Agar siz ikkilik raqamni o'qishni xohlasangiz, ikkita formatning qaysi biri ishlatilishini bilishingiz kerak. O'nli kasr tizimiga yaqin bo'lgani uchun, bizning ikkilik soatimiz MSB variantidan foydalanadi.

Keling, haqiqiy dunyodagi misolimizga qaytaylik. Oltinchi rasmda ta'kidlanganidek, bizning soatimiz soatni ko'rsatish uchun 4 bitga ega. Bundan tashqari, bizda bir daqiqa uchun 6 bit, ikkinchisida 6 bit bor. Yana bizda bitta ertalabki/kechki bit bor.

Xo'sh, menga ayting -chi, oxirgi rasmga o'tishdan ko'ra, 6 -rasmda soat nechada?. ….

soat bo'limida bizda 2+1 bor, bu 3 va kechki soat bit, shuning uchun kech bo'ladi. Keyingi daqiqada 32+8, ya'ni 40. soniyalarda bizda 8+4+2, ya'ni 14. Shunday qilib, soat 15:40:14 yoki 15:40:14.

Tabriklaymiz, siz faqat ikkilik soatni o'qishni o'rgandingiz. Albatta, bir oz o'rganishga to'g'ri keladi va boshida siz raqamlarni qo'shishingiz kerak bo'ladi, har safar soat nechada ekanligini bilmoqchi bo'lasiz, lekin shunga o'xshash raqamsiz analog soatga o'xshab, siz LEDlarning naqshlariga ko'nikasiz. vaqt.

Va bu loyihaning asosiy qismi, ikkilik tizimga o'xshash mavhum narsani haqiqiy dunyoga olib kirish va uni yaxshiroq bilish.

11 -qadam: Ikkilik budilnikdan foydalanish

Ikkilik budilnikdan foydalanish
Ikkilik budilnikdan foydalanish
Ikkilik budilnikdan foydalanish
Ikkilik budilnikdan foydalanish
Ikkilik budilnikdan foydalanish
Ikkilik budilnikdan foydalanish

Endi biz oxir -oqibat soat bilan o'ynashni xohlaymiz, shuning uchun boshqaruvni tezda ko'rib chiqaylik.

Dastur bitta tugmani bosish, ikki marta bosish va uzoq bosishni farqlay oladi. Shunday qilib, har bir tugma bir nechta amallar uchun ishlatilishi mumkin.

Yuqoriga yoki pastga tugmasini ikki marta bosish LEDning rang rejimini o'zgartiradi. Siz har xil statik va xira rang rejimlarini, shuningdek harorat rejimini tanlashingiz mumkin. Agar siz statik rang rejimlaridan birida bo'lsangiz, yuqoriga yoki pastga tugmani bosib tursangiz, rang o'zgaradi. O'chirish rejimida bir marta bosish animatsiya tezligini o'zgartiradi.

Dimmer rejimini o'rnatish uchun OK tugmasini ikki marta bosing. Led paneli bir necha marta miltillash orqali o'rnatilgan rejimni ko'rsatadi.

  • Bir marta dimmer yo'q degan ma'noni anglatadi.
  • Ikki marta yorqinlik yorug'lik sensori tomonidan boshqarilishini bildiradi.
  • Uch marta va LEDlar 10 soniya harakatsizlikdan so'ng avtomatik ravishda o'chadi.
  • To'rt marta va ikkala dimmer rejimi birlashtirilgan.

Ok tugmachasini uzoq bosib turish vaqtni sozlash rejimiga olib keladi, bu erda siz raqamni o'zgartirish uchun yuqoriga va pastga o'qlarini ishlatishingiz mumkin. Ok tugmachasini bir marta bosish sizni soatlardan daqiqalarga olib keladi, yana bir marta bosish mumkin va siz soniyalarni o'rnatishingiz mumkin. Shundan so'ng, oxirgi marta bosish yangi vaqtni tejaydi. Agar siz vaqtni sozlash rejimiga kirsangiz, siz 10 soniya kutishingiz mumkin va soat avtomatik ravishda undan chiqib ketadi.

OK tugmachasida bo'lgani kabi, signal tugmachasini uzoq bosib turish signalni o'rnatishga imkon beradi. Signal tugmachasini ikki marta bosish signalni yoqadi yoki o'chiradi.

Agar soat jiringlayotgan bo'lsa, signal tugmachasini bir marta bosish kifoya, uni 5 daqiqa uxlashga yuborish yoki ushlab turish, signalni o'chirish uchun.

Bu shu paytgacha mavjud bo'lgan barcha funktsiyalar edi. Agar siz dasturiy ta'minotning eng so'nggi versiyasini yuklab olsangiz, kelajakda men ko'proq narsani qo'shishim mumkin.

12 -qadam: Kodni tushunish (ixtiyoriy)

Kodni tushunish (ixtiyoriy)
Kodni tushunish (ixtiyoriy)

Bilaman, ko'pchilik dasturlashni unchalik yoqtirmaydi. Yaxshiyamki, bu odamlar uchun bu ikkilik soatni yaratish va ishlatish uchun hech qanday dasturiy bilim talab qilinmaydi. Agar siz dasturlash tomoni haqida qayg'urmasangiz, bu bosqichni o'tkazib yuborishingiz mumkin.

Ammo, agar siz kodlash qismiga qiziqsangiz, men sizga dastur haqida umumiy ma'lumot bermoqchiman.

Soatlar kodining har bir kichik detalini tushuntirish o'z -o'zidan ko'rsatma bo'lardi, shuning uchun men dasturni ob'ektga yo'naltirilgan tarzda tushuntirib beraman.

Agar siz bu nimani anglatishini bilmasangiz, ob'ektga yo'naltirilgan dasturlash (OOP) C ++ kabi zamonaviy dasturlash tillarining kontseptsiyasidir. Bu sizga turli funktsiyalar va o'zgaruvchilarni sinflarga ajratish imkonini beradi. Sinf - bu bir yoki bir nechta ob'ektni yaratishingiz mumkin bo'lgan shablon. Ushbu ob'ektlarning har biri o'z nomini oladi va o'z o'zgaruvchilar to'plamiga ega.

Masalan, soat kodida signalButton kabi bir nechta MultiTouchButton moslamalari ishlatiladi. Bu mening Button kutubxonam tarkibiga kiruvchi MultiTouchButton sinfidagi ob'ektlar. Bu ob'ektlarning ajoyib tomoni shundaki, siz ular bilan haqiqiy dunyo ob'ektlariga o'xshash tarzda muloqot qilishingiz mumkin. Masalan, signal tugmasi ikki marta bosilganligini signalButton.wasDoubleTapped () ga qo'ng'iroq qilib tekshirishimiz mumkin. Bundan tashqari, bu funktsiyani amalga oshirish boshqa faylda yaxshi yashiringan va biz kodimizdagi boshqa narsani o'zgartirib, uni buzish haqida xavotir olmasligimiz kerak. Adafruit veb -saytida ob'ektga yo'naltirilgan dasturlash dunyosiga tezda kirish mumkin.

Yuqoridagi rasmda ko'rib turganingizdek, soatlar dasturida turli xil ob'ektlar bor.

Biz shunchaki kirish tugmachalarini bosish, ikki marta bosish yoki uzoq bosish kabi izohlay oladigan tugmachali ob'ektlar haqida gaplashdik.

Jukebox, nomidan ko'rinib turibdiki, shovqin chiqarishi mumkin. U bir nechta ohanglarga ega, ularni kichik karnay orqali ijro etish mumkin.

BinaryClock obyekti vaqt va signal sozlamalarini, shuningdek, signalni kuzatishni boshqaradi. Bundan tashqari, rtc modulidan vaqt keladi va uni ledPanel uchun ikkilik axborot buferiga aylantiradi.

ColorController rang effektining barcha funktsiyalarini qamrab oladi va ledPanel uchun colorBuffer -ni ta'minlaydi. Bundan tashqari, Arduinos EEProm -dagi holatini saqlaydi.

Dimmer soatlarning yorqinligi haqida qayg'uradi. Foydalanuvchi aylanishi mumkin bo'lgan turli xil rejimlarga ega. Joriy rejim ham EEPromda saqlanadi.

LEDPanel har bir LEDning rang qiymati, yorqinligi va ikkilik holati uchun turli xil buferlarni boshqaradi. Qachon pushToStrip () funktsiyasi chaqirilsa, u ularni ustiga qo'yadi va ularni chiziqli chiziqqa yuboradi.

Barcha ob'ektlar asosiy ("o'rnatish" va "loop" funktsiyalari bilan) orqali "bog'langan" bo'lib, u faqat uchta muhim vazifani bajarish uchun bir nechta funktsiyalarni o'z ichiga oladi.

  1. Foydalanuvchilarning kirishini talqin qilish - bu 4 tugmachali ob'ektlardan olingan ma'lumotlarni oladi va ularni mantiqqa kiritadi. Bu mantiq soatning hozirgi holatini tekshiradi, agar soat normal bo'lsa, vaqtni sozlash yoki qo'ng'iroq qilish rejimida va shunga mos ravishda boshqa ob'ektlardan turli funktsiyalarni chaqiradi.
  2. Ob'ektlar o'rtasidagi aloqani boshqarish - u doimiy ravishda binaryClock ob'ektini, agar u yangi ma'lumotga ega bo'lsa yoki signal qo'ng'iroq qilayotgan bo'lsa () so'raydi. Agar u yangi ma'lumotga ega bo'lsa, u infoBufferni binaryClock -dan oladi va uni ledPanel ob'ektiga yuboradi. Agar soat jiringlayotgan bo'lsa, u kutubxonani ishga tushiradi.
  3. Ob'ektlarni yangilash - dasturning har bir ob'ektida kirishni tekshirish yoki LED rangini o'zgartirish kabi narsalar uchun ishlatiladigan yangilash tartibi mavjud. Soat to'g'ri ishlashi uchun ularni loop funktsiyasida qayta -qayta chaqirish kerak.

Bu sizga alohida kod qismlari qanday ishlashi haqida umumiy tushuncha berishi kerak. Agar aniqroq savollaringiz bo'lsa, mendan so'rashingiz mumkin.

Mening kodim aniq mukammal emasligi sababli, men kelajakda uni yanada takomillashtiraman, shuning uchun ba'zi funktsiyalar o'zgarishi mumkin. OOPning ajoyib tomoni shundaki, u hali ham xuddi shunday ishlaydi va siz uni tushunish uchun grafikdan foydalanishingiz mumkin.

13 -qadam: Yakuniy so'zlar

Yakuniy so'zlar
Yakuniy so'zlar

Siz shu paytgacha o'qishni davom ettirganingizdan xursandman. Bu shuni anglatadiki, mening loyiham juda zerikarli emas edi:).

Men bu ish soatiga juda ko'p ish olib keldim va siz uchun osonroq bo'lishi uchun o'zingizning ikkilik budilnikingizni yasash uchun barcha hujjatlar va videolarda ko'proq ish qildim. Umid qilamanki, mening harakatim bunga loyiq edi va men sizni kelgusi hafta oxiri loyihangiz uchun ajoyib g'oya bilan bog'lay olaman yoki hech bo'lmaganda sizga ilhom bag'ishlayman.

Quyidagi izohlarda soat haqidagi fikringizni eshitishni istardim:).

Har bir tafsilotni yoritishga harakat qilgan bo'lsam ham, bir -ikki narsani o'tkazib yuborgan bo'lardim. Shuning uchun, agar savollar qolsa, bemalol so'rang.

Har doimgidek, o'qiganingiz va baxtli qilganingiz uchun sizga katta rahmat.

LED tanlovi 2017
LED tanlovi 2017
LED tanlovi 2017
LED tanlovi 2017

2017 yilgi LED tanlovida ikkinchi o'rinni egalladi

Tavsiya: