Мазмуну:

LED сааты Neopixels менен: 4 кадам (сүрөттөр менен)
LED сааты Neopixels менен: 4 кадам (сүрөттөр менен)

Video: LED сааты Neopixels менен: 4 кадам (сүрөттөр менен)

Video: LED сааты Neopixels менен: 4 кадам (сүрөттөр менен)
Video: Огромный OLED экран 2.42" на контроллере SSD1309, обзор и подключение к Arduino 2024, Июнь
Anonim
LED сааты неопикселдерди колдонуу
LED сааты неопикселдерди колдонуу
LED сааты неопикселдерди колдонуу
LED сааты неопикселдерди колдонуу
LED сааты неопикселдерди колдонуу
LED сааты неопикселдерди колдонуу
LED сааты неопикселдерди колдонуу
LED сааты неопикселдерди колдонуу

60 неопикселди колдонуу менен LED саатын кантип жасоо боюнча менин көрсөтмөмө кош келиңиз.

Сиз 3 PDF тиркемесин сааттын сегменттери үчүн, экинчиси база үчүн, акыркысы бөлүмдөрдү бири -бирине жабыштырууга жардам берүү үчүн шаблон таба аласыз.

Ошентип, муну аягына чыгаруу үчүн сизге төмөнкүлөр керек болот

  • 60 неопикселдин шакеги 4 чейректе келет. "ws2812 шакеги 60" издөө (£ 12.00)
  • "DS3231 модулу" үчүн RTC издөө (£ 2.50)
  • Ардуино Нано (£ 4)
  • 3мм/1/8 "фанера.
  • зым даана. үмүттөнөм, сизде тегерегиңиз барбы?
  • 5V USB энергия менен камсыздоо бирдиги. Балдарыңыздын туташтыргычын жок кылган түрү.

Төмөндө Lipo батарейкасы бар нерселер бар, бирок тестирлөөдөн кийин саат өтө көп энергияны сарптады, ошондуктан батарейка USB PSU'нун пайдасына түштү.

  • dc-dc конвертер издөө "тездетүүчү конвертер" (£ 3)
  • Заряддоо схемасы TP4056 издөө "tp4056" (£ 2)
  • LiPo 1000Mah бир клетка. "1000mah lipo 3.7" ЖЕ "503450 lipo" издөө (£ 8.00)

LiPo номери 503450 жана бул туурасы 50 мм, туурасы 34 мм жана терең 5,0 дегенди билүү жагымдуу болушу мүмкүн.

1 -кадам: Wood Bits

Wood Bits
Wood Bits
Wood Bits
Wood Bits
Wood Bits
Wood Bits

Дизайнды басып чыгарып, фанерага чаптап койгонумду сүрөттөрдөн көрө аласыңар. Ачык көрүнбөгөн нерсе, мен бир эле убакта 3 бөлүмдү кесип алдым, ал эми астыңкы бөлүгү биринчи кезекте периметрдин тегерегинде кесилет, андан кийин бир бөлүгү алынып салынат (арткы жагынан), тешик калган эки бөлүмдө, андан кийин башка бөлүмдө кесилет Алдыңкы битти калтырып, андан кийин зымдардын тешигин кесип салышты.

Бардык биттер кесилгенден кийин, биринчиден, алардын баары бири -бирине кантип туура келерин текшерип, анан баарын жабыштырып алышыңыз керек. Мен бардыгы туура тегерек экенине ынануу үчүн сааттын планынын үстүнө 3 катмарды курдум. Төмөнкү бөлүктөрдү туура багытта алгандыгыңызды текшериңиз жана ортоңку бөлүк тескери орнотулган, ошондуктан сиз муундарды айланып өтөсүз.

Алдыңкы бөлүктөрдөгү тешиктер чейректердеги ширетилген муундарды отургузууга мүмкүндүк берет, ал эми төмөнкү бөлүгү зымдардын өтүшүнө шарт түзөт.

Сүрөттөр сериясы базанын кантип бириктирилгенин да көрсөтөт.

2 -кадам: LED шакегин зымга өткөрүү

LED шакекчесин өткөрүү
LED шакекчесин өткөрүү
LED шакекчесин өткөрүү
LED шакекчесин өткөрүү
LED шакекчесин өткөрүү
LED шакекчесин өткөрүү
LED шакекчесин өткөрүү
LED шакекчесин өткөрүү

Бул кадам жөнүндө айта турган көп нерсе жок, бирок сиз WS2812LED тилкесин колдоно элек болсоңуз, анда алар интеллектуалдуу, андыктан алардын ар биринин маалыматы кирип -чыгат. 15 светодиоддорунда ПКБ бардык байланыштарды башкарат, бирок сиз бөлүмдөргө кошулууга келгенде сиз кубаттуулукту жана маалыматтарды түзүшүңүз керек. Сиз туташууларды туура эмес ала албайсыз, анткени алар тегеректе, бирок сиз айланып бүткөндөн кийин зымдарды IN маалыматына туташтыруу үчүн IN/OUT маалыматында бир шилтеме жок болушу керек. Зымдар IN маалыматына туташкан жерде биринчи LED болот же ал нөлгө туура коюлган.

Мен LEDдин шакегин жыгач шакекке кантип оңдоонун эң жакшы жолу деп ойлондум? бирок аягында мен ар дайым светодиодду өткөрүп жиберип, тегерете жип менен токуучу станокту колдонууну чечтим.

3 -кадам: Arduino Nano жана Power зымдарын өткөрүү

Arduino Nano жана Power зымдары
Arduino Nano жана Power зымдары
Arduino Nano жана Power зымдары
Arduino Nano жана Power зымдары
Arduino Nano жана Power зымдары
Arduino Nano жана Power зымдары

Мен адегенде бул долбоордо LiPo колдонууну чечтим, бирок аны сынап көргөндө батарейкасы түнү бою түгөндү. Башында мен батарейка дофф болушу мүмкүн деп ойлогом, ошондуктан мен токту өлчөп, схема 73 мА чийип жатканын билдим, бул батарейкада көп болот. Чынында, мен батареянын агымын ченедим (күчөткүчтү алмаштыргычтан мурун) жана 110мАдан ашык экенин байкадым. Ошентип, бул саат батарейка менен иштебей турганы көрүнүп турду.

Ошентип, анын ордуна 5V USB кубаттагычын колдонууну чечтим. Коннекторлор эки кичинекей баладан кордук көргөндүктөн, менде көп USB заряддагычтар бар.

Ошентип, биз WS2812 LEDди колдонуп жаткандыктан, бизде Arduino Nano менен 3 гана байланыш бар.

  • Күч
  • Жер
  • Маалымат IN. Nanoдогу D2ден кызгылт сары

Кийинки бизде РТК бар, бул болгону 4 зымга ээ.

  • Күч 5 Вольт
  • Жер
  • SCL (I2C Сааты) Nano боюнча A5 үчүн Blue
  • SDA (I2C маалыматтар) Nano боюнча A4кө чейин сары

Акырында бизге күч керек жана бул Нанодогу 5 В кубаттуу терминалга барат.. Вин 5 вольттон (башкача айтканда 7-12 Вольттон) жана жерге караганда чоңураак чыңалууга ылайыкталган.

4 -кадам: Программа

Мен программалоону абдан жакшы көрөм, мен анча жакшы эмесмин.

Көйгөй 1

Секунддар жана мүнөттөр туура 0-59га чейинки сан катары берилген. Бирок биринчи светодиод, демек нөл түбүндө. Андыктан муну оңдош керек болчу.

жараксыз туураPos (int A)

{if (A 30) {A = A - 31; }} temp = A; }

Көйгөй 2

Мен жаңы позицияны көрсөтүүдөн мурун бардык светодиоддорду тазалоого аракет кылдым, бирок бул LEDдин жаркырашына алып келди. Ошентип, мен кийинки светодиодду күйгүзүп, андан кийинкисин өчүрүүнү чечтим. Бул жөн эле жакшы иштеген ?? ЖОК, анткени эгер жаңы позиция нөл болсо, анда ал аракет кылып -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 LED бар. Чынында 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

Убакытты коюу. Мен бул түзүлүштү абдан жөнөкөй сактоону чечтим, андыктан убакытты тууралоочу баскычтар жок. Демек, саатты компьютериңизге туташтыруу жана жаңы убакытты жүктөө гана калды. Жөн эле төмөндөгү бөлүмдү комментарийлебеңиз жана керектүү убакытты коюп, программаны жүктөңүз. Сызыкты туура комментарийлеп, программаны кайра жөнөткөндөн кийин, эгерде сиз электр энергиясын жоготуп алсаңыз, ал орнотууну кайра иштетип, эски убакытты кайра жүктөйт.

// 12 -апрель, 2020 -ж., 23:20, сиз төмөнкү телефондорго кайрылмаксыз:

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

Сунушталууда: