Мазмуну:

LEDura - аналогдук LED сааты: 12 кадам (сүрөттөр менен)
LEDura - аналогдук LED сааты: 12 кадам (сүрөттөр менен)

Video: LEDura - аналогдук LED сааты: 12 кадам (сүрөттөр менен)

Video: LEDura - аналогдук LED сааты: 12 кадам (сүрөттөр менен)
Video: Как измерить постоянное напряжение и ток и построить счетчик энергии с ЖК-дисплеем | Урок 104 2024, Июль
Anonim
LEDura - аналогдук LED саат
LEDura - аналогдук LED саат
LEDura - аналогдук LED саат
LEDura - аналогдук LED саат
LEDura - аналогдук LED саат
LEDura - аналогдук LED саат

Tinkercad долбоорлору »

Ар кандай долбоорлорду жасагандан кийин, мен өзүм үйрөтүүчү болууну чечтим. Биринчиси үчүн, мен сизге сонун аналогдук LED шакеги менен жасалган аналогдук саатты жасоо процессинде жол көрсөтөм. Ички шакек сааттарды көрсөтөт, сырткы шакек мүнөт жана секунддарды көрсөтөт.

Убакытты көрсөтүүдөн тышкары, саат бөлмө температурасын да көрсөтө алат жана бул бөлмөдө абдан жакшы жасалгалоо болушу мүмкүн. Ар 15 мүнөттө, саат дагы өзгөчө эффекттерди чыгарат - видео алардын бардыгын көрсөтөт, текшерип көрүңүз. 2 баскычтын жана потенциометрдин жардамы менен, колдонуучу өзүнүн каалоосу боюнча ар кандай режимди жана модификация түстөрүн тандай алат. Мен ошондой эле бөлмө караңгы болсо, LEDди автоматтык түрдө өчүрүү үчүн жаңырттым, ошондуктан колдонуучу түн ичинде тынчын албайт.

Саатты столго, керебет үстөлүнө койсо болот же дубалдан асып койсо болот.

Эскертүү: Сүрөттөр реалдуулуктагы көрүнүшкө окшош эмес, анткени жогорку жарыктык.

1 -кадам: Аны кантип окуу керек?

Аны кантип окуу керек?
Аны кантип окуу керек?

Сааттын 2 шакеги бар - кичине саат көрсөтүү үчүн жана чоңураак мүнөт жана секунд көрсөтүү үчүн. Кээ бир светодиоддор дайыма күйүп турат - компас деп аталган, сааттын негизги ордун көрсөтөт. Саат шакеги боюнча ал 3, 6, 9 жана 12'о саатты, мүнөт шакеги боюнча 15, 30, 45 жана 0 мүнөттү билдирет.

2 -кадам: Сизге эмне керек

Сизге эмне керек болот
Сизге эмне керек болот

Материалдар:

  • 1x Arduino Nano (башка Arduino колдоно аласыз)
  • 1x DS3231 RealTimeClock модулу
  • 1x Адрестелүүчү LED шакеги - 60 LED
  • 1x Адрестелген LED шакеги - 24 LED
  • 2x баскычтар (NO - кадимкидей ачык)
  • 1х 100 кОм потенциометр
  • 1x 5V электр булагы (1 Амперди жеткире алат)
  • 1x Жеткирүү туташтыргычы
  • Кээ бир зымдар
  • 1x 10kOhm каршылыгы
  • 1x Фоторезистор
  • Prefboard (милдеттүү эмес)
  • Терминалдык блок зым бириктиргичтери (милдеттүү эмес)
  • Жыгачтын калыңдыгы 25 мм, өлчөмү 22 см x 22 см
  • 1мм ичке мат ПВХ пластикалык өлчөмү 20cmx20xm

Куралдар:

  • Электрониканы куруу үчүн негизги шаймандар (ширетүүчү, кычкач, бурагыч,…)
  • Бургулоочу машина
  • Ысык желим мылтык
  • Кум кагаз жана жыгач лак
  • CNC машинасы (балким кээ бир досуңузда бар)

3 -кадам: Электрониканын компоненттери - Фон

Электрониканын компоненттери - Фон
Электрониканын компоненттери - Фон
Электрониканын компоненттери - Фон
Электрониканын компоненттери - Фон
Электрониканын компоненттери - Фон
Электрониканын компоненттери - Фон

DS3231

Биз убакытты осциллятордо жана таймерде Arduinos аркылуу аныктай алмакпыз, бирок мен сааттын кубат булагынан ажырасак дагы убакытты көзөмөлдөп туруучу Real Time Clock (RTC) модулун колдонууну чечтим. DS3231 тактасында батарея бар, ал модуль электр энергиясына туташпай турганда энергия менен камсыз кылат. Ошондой эле Arduinos саат булагына караганда узак убакыттар боюнча дагы так.

DS3231 RTC микроконтроллер менен байланышуу үчүн I2C интерфейсин колдонот-колдонуу өтө жөнөкөй жана аны менен байланышуу үчүн бизге болгону 2 зым керек. Модул ошондой эле бул долбоордо колдонула турган температура сенсорун камсыздайт.

Маанилүү: Эгерде сиз RTC модулу үчүн кайра заряддалбай турган батареяны колдонууну пландап жатсаңыз, анда 200 омдук резистордун же 1N4148 диодунун ширетилишине туура келет. Болбосо батареяңыз жарылып кетиши мүмкүн. Көбүрөөк маалыматты бул шилтемеден тапса болот.

WS2812 LED шакеги

Мен 60 LED шакегин мүнөттөрдү жана 24 LED шакегин саат бою көзөмөлдөп турууну чечтим. Сиз аларды Adafruit (neoPixel шакеги) же eBay, Aliexpress же башка веб -дүкөндөрдөгү арзан версиялардан таба аласыз. Даректүү LED тилкелеринин арасында чоң түрдүүлүк бар жана алар менен биринчи жолу ойноп жатсаңыз, мен сизге кээ бир колдонуу сүрөттөмөлөрүн окуп чыгууну сунуштайм - бул жерде пайдалуу шилтемелер бар:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

Даректүү LED тилкесинде 3 туташтыргычы бар: 5V, GND жана DI/DO. Биринчи экөө LEDди иштетүү үчүн, экинчиси маалымат үчүн. Ардуиного шакекти туташтырууда этият болуңуз - сиздин маалымат линияңыз DI (data IN) пинине туташтырылышы керек.

Arduino

Мен Arduino Nano колдонуп жатам, анткени ал кичине жана бул долбоор үчүн жетиштүү. Сиз дээрлик башка Arduino колдоно аласыз, бирок ага бардыгын туташтырып жатканда этият болууңуз керек. Баскычтар жана LED шакектери бир эле казыкта болушу мүмкүн, бирок I2C бириктиргичтери (RTC модулу үчүн) платформадан платформага айырмаланышы мүмкүн - алардын маалымат барагын караңыз.

4 -кадам: Электроника - Электр энергиясы менен камсыздоо

Электроника - Электр энергиясы менен камсыздоо
Электроника - Электр энергиясы менен камсыздоо

Arduino жана LED тилкеси экөө тең 5В энергия булагы менен камсыз болушу керек, андыктан кайсы чыңалуу керек экенин билебиз. LED шыңгырагандыктан, ал көптөгөн амперлерди тартат, биз аны санариптик чыгарууда максималдуу 20 мАга туруштук бере ала турган Arduino менен түздөн -түз кубаттай албайбыз. Менин өлчөөлөрүм боюнча, LED шакектери чогуу 500 мА чейин тарта алат. Ошондуктан мен 1Ага чейин жеткире ала турган адаптер сатып алдым.

Ошол эле электр энергиясы менен биз Arduino жана LED ди кубаттайбыз - бул жерде сак болушуңуз керек.

Эскертүү! LED тилкесин сынап жатканда өтө этият болуңуз - Arduino компьютерге USB туташтыргычы менен туташтырылганда, кубат адаптери Arduino менен байланышпашы керек (сиз компьютериңиздин USB портун бузуп алышыңыз мүмкүн).

Эскертүү: Төмөндөгү схемаларда мен кадимки которууну колдонуп, Arduino электр энергиясы менен же USB туташтыргычы аркылуу иштээрин тандадым. Бирок перформат тактасында мен Arduino кайсы энергия булагынан иштээрин тандоо үчүн пин башын кошконумду көрө аласың.

5 -кадам: Электроника - ширетүү

Электроника - ширетүү
Электроника - ширетүү
Электроника - ширетүү
Электроника - ширетүү
Электроника - ширетүү
Электроника - ширетүү
Электроника - ширетүү
Электроника - ширетүү

Бардык бөлүктөрдү чогултканыңызда, аларды бириктирүү убактысы келди.

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

Кеңеш: эгер сиз схемаларды басып чыгарсаңыз, анда оңой болот, андыктан аны ширетүү учурунда алдыңызда болот. Жана электр энергиясына туташуудан мурун бардыгын текшериңиз.

6 -кадам: Программалык камсыздоо - Фон

Arduino IDE

Биз Arduino программасын Arduino IDE программасы менен жабдып жатабыз. Эгерде сиз Arduino менен биринчи жолу ойноп жатсаңыз, анда мен муну кантип жасоо боюнча айрым көрсөтмөлөрдү текшерүүнү сунуштайм. Интернетте буга чейин көптөгөн окуу куралдары бар, ошондуктан мен майда -чүйдөсүнө чейин айтпайм.

Китепкана

Мен популярдуу Adafruit ордуна FastLED китепканасын колдонууну чечтим. Мыкты математикалык функциялары бар, анын жардамы менен сиз чоң эффекттерди жасай аласыз (Иштеп чыгуучуларга чейин!). Китепкананы GitHub репозиторийинен таба аласыз, бирок мен колдонуп жаткан версиянын.zip файлын коштум.

Эгерде сиз кызыкдар болсоңуз, Arduino IDEге тышкы китепкананы кантип кошуу керек, буга чейин жасалган көрсөтмөлөрдү текшере аласыз

Саат модулу үчүн мен Arduino китепканасын DS3231 реалдуу убакытта (RTC) колдондум (шилтеме), аны Arduino IDEге оңой эле орното аласыз. Сиз IDEде болгондо, Эскиз → Китепкананы кошуу → Китепканаларды башкаруу үчүн чыкылдатыңыз, анан издөөңүздү жогорудагы ат менен чыпкалаңыз.

Эскертүү: Учурда кандайдыр бир себептерден улам.zip файлдарын кошо албай жатам. Китепкананы GitHub репозиторийимден таба аласыз.

7 -кадам: Программалык камсыздоо - Код

Программалык камсыздоо - Код
Программалык камсыздоо - Код
Программалык камсыздоо - Код
Программалык камсыздоо - Код

Түзүм

Колдонмо 4 файлдан турат:

  • LEDclokc.ino Бул негизги Arduino тиркемеси, анда сиз саат бою көзөмөлдөө функцияларын таба аласыз - алар CLOCK_ префикси менен башталат.
  • LEDclokc.h бул жерде пин туташууну аныктайт жана кээ бир саат конфигурациялары.
  • ring.cpp жана ring.h бул жерде LED шакектерин көзөмөлдөө үчүн менин кодум.

LEDclock.h

Бул жерде сиз сааттын бардык аныктамаларын таба аласыз. Башында зымдардын аныктамалары бар. Алар сиздин байланыштарыңызга окшош экенин текшериңиз. Андан кийин сааттын конфигурациясы бар - бул жерде сизде сааттын режиминин макросун таба аласыз.

LEDclock.ino

Диаграммада негизги цикл көрсөтүлгөн. Код алгач кандайдыр бир баскыч басылганын текшерет. Коммутаторлордун табиятынан улам, алардын маанилерин окуу үчүн деббунинг ыкмасын колдонушубуз керек (бул тууралуу кененирээк шилтемеден окуй аласыз).

1 баскыч басылганда, өзгөрмө режим 1ге көтөрүлөт, эгер 2 баскыч басылса, өзгөрмө түрү көтөрүлөт. Биз бул өзгөрмөлөрдү кайсы саат режимин көргүбүз келгенин аныктоо үчүн колдонобуз. Эгерде эки баскыч бир убакта басылса, CLOCK_setTime () функциясы чакырылат, андыктан сааттын убакытын өзгөртө аласыз.

Кийинчерээк код потенциометрдин маанисин окуйт жана аны өзгөрмөлүү кылып сактайт - бул өзгөрмө колдонуучу сааттын түстөрүн, жарыктыгын ж.

Андан кийин которуштуруу-билдирүү бар. Бул жерде биз сааттын кайсы режимде экенин аныктайбыз жана ошол режимде LEDлердин түстөрүн орнотуучу тиешелүү функция чакырылат. Сиз өзүңүздүн саат режимдериңизди кошуп, функцияларды кайра жаза аласыз же өзгөртө аласыз.

FastLED китепканасында сүрөттөлгөндөй, сиз аягында FastLED.show () функциясын чакырышыңыз керек, ал диоддорду биз мурда орноткон түскө айландырат.

Сиз код сызыктарынын ортосунда бир топ деталдуу сүрөттөмөлөрдү таба аласыз

Бүт код төмөнкү файлдарда төмөндө тиркелет.

КЕҢЕШ: сиз бүт долбоорду GitHub репозиторийимден таба аласыз. Бул жерде код, эгер мен ага кандайдыр бир өзгөртүүлөрдү кошо турган болсом, жаңыртылат.

8 -кадам: Саатты жасаңыз

Саатты жасаңыз
Саатты жасаңыз
Саатты жасаңыз
Саатты жасаңыз
Саатты жасаңыз
Саатты жасаңыз

Саат алкагы

Мен саат кадрын CNC станогунун жана калыңдыгы 25 мм болгон жыгачтын жардамы менен курдум. Сиз чийилген эскизди ProgeCAD тиркелген төмөндө таба аласыз. LED шакеги үчүн уячалар бир аз чоңураак, анткени өндүрүштөр сырткы диаметри менен гана өлчөнөт - ичи бир топ айырмаланышы мүмкүн … Сааттын артында электроника жана зымдар үчүн көп орун бар.

ПВХ шакектери

Светодиоддор абдан жарык болгондуктан, аларды кандайдыр бир жол менен жайылтуу жакшы. Биринчиден, мен тунук силикон менен аракет кылдым, ал диффузиялык жумушту аткарат, бирок ал абдан баш аламан жана үстүнө жылмакай алуу кыйын. Мына ошондуктан мен 20x20 см өлчөмүндөгү "сүт" ПВХ пластмассасына буйрутма бердим жана анын ичинде эки шакекти CNC станогу менен кесип алдым. Сиз кумарды колдонуп, четин жумшарта аласыз, андыктан шакектер уячаларга түшүп кетет.

Каптал тешиктер

Андан кийин баскычтарды, потенциометрди жана электр менен камсыздоо коннекторун тешүү керек. Биринчиден, ар бир позицияны карандаш менен чийип, андан кийин тешикте бургулаңыз. Бул жерде сизде кандай баскычтар бар экендигине жараша болот - мен бир аз ийилген башы бар баскычтар менен бардым. Алардын диаметри 16 мм, ошондуктан мен ошол өлчөмдөгү жыгач бургулоону колдондум. Ошол эле потенциометр жана электр туташтыргычы үчүн да колдонулат. Кийин бардык карандаш чиймелерди өчүрүүнү унутпаңыз.

9 -кадам: Жыгачка чийиңиз

Жыгачка тартуу
Жыгачка тартуу
Жыгачка тартуу
Жыгачка тартуу
Жыгачка тартуу
Жыгачка тартуу

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

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

Эгерде сиз чиймелерди жасап жатсаңыз жана алардын саат пикселдерине тыкандык менен тегизделишин кааласаңыз, анда "Техникалык тейлөө режимин" колдоно аласыз, ал пикселдердин кайда жайгашаарын көрсөтөт (Бириктирүү бөлүмүнө өтүңүз).

Жыгачты коргоо

Саатка канааттансаңыз, аны кум менен жыгач лак менен коргоо убактысы келди. Мен четтерин жумшартуу үчүн абдан жумшак зумпараны (баасы 500) колдондум. Мен ачык жыгач лак колдонууну сунуштайм, ошондуктан жыгачтын түсү өзгөрбөйт. Кичинекей лакты кисточкага салып, жыгачтагы бир жылдык өсүмдүктөрдү карай тартыңыз. Аны жок дегенде 2 жолу кайталаңыз.

10 -кадам: Ассамблея

Assamble
Assamble
Assamble
Assamble
Assamble
Assamble

Фирчалар баскычтарды жана потенциометрди өз ордуларына коюшат - эгер тешиктериңиз өтө чоң болсо, анда аларды ысык желим менен оңдоп койсоңуз болот. Андан кийин шакек тилкесин оюктарына салып, зымдарын Arduino менен туташтырыңыз. LED шакегин анын ордуна жабыштыруудан мурун, LED пикселдери туура жерде - борборлоштурулган жана чиймеге дал келгенине ишенүү жакшы. Бул үчүн мен бардык маанилүү пикселдерди көрсөтө турган Техникалык тейлөө режимин коштум (0, 5, 10, 15,… мүнөттүк шакекчеде жана 3, 6, 9 жана 12 сааттык рингде). Сиз бул режимге туташтыргычка электр энергиясын туташтыруудан мурун, эки баскычты басып, кармап турсаңыз болот. Бул режимден каалаган баскычты басып чыксаңыз болот.

Сиздин LED шакектериңиз тегизделгенде, ысык клей сүйкөп, клей бекем болгондо кармап туруңуз. Андан кийин ПВХ шакектериңизди алып, дагы бир жолу: светодиоддорго ысык клей сүйкөп, аларды тез жайгаштырып, бир нече секунд кармап туруңуз. Акыр -аягы, баары иштей турганына ишенсеңиз, жыгачка ар бир тактаны (же Arduino) ысык клей менен жабсаңыз болот. Кеңеш: көп желимге колдонбоңуз. Аз эле сумма бир жерде сакталат, бирок кийинчерээк бир нерсени өзгөрткүңүз келсе, аны оңой эле алып салсаңыз болот.

Эң аягында монеталуу батареяны анын кармагына салыңыз.

11 -кадам: Жаңыртуу - Фоторезистор

Жаңыртуу - Фоторезистор
Жаңыртуу - Фоторезистор
Жаңыртуу - Фоторезистор
Жаңыртуу - Фоторезистор
Жаңыртуу - Фоторезистор
Жаңыртуу - Фоторезистор

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

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

Кайсы бир схеманы ширетүүдөн жана кураштыруудан мурун, аны симуляциялоо акылдуулукка жатат, андыктан жүрүм -турумун көрүп, оңдоолорду киргизе аласыз. Autocad Tinkercad жардамы менен сиз муну так жасай аласыз! Бир нече чыкылдатуу менен мен компоненттерди кошуп, туташтырдым жана кодду жаздым. Симуляцияда сиз фото резистордун маанисине жараша LED жарыгы кантип өзгөргөнүн көрө аласыз. Бул абдан жөнөкөй жана түшүнүктүү - сиз чынжыр менен ойной аласыз.

Симуляциядан кийин бул функцияны саатка кошуу убактысы келди. Мен сааттын ортосунда тешик бургуладым, фото резисторду чаптадым, аны схемада көрүнүп тургандай туташтырдым жана коддун бир нече саптарын коштум. LEDclock.h файлында USE_PHOTO_RESISTORду 1 деп жарыялоо менен бул мүмкүнчүлүктү иштетүүңүз керек. CLOCK_PHOTO_TRESHOLD маанисин өзгөртүү менен саат кайсы бөлмө жарыктыгында светодиоддорду өчүрө тургандыгын өзгөртө аласыз.

12 -кадам: ырахат алыңыз

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

Мен интернеттеги абдан тыкан долбоордон илхам таптым. Эгерде сиз саатты өз алдынча курууну чечсеңиз, аларды да текшериңиз! (NeoClock, Wol Clock, Arduino Colorful Clock) Эгерде сиз качандыр бир убакта көрсөтмөлөрдү аткарууга аракет кылууну чечсеңиз, аны мен сыяктуу жагымдуу кыласыз деп ишенем.

Эгерде сиз аны жасоо учурунда кандайдыр бир кыйынчылыкка туш болуп калсаңыз, мага комментарийлерде кандайдыр бир суроо берүүдөн тартынбаңыз - мен кубаныч менен жооп берүүгө аракет кылам!

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