Мазмұны:

Неопиксельді қолданатын жарықдиодты сағат: 4 қадам (суреттермен)
Неопиксельді қолданатын жарықдиодты сағат: 4 қадам (суреттермен)

Бейне: Неопиксельді қолданатын жарықдиодты сағат: 4 қадам (суреттермен)

Бейне: Неопиксельді қолданатын жарықдиодты сағат: 4 қадам (суреттермен)
Бейне: Угрюм-река (1969) (1 серия) фильм 2024, Шілде
Anonim
Неопиксельді қолданатын жарықдиодты сағат
Неопиксельді қолданатын жарықдиодты сағат
Неопиксельді қолданатын жарықдиодты сағат
Неопиксельді қолданатын жарықдиодты сағат
Неопиксельді қолданатын жарықдиодты сағат
Неопиксельді қолданатын жарықдиодты сағат
Неопиксельді қолданатын жарықдиодты сағат
Неопиксельді қолданатын жарықдиодты сағат

60 неопиксельді қолдана отырып, жарықдиодты сағатты қалай жасау керектігі туралы менің нұсқаулығыма қош келдіңіз.

Сіз PDF форматындағы 3 файлды сегменттің сегментіне, екіншісін негізге, соңғысын - бөлімдерді желімдеуге көмектесетін шаблонды таба аласыз.

Сондықтан мұны аяқтау үшін сізге төмендегілер қажет болады

  • 60 неопиксель сақинасы 4 тоқсанда келеді. «ws2812 сақина 60» іздеу (£ 12.00)
  • «DS3231 модулін» RTC бойынша іздеу (£ 2.50)
  • Ардуино Нано (£ 4)
  • 3 мм/1/8 дюймдік фанера.
  • сым бөліктері. айналаңызда біраз болады деп үміттенесіз бе?
  • 5В USB қуат көзі. Сіздің балалар қосқышты бұзатын түрі.

Төменде Lipo батареясымен жұмыс жасайтын заттар бар, бірақ тестілеуден кейін сағат тым көп қуатты тұтынды, сондықтан батарея USB розеткасына қосылды.

  • dc-dc түрлендіргішті іздеу «түрлендіргішті күшейту» (£ 3)
  • TP4056 зарядтау схемасы іздеу «tp4056» (2 фунт стерлинг)
  • LiPo 1000Mah бір ұяшық. «1000mah lipo 3.7» немесе «503450 lipo» (8.00 фунт) іздеу

LiPo нөмірі - 503450, және бұл ұзындығы 50 мм ені 34 мм және тереңдігі 5,0 дегенді білдіретінін білу жақсы болар еді.

1 -қадам: Ағаш шыбықтар

Ағаш биттері
Ағаш биттері
Ағаш биттері
Ағаш биттері
Ағаш биттері
Ағаш биттері

Сіз суреттерде мен дизайнды басып шығарғанымды және фанераға жабыстырғанымды көруіңіз керек. Мен бірден 3 бөлікті кесіп тастадым, ал төменгі бөлігі алдымен периметрі бойынша кесілді, содан кейін бір бөлік (артқы жағынан), содан кейін қалған екі бөлікте тесік кесілді. тек алдыңғы бөлігін қалдырып алып тастады, содан кейін сымдар үшін ойық кесілді.

Барлық биттерді кесіп тастағаннан кейін алдымен олардың бір -біріне қалай сәйкес келетінін тексеру керек, содан кейін олардың бәрін жабыстырыңыз. Мен бәрі дұрыс дөңгелек екеніне көз жеткізу үшін сағат жоспарының үстіне 3 қабатты салдым. Сондай -ақ, төменгі бөліктерді дұрыс бағытта алғаныңызға көз жеткізіңіз, ал ортаңғы тілім төңкерілген, осылайша сіз буындарды айналдырасыз.

Алдыңғы бөліктердегі тесіктер ширектердегі дәнекерленген қосылыстардың отыруына мүмкіндік береді, ал төменгі бөлігі сымдардың өтуіне мүмкіндік береді.

Суреттер сериясы сонымен қатар базаның қалай біріктірілгенін көрсетеді.

2 -қадам: жарықдиодты сақинаны сыммен жалғау

Жарықдиодты сақинаны сыммен қосу
Жарықдиодты сақинаны сыммен қосу
Жарықдиодты сақинаны сыммен қосу
Жарықдиодты сақинаны сыммен қосу
Жарықдиодты сақинаны сыммен қосу
Жарықдиодты сақинаны сыммен қосу
Жарықдиодты сақинаны сыммен қосу
Жарықдиодты сақинаны сыммен қосу

Бұл қадам туралы көп айтуға болмайды, бірақ егер сіз WS2812LED жолағын пайдаланбаған болсаңыз, олар ақылды, сондықтан олардың әрқайсысында деректер мен кірістер бар. 15 жарықдиодты доғаларда ПХД барлық қосылымдарды басқарады, бірақ сіз бөлімдерге қосылуға келгенде сіз қуат қосылымдары мен деректерді жасауыңыз керек. Байланыстарды дұрыс ала алмайсыз, себебі олар шеңберде, бірақ сіз шеңберді аяқтағаннан кейін сымдарды IN деректеріне қосуға мүмкіндік беретін IN/OUT деректерінде бір сілтеме болмауы керек. Сымдар IN деректеріне қосылатын жерде бірінші жарық диоды болады немесе ол нөлге сәйкес нөмірленеді.

Мен LED сақинасын ағаш сақинасына бекітудің ең жақсы әдісі қалай деп ойладым? бірақ соңында мен айналдыра сым мен тоқыма станогын қолдануды шештім.

3 -қадам: Arduino Nano мен қуатты қосу

Arduino Nano мен Power сымдары
Arduino Nano мен Power сымдары
Arduino Nano мен Power сымдары
Arduino Nano мен Power сымдары
Arduino Nano мен Power сымдары
Arduino Nano мен Power сымдары

Мен бастапқыда бұл жобада LiPo қолдануды шештім, бірақ мен оны сынап көргенде батарея бір түнде таусылды. Бастапқыда мен аккумулятор батып кеткен шығар деп ойладым, сондықтан мен токты өлшедім және схема 73 мА болатынын білдім, бұл батареяда одан да көп болады. Мен аккумулятордағы токты (күшейткіш түрлендіргіштен бұрын) өлшедім және оның 110мА жоғары екенін анықтадым. Бұл сағат батареямен жұмыс жасамайтыны белгілі болды.

Сондықтан мен 5В USB зарядтағышын қолдануды жөн көрдім. Менде қосқыштардың екі кішкентай баладан зорлық -зомбылық алуына байланысты көптеген өлі USB зарядтағыштары бар.

Біз WS2812 жарықдиодты қолданғандықтан, бізде Arduino Nano -мен 3 байланыс бар.

  • Қуат
  • Жер
  • Деректер IN. Nano -дағы D2 қызғылт сары

Содан кейін бізде РТЖ бар, тек 4 сым бар.

  • Қуаты 5 вольт
  • Жер
  • SCL (I2C сағаты) Nano -дағы A5 -тен көкке дейін
  • SDA (I2C деректері) Nano -дағы A4 -тен сарыға дейін

Ақырында бізге қуат қажет, бұл Нанодағы 5 В қуат терминалына кетеді. Vin 5 вольттан (яғни 7-12 вольттан) жоғары кернеуге және жерге тұйықталған.

4 -қадам: Бағдарлама

Маған бағдарламалау өте ұнайды, мен онша жақсы емеспін.

Есеп 1

Секундтар мен минуттар 0-59 аралығындағы сан ретінде дұрыс берілген. Бірақ бірінші жарық диоды, демек нөл төменгі жағында. Сондықтан бұл жағдайды түзету қажет болды.

дұрыс емесPos (int A)

{if (A 30) {A = A - 31; }} температура = A; }

Есеп 2

Мен жаңа позицияны көрсетпес бұрын барлық светодиодтарды тазартуға тырыстым, бірақ бұл светодиодтың жыпылықтауына әкелді. Мен келесі жарық диодты қосуды шештім, содан кейін алдыңғы шамды өшірдім. Бұл жақсы жұмыс істеді ме? ЖОҚ, өйткені егер жаңа позиция нөлге тең болса, ол -1 өшіруге тырысады. сондықтан бұл бір уақытта шешілді.

void deletePrevious (int B)

// алдыңғы жарықдиодты өшіріңіз, егер ол нөл болса, онда // өшіріңіз 59 басқа 1 -ді алып тастаңыз // оны өшіріңіз. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // Барлығы өшірулі} басқа {strip.setPixelColor (B - 1, 0, 0, 0); // барлығы өшірулі}}

3 -мәселе

Жоғарыда айтылғандарды орындау жаңа екінші орын ескі минуттың орнына келгенше жақсы жұмыс істеді. Бұл секундтардан кейін жаңартылған минут өшірілгенін білдіреді! Сағат/минут үшін де дәл солай

егер (секунд == мин-1)

{strip.setPixelColor (мин-1, 0, 30, 0); }

Есеп 4

Жағдайлар жақсы бола бастады, сондықтан түстер бір қалыпқа түскенде араластырайық?

егер (минут == сек)

{strip.setPixelColor (мин, 15, 13, 0); // жасыл және қызыл түспен сары түске боялады. }

Есеп 5

Сағат 24 сағат форматынан басталады. сондықтан бұл алдымен түзетуді қажет етеді

егер (сағат> 12)

{сағат = сағат -12; }

Есеп 6

Сондай -ақ, тәулігіне 24 сағат бар екенін ұмытпаңыз, менде 60 жарық диоды бар. Шынымен де оны 5 -ке көбейту оңай

сағат = сағат * 5;

Есеп 7

Жоғарыда айтылғандарды орындап, қазір бізде 4 светодиод бар, егер ол барлық жарықдиодты қолданса және бір сағаттың бөлшектерін дұрыс көрсетсе, әлдеқайда жақсы болар еді? Тағы да бұл оңай түзету болды, мен бастапқы минут санын 12 -ге бөлдім.

сағат = сағат + (addMin/12);

Есеп 8

Сағат немесе минут шамы төменгі жағында болғанда, секундтар бір секунд бұрын жоғалады.

сағат = егер (минут == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // green}} if (hours == 0) {if (secs == 59) {strip.setPixelColor (59, 0), 30, 0); // жасыл}}

Есеп 9

Уақытты орнату. Мен бұл құрылысты өте қарапайым етіп сақтауды шештім, сондықтан уақытты реттейтін түймелер жоқ. Сондықтан сағатты компьютерге қосу және жаңа уақытты жүктеу ғана қалады. Төмендегі бөлімді түсіндіріп, қажетті уақытты орнатыңыз, содан кейін бағдарламаны жүктеңіз. Жолды дұрыс түсіндіріп, бағдарламаны қайта жібергеннен кейін, егер сіз қуаттан айырылсаңыз, ол қайта орнатады және ескі уақытты қайта жүктейді.

// 2020 жылдың 12 сәуірі, 23:20, сіз қоңырау шалатын едіңіз:

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

Ұсынылған: