Мазмуну:

7 Сегменттик саат: 4 кадам (Сүрөттөр менен)
7 Сегменттик саат: 4 кадам (Сүрөттөр менен)

Video: 7 Сегменттик саат: 4 кадам (Сүрөттөр менен)

Video: 7 Сегменттик саат: 4 кадам (Сүрөттөр менен)
Video: СУХОЙ НОС? ВКЛЮЧАЕМ И СМОТРИМ ВИДЕО! 2024, Ноябрь
Anonim
Image
Image
7 Сегменттик саат
7 Сегменттик саат
7 Сегменттик саат
7 Сегменттик саат

Бир нече жыл колдонгондон кийин, менин аналогдук саатым биротоло өлгөн болсо.

Ошол эле учурда мен Prusa менен басып чыгаруу үчүн 3d саатынын долбоорун издеп жүрдүм, андыктан ws2812 leds жана Arduino тарабынан башкарыла турган 7 сегменттүү саатты таптым.

Мен бул ледтердин күчү түстөрдүн кеңири спектрин көрсөтүү деп ойлодум, анда санарип саатта бир нече түстөрдү кантип бириктирүү керек?

Андан кийин төмөнкү өзгөчөлүктөр менен саатты ыңгайлаштыруу идеясы:

- 7 түрдүү мүнөттүк өзгөрүүлөр

- Убакыт тилкелери үчүн 3 алдын ала коюлган түстөр

- айланадагы жарыктын интенсивдүүлүгү автоматтык түрдө

- Убакытты көрсөтүүнүн кажети жок болгондо автоматтык түрдө өчүрүү/баштоо

- автоматтык жазгы убакытты жөнгө салуу

Жабдуулар

Долбоорду 3D принтер аркылуу же 7 сегменттүү сааттардын долбоорлору үчүн гуглинг менен аткарса болот. Кимдир бирөө аларды картон менен да жасаган.

Ошондой эле муктаждык бар:

  • Arduino nano
  • photo chell
  • убактылуу баскыч
  • күйгүзүү/өчүрүү
  • DC розеткасы
  • 5В трансформатор
  • n ° 30 WS2812 светодиод (модель 30 лед/метр)
  • pcb
  • DS3231 модулу
  • LED туташтыруу үчүн жука кабелдер
  • резисторлор 10K, 550
  • solder
  • клей
  • секиргендер
  • аталыштар эркек/аял

1 -кадам: Басып чыгаруу жана зым тартуу…

Басып чыгаруу жана зым тартуу …
Басып чыгаруу жана зым тартуу …
Басып чыгаруу жана зым тартуу …
Басып чыгаруу жана зым тартуу …
Басып чыгаруу жана зым тартуу …
Басып чыгаруу жана зым тартуу …

Thingverse боюнча оригиналдуу долбоор бир аз өзгөртүлгөн. (Колдонуучуга рахмат random1101)

Эки чекит бул долбоор үчүн колдонулган LED версиясына ылайыкташтырылып чоңойтулду. Үч арткы мукабанын бири дагы pcbге ылайыкташтырылган. Саат базасы да өзгөрдү.

Негизги жумуш - ледтерди ширетүү. Биринчиден, мен ледтерди 3d принтеринин сырткы капкагынын сыртында, андан кийин ага киргиздим.

Солдон башталган биринчи цифранын 7 -лидери кийинки цифранын биринчи жетегине туташат. 4 -цифранын аягында эки чекитти кошуңуз леддер, алар тизмектин ичинде 28 жана 29 деп саналышат.

Жетектөөчү ырааттуулукту кээ бир параметрлерди Arduino китепканасына өзгөртүү менен өзгөртүүгө болот.

Туташкандан кийин, иштин көбү аткарылды.

2 -кадам: PCB чогултуу

PCB чогултуу
PCB чогултуу
PCB чогултуу
PCB чогултуу
PCB чогултуу
PCB чогултуу
PCB чогултуу
PCB чогултуу

Эми pcb чогултуу убактысы келди, анда кээ бир резисторлорду, баштарды ж.

Pushbutton Arduino pin 3 менен GNDдин ортосунда ички тартылуу каршылыгы менен туташкан.

Жарык сенсору Arduino пин A7 менен GND ортосунда чыңалуу бөлүштүргүч катары туташкан. A7 жана +5V ортосундагы 10K каршылыгын кошуу ……… ЧОН КАТА

+5V менен A7 пин ортосундагы жарык сенсору жана A/ pin менен GND ортосундагы 10K каршылыгы

DS3231 модулу i2c жана SQW пин аркылуу Arduino үзүлүү пин 2ге туташкан

Леддер 550Ohm резистору аркылуу 5 -пинге туташкан.

3 -кадам: Эскиз

Эскиздин ичинде жасала турган көптөгөн ыңгайлаштыруулар бар.

Күндүзгү убакытты сактоочу китепкана TimeChangeRule параметрлери менен иштейт, көбүрөөк маалымат алуу үчүн Githubдагы JChristensen китепканасын караңыз.

Циклдин ичинде автоматтык түрдө өчүрүү int gotosleep өзгөрмөсү тарабынан башкарылат. Менин учурда 0: 00дө Arduino уйку режимине өтөт, андан кийин саат өчөт.

DS3231 модулунда ALARMди int gotosleep өзгөрмөсү аркылуу коюу, Arduino уйку режиминен ойгонууга мүмкүнчүлүк берет. Менин учурда эртең мененки саат 7: 00дө.

Дагы бир өзгөчөлүк - күн ичинде сааттын түсүн өзгөртүү функциясы:

жараксыз printDateTime (time_t t, const char *tz)

Менин жөндөөлөрүмдө саат 0: 00дөн 12: 00гө чейин убакыт кызыл менен көрсөтүлөт, 12: 00дөн 17: 00гө чейин жашыл жана 17: 00дөн 0: 00гө чейин көбүнчө көк. Бул арткы ак дубал менен жакшы айырмаланыш үчүн ушул кезге чейин табылган эң жакшы түс балансы.

Өткөөлдөр өзгөчөлүгү мүнөт өзгөргөндө анимацияланган түскө өтүүгө мүмкүнчүлүк берет. Көз ирмемдик баскычты басуу менен тандоого мүмкүн болгон 6 башка нерсе бар, 7 -вариант - бул өтмөктөр. Мага жакканы newrandom () деп аталат, ал алдын ала коюлган (int mode = 1;).

Жетектөөчү ырааттуулук менен шайкеш келүү үчүн китепканага кээ бир өзгөртүүлөрдү киргиздим. Файлдын ичинде segment_display.cpp, аягында (i) которуштургуч менен сиз жетектөөчү тизмегиңизди өзгөртө аласыз. Бүткөндөн кийин файлды ичине алмаштырыңыз

/Arduino/китепканалар/7segment_NeoPixel-master

Китепканалар талап кылынат:

  • avr.sleep
  • сегмент_көрсөтүү
  • DS3231
  • TimeLib
  • Зым
  • Adafruit NeoPixel
  • Убакыт зонасы

4 -кадам: Коштошууга убакыт келди

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

Кантип сааттан көбүрөөк нерсени сураса болот?

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