![132 Пикселдик саат: 5 кадам (Сүрөттөр менен) 132 Пикселдик саат: 5 кадам (Сүрөттөр менен)](https://i.howwhatproduce.com/images/002/image-5855-38-j.webp)
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:52
![Image Image](https://i.howwhatproduce.com/images/002/image-5855-40-j.webp)
![](https://i.ytimg.com/vi/hAF_PcQDMZM/hqdefault.jpg)
![132 пикселдик саат 132 пикселдик саат](https://i.howwhatproduce.com/images/002/image-5855-41-j.webp)
Мен эсимде болгонго чейин, LED жана убакыт менен алек болуп калдым. Бул долбоордо мен чоң дубал саатын түздүм, ал учурдагы убакытты чагылдырган 132 неопикселдүү LEDди карагай тактасы аркылуу орнотуп, чагылдырат. Бул гибриддик аналогдук санарип, ар бир саат, мүнөт жана секунд үчүн жеке пиксел менен.
Бул мен ушул күнгө чейин кабыл алган эң чоң долбоор болчу, мен бул жөнүндө 6 ай мурун ойлоно баштагам жана идея акырындык менен биригет. Мен жыйынтыгына абдан кубанычтамын жана аны сиз менен бөлүшүүнү чыдамсыздык менен күтүп жатам.
1 -кадам: Берилиштерди жана шаймандарды чогултуу
![Жабдууларды жана шаймандарды чогултуу Жабдууларды жана шаймандарды чогултуу](https://i.howwhatproduce.com/images/002/image-5855-42-j.webp)
![Жабдууларды жана шаймандарды чогултуу Жабдууларды жана шаймандарды чогултуу](https://i.howwhatproduce.com/images/002/image-5855-43-j.webp)
![Жабдууларды жана шаймандарды чогултуу Жабдууларды жана шаймандарды чогултуу](https://i.howwhatproduce.com/images/002/image-5855-44-j.webp)
![Жабдууларды жана шаймандарды чогултуу Жабдууларды жана шаймандарды чогултуу](https://i.howwhatproduce.com/images/002/image-5855-45-j.webp)
Компоненттер
Бул долбоор менин жергиликтүү DIY дүкөнүмдүн хобби тактасына курулган. Тактайдын туурасы 850 мм, бийиктиги 500 мм жана тереңдиги 18 мм.
Бул проектте колдонулган светодиоддор 5050 WS2812b диаметри болжол менен 9 мм болгон тегерек PCBлерге орнотулган, алардын арткы бетинде ширетүү аянтчалары бар.
Мен Arduino Pro Mini шайкеш микро контроллерди колдонуп жатам. Бул 5V 16 MHZ версиясы. Мен муну тандап алдым, анткени ал супер сымбаттуу дизайнга, кичинекей бут басууга жана бардык керектүү портторго жана келечектеги жаңыртууларга запастарга ээ. Анын дагы 5 вольту бар, ошондуктан мен LED, Micro контроллери жана RTC үчүн бирдиктүү электр энергиясын колдоно алам
Убакытты сактоо DS3231 чипи бар RTC (Real Time Clock) модулу тарабынан каралат. Бул чип абдан так, андыктан убакыт өтө көп кетпеши керек.
Ошондой эле колдонулат:
Зым. Лайк жана ысык клей.
Куралдар:
Электр бургулоочу жана жыгач бургулоочу биттер (10мм жана 5мм)
Кандооч
Ысык желим мылтык
зым үзүндүлөрү
Dremel жана плунж роутердин аксессуарлары
2 -кадам: Маркалоо, бургулоо жана багыттоо
![Маркалоо, бургулоо жана багыттоо Маркалоо, бургулоо жана багыттоо](https://i.howwhatproduce.com/images/002/image-5855-46-j.webp)
![Маркалоо, бургулоо жана багыттоо Маркалоо, бургулоо жана багыттоо](https://i.howwhatproduce.com/images/002/image-5855-47-j.webp)
![Маркалоо, бургулоо жана багыттоо Маркалоо, бургулоо жана багыттоо](https://i.howwhatproduce.com/images/002/image-5855-48-j.webp)
Бургулоо
- Түз кырды колдонуп, карама -каршы бурчтардан сызык чийүү менен тактайдын борборун табыңыз.
- Жипти жана калемди колдонуу менен 3 тегеректи белгилеңиз. Сырткы эң тегерек тактанын четинен болжол менен 20мм, калган 2 сызык акыркы сызыктан 15мм жылып кетиши керек.
- Мен сырткы 2 линиядагы ар бир мүнөт жана секунддун жана ички сызыктагы сааттардын ордун белгилөөгө жардам берүү үчүн басылган сааттын жүзүн колдондум.
- Ар бир саат, мүнөт жана секунд үчүн болжол менен 5 мм тереңдикте 10 мм тешиктерди бургулаңыз.
- Тактага саат, мүнөт жана секундага чейин тешик жасоо үчүн 5 мм бургулоону колдонуңуз.
Багыттоо
Бул кадамдын кереги жок болсо да, саатты дубалга такап орнотууга мүмкүндүк берет.
- Тактадагы роутерди жана айланма жол маршрут зым каналдарын колдонуу
- Жашоо үчүн RTC жана Micro Controller үчүн тыныгууну белгилеңиз.
- Каналды тышкы линиялардан зымдардын тешигине багыттаңыз
3 -кадам: Ушунчалык көп аскер, кесүү жана сыйруу
![Ушунчалык көп аскер, кесүү жана сыйруу Ушунчалык көп аскер, кесүү жана сыйруу](https://i.howwhatproduce.com/images/002/image-5855-49-j.webp)
![Ушунча көп аскер, кесүү жана сыйруу Ушунча көп аскер, кесүү жана сыйруу](https://i.howwhatproduce.com/images/002/image-5855-50-j.webp)
![Ушунчалык көп аскер, кесүү жана сыйруу Ушунчалык көп аскер, кесүү жана сыйруу](https://i.howwhatproduce.com/images/002/image-5855-51-j.webp)
Бул кийинки бөлүккө караганда, айтуу алда канча оңой. Менин кеңешим аны шаштыруу үчүн эскертүү болмок. аракет кылып, системаны таап, ритмге өтүңүз.
Светодиоддордун ар бирине 5 вольттун, 5 вольттун, маалыматтын киришинин, берилиштин чыгышынын, жерге кирүүнүн жана жердин чыгышын талап кылат. анын ичинде микро контроллердин жана РТКнын 400дөн ашык зымдары бар, алардын баары эки учунда сыйрылып, ширетилген.
Бул кадам үчүн жабышчаак көк зат абдан пайдалуу.
- Мен бири -бирине туташуу үчүн керектүү зымдын узундугун иштеп чыгуу үчүн 2 LEDди тешиктерине жанаша коюу менен баштадым.
- 1 -зымды колдонмо катары колдонуп, мен андан кийин ар бир түстүү зымдын 60ын кесип алдым.
- Ар бир зымдын учтарынан 2 мм илгичти чечип, аларды ширетүү менен калайлаңыз.
- LED поддондордун ар бирине кичинекей ширетүүчү ширетүү.
- Зымдарды светодиоддорго 60 мүнөт жана секундадан турган эки чынжырды жана 12 сааттан турган бир чынжырды түзүңүз. Мен 5В үчүн кызыл зымды, маалымат үчүн сары, жер үчүн көктү колдондум.
- Ар бир Маалымат Чыгуусун (DOUT) кийинки LEDдеги In In (DIN) менен туташтырууга кам көрүңүз
- Ар бир чынжыр дозасында акыркы алып баруучу зымга маалыматтын кереги жок.
Бардык чынжырлар бүткөндөн кийин, аларды орнотуудан мурун сыноо жакшы идея. Мен Arduino UNO жана Adafruit NeoPixel Strand тесттерин колдонуп, ар бир LED иштеп жатканын ырастадым.
5V, Ground жана Data үчүн чынжырлардын ар бирине узунураак зымдарды ээрчиңиз.
Бул жерде беш 5в зым, Arduino Pro Mini жана 5 Ground зымдарына туташкан үч Маалымат зымы болушу керек.
5в зымдардын учтарынан 5мм сыйрып алып, алардын бардыгын бириктирип, Жер зымдары үчүн кайталаңыз.
Үч чынжырды бүтүргөндөн кийин, 5V зымын Arduino Pro Miniнин RAW пинине, ошондой эле RTC үчүн VCC пинине туташтырыңыз. Arduino Pro Mini жана RTC боюнча GND үчүн жерге зым, андан кийин дагы 2 зым:
SCL RTCден Pro Miniге A5 чейин
SDA RTCден A4ке чейин Mini Mini
Светодиоддордун маалымат линиялары туташуусу керек:
- Seconds - Digital Pin 3.
- Мүнөттөр - DigitalPin 4
- Саат - DigitalPin 5
4 -кадам: Орнотуу
![Орнотулууда Орнотулууда](https://i.howwhatproduce.com/images/002/image-5855-52-j.webp)
![Орнотулууда Орнотулууда](https://i.howwhatproduce.com/images/002/image-5855-53-j.webp)
![Орнотулууда Орнотулууда](https://i.howwhatproduce.com/images/002/image-5855-54-j.webp)
ЛЕДди өздөрүнүн тешиктерине орнотуу түз эле алдыга жылышы керек. Жарык диоддорду орнотуу керек, андыктан коддор алдыңкы жагын карагандыктан, аны арт жагынан карасаңыз, маалыматтар сааттын жебесине каршы айланат.
Мен аларды кармап туруу үчүн кичинекей ысык желимди колдондум, анткени эгер ал келечекте иштебей калса, бир эле LEDди алмаштыргым келет.
Мен ошондой эле ысык желим менен бардык зымдарды тыкан жана тыкан кармап, баррель коннекторун тактага бекиттим.
Ардуино про мини программалоо үчүн бир катар колдонмолор бар. Мен тышкы кодду Arduinoго жүктөө үчүн сериялык конвертер ыкмасын колдоном:
Бул код ошондой эле RTCдеги убакытты ал түзүлгөн убакытка чейин коёт. жөн гана жүктөө баскычын жабуу маанилүү, ошондуктан ал мүмкүн болушунча тезирээк ылайык келет.
Бул коддун көбү Энди Доро тарабынан NeoPixel Ring Clockтан алынган. Кээ бирлери Adafruit NeoPixel Strand тестинен, кээ бирлерин мен чогулттум.
Сиз бир нече китепканаларды орнотушуңуз керек. Алар китепканалардын менеджеринен Arduino программасында жеткиликтүү.
Ws2812b светодиоддору үчүн Adafruit NeoPixel
RTC менен I2C аркылуу сүйлөшүү үчүн зым (бул стандарт катары курулган)
жана RTClib RTCден эмнени суроону билүү үчүн
/*********************************************** ***************************Энди Доронун NeoPixel шакекчеси ([email protected]) https://andydoro.com/ringclock/ ************************************************ **************************
Revision History
Дат эмне менен
20140320 AFD Биринчи долбоору 20160105 AFD Faded arcs 20160916 AFD Trinket шайкеш 20170727 AFD 3D корпусуна STARTPIXEL кошулду, өзгөрүлмө башталыш чекити, DST китепканасын колдонуу менен автоматтык DST колдоосу 20180424 AFD кошулду https://github.com/andydoro/DST_RTC *
/ китепкана кодун камтыйт:
#кошуу #кошуу
#кошуу
// казыктарды аныктоо
#аныктоо SECPIN 3 #аныктоо MINPIN 4 #аныктоо HOUPIN 5
#define BRIGHTNESS 20 // максималдуу жарыктыкты коюңуз
#аныктоо r 10
#define g 10 #define b 10 RTC_DS3231 rtc; // Саат объектисин орнотуу
Adafruit_NeoPixel stripS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // тилкенин объектиси
Adafruit_NeoPixel stripM = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // strip объект Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // strip объект байт pixelColorRed, pixelColorGreen, pixelColorBlue; // түс маанилерин кармайт
жараксыз орнотуу () {
Wire.begin (); // Begin I2C rtc.begin (); // саат башталат
Serial.begin (9600);
// pinMode орнотуу pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println ("RTC кубатын жоготту, убакытты коюуга мүмкүндүк берет!"); // кийинки сызык RTCди бул эскиз rtc.adjust түзүлгөн датага жана убакытка коёт (DateTime (F (_ DATE_), F (_ TIME_))))); // Бул линия РТТны так датасы жана убактысы менен белгилейт, мисалы: коюу үчүн // 21 -январь, 2014 -ж., Түнкү саат 3: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
stripM.begin (); stripH.begin (); //strip.show (); // Бардык пикселдерди "өчүрүү" үчүн баштоо
// баштоо ырааттуулугу
кечигүү (500);
colorWipeS (stripS. Color (0, g, 0), 5); // Көк түсWipeM (stripM. Color (r, 0, 0), 5); // Көк түсWipeH (stripH. Color (0, 0, b), 50); // Көк
кечигүү (1000);
DateTime theTime = rtc.now (); // эске алат DST байт secondval = theTime.second (); // мүнөткө жетүү үчүн секунд байт = theTime.minute (); // мүнөт алуу int hourval = theTime.hour (); hourval = hourval % 12; // Бул саат 12 саат, эгер 13-23 болсо, 0-11ге айландырыңыз
for (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); кечигүү (5); }
for (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); кечигүү (5); }
for (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); кечигүү (5); }
}
void loop () {
// убакыт табуу
DateTime theTime = rtc.now (); // DST эске алат
байт secondval = theTime.second (); // секунд алуу
байт мүнөт = theTime.minute (); // мүнөт алуу int hourval = theTime.hour (); // саат саатын алуу = сааттын сааты % 12; // Бул саат 12 саат, эгер 13-23 болсо, 0-11ге айландырыңыз
stripS.setPixelColor (secondval, 0, 0, 20); stripS.show (); кечигүү (10); if (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); кечигүү (16);}}
stripM.setPixelColor (мүнөт, 0, g, 0);
stripM.show (); кечигүү (10); if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); кечигүү (16);}}
stripH.setPixelColor (саат жебеси, r, 0, 0);
stripH.show (); кечигүү (10); if (secondval == 59 && minuteval == 59 && hourval == 11) {for (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, b); stripH.show (); кечиктирүү (83);}} // сериялык мүчүлүштүктөрдү оңдоо үчүн Serial.print (hourval, DEC); Serial.print (':'); Serial.print (minuteval, DEC); Serial.print (':'); Serial.println (secondval, DEC); }
// Чекиттерди биринин артынан бири түскө толтуруңуз
жараксыз colorWipeS (uint32_t c, uint8_t күтүү) {үчүн (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); кечиктирүү (күтүү); }}
жараксыз colorWipeM (uint32_t c, uint8_t күтүү) {
үчүн (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); кечиктирүү (күтүү); }}
жараксыз colorWipeH (uint32_t c, uint8_t күтүү) {
үчүн (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); кечиктирүү (күтүү); }}
5 -кадам: Акыркы тийүүлөр
![Image Image](https://i.howwhatproduce.com/images/002/image-5855-56-j.webp)
![](https://i.ytimg.com/vi/0hCf6mfWPkk/hqdefault.jpg)
![Акыркы Тийиштер Акыркы Тийиштер](https://i.howwhatproduce.com/images/002/image-5855-57-j.webp)
Азыр калган нерсенин баары танаписте RTC менен Micro Controllerди оңдоо.
Мен RTC батарейкасын өйдө каратып койгом, керек болсо батареяны оңой алмаштырам.
5в зымдарын туташтыргычтын + тарабына жана Жерди - тарапка туташтырыңыз
Бийликке аны!
Менде USB батарея банкына туташкан, бирок USB телефон кубаттагычы ошондой иштейт.
Эскертүү:
Жарык диоддордун жарыгы коддо белгиленген. Учурдагы чүчүкулакты төмөн кармоо үчүн төмөн коюлган. Бардык жарык диоддору менен толук жарык болгондо, ал дээрлик 8 амперди тарта алат. Учурдагы орнотуу менен анын саны 1ден аз.
![Сааттар сынагы Сааттар сынагы](https://i.howwhatproduce.com/images/002/image-5855-58-j.webp)
![Сааттар сынагы Сааттар сынагы](https://i.howwhatproduce.com/images/002/image-5855-59-j.webp)
Сааттар конкурсунда экинчи орунду ээледи
Сунушталууда:
FLEXBALL - WiFi менен жүз пикселдик ийкемдүү PCB шары: 6 кадам (сүрөттөр менен)
![FLEXBALL - WiFi менен жүз пикселдик ийкемдүү PCB шары: 6 кадам (сүрөттөр менен) FLEXBALL - WiFi менен жүз пикселдик ийкемдүү PCB шары: 6 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/001/image-1001-17-j.webp)
FLEXBALL - Wi -Fi менен жүз пикселдик ийкемдүү PCB шары: Саламатсызбы жаратуучулар, ал moekoe жаратуучусу! Flexball ийкемдүү ПКБга негизделген, ал 100 WS2812 2020 даректүү LED менен жабдылган. Бул ESP8285-01f тарабынан көзөмөлдөнөт - Espressif тарабынан эң кичине ESP негизделген модуль. Андан тышкары, ADXL345 акселерометрине ээ
Акылдуу ойготкуч саат: Raspberry Pi менен жасалган акылдуу ойготкуч саат: 10 кадам (сүрөттөр менен)
![Акылдуу ойготкуч саат: Raspberry Pi менен жасалган акылдуу ойготкуч саат: 10 кадам (сүрөттөр менен) Акылдуу ойготкуч саат: Raspberry Pi менен жасалган акылдуу ойготкуч саат: 10 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/007/image-19330-j.webp)
Smart Alarm Clock: Raspberry Pi менен жасалган акылдуу ойготкуч: Сиз качандыр бир убакта акылдуу саатты кааладыңыз беле? Андай болсо, бул сиз үчүн чечим! Мен Smart Alarm Clock жасадым, бул веб -сайтка ылайык ойготкуч убактысын өзгөртө турган саат. Ойготкуч өчкөндө, үн чыгат (зумбул) жана 2 жарык күйөт
Пикселдик ашкабак: 8 кадам (сүрөттөр менен)
![Пикселдик ашкабак: 8 кадам (сүрөттөр менен) Пикселдик ашкабак: 8 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/003/image-6550-j.webp)
Пикселдик ашкабак: алыстан башкаруу пульту аркылуу ар кандай үлгүлөрдө ичинен жаркырап көрүнбөгөн ашкабак жасаңыз. Пикселдер көп түстүү болсо да, ашкабактын калың териси апельсинден башкасын чыпкалайт, андыктан биздин пикселдин түсү өзгөрөт
500 LED-пикселдик RGB-кыш: 9 кадам (сүрөттөр менен)
![500 LED-пикселдик RGB-кыш: 9 кадам (сүрөттөр менен) 500 LED-пикселдик RGB-кыш: 9 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/006/image-17765-16-j.webp)
500 LED-пикселдик RGB-кыш: Бир аз мурун мен бул WS2812 светодиоддору менен 10x10 LED-Coffetable кургам, бирок ага туташкан смартфон менен эски мектептеги Snake оюнун ойноо мүмкүн болсо дагы, мен дагы бир нерсени каалайм өзгөчө. Ошентип, мен дагы бир нече лед койууну чечтим, arra
Айнек алты бурчтуу LED пикселдик арматура: 8 кадам (сүрөттөр менен)
![Айнек алты бурчтуу LED пикселдик арматура: 8 кадам (сүрөттөр менен) Айнек алты бурчтуу LED пикселдик арматура: 8 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/006/image-17816-8-j.webp)
Glass Hexagon LED Пикселдик Арматура: NLED контроллерлеринин жана программалык камсыздоонун мүмкүнчүлүгүн көрсөтүү үчүн иштелип чыккан LED пикселге негизделген чыгарма. Балким, 70 -жылдарга таандык, жезден жана айнектен жасалган тазаланган жарыктандыргычтын айланасына курулган. APA102 стандарттык пикселдик тилкеси менен айкалышкан