Мазмұны:
- 1 -қадам: Бөлшектерді жинау және ағаш өңдеу
- 2 -қадам: Акрил шеңберлері
- 3 -қадам: дәнекерлеу
- 4 -қадам: Кодекс
- 5 -қадам: Дания майы
Бейне: Иш сағаты: 5 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Мен көбінесе өзіме не істегім келетінін білмейтін заттарды сатып аламын. Бұл жоба 12x WS2812b светодиодтары бар сақинаны сатып алудың нәтижесі. Менде бұл туралы жоспар жоқ еді, бірақ ол желіде керемет көрінді, сондықтан мен оны арбама салып қойдым, ол келген кезде онымен біраз ойнадым, содан кейін бәрін ұмытып кеттім.
Біраз уақыттан кейін мен сағат жасауды ойладым және ол ештеңе істемегенін естідім. Мен минутты толтыру үшін 60 светодиодты қосатын екінші сақинаны сатып алуды ойладым, бірақ содан кейін біз уақытты қалай қараймыз және оны 5 минутқа дейін қалай айналдырамыз деп ойлай бастадым.
Осының арқасында мен 12 светодиодты сақинамен жұмыс сағатын жасадым. Ол сағатты (көк жарық диодты), содан кейін минуттарды (қызыл жарықдиодты) дөңгелектеу үшін бір секунд ішінде 1 жарықдиодты көрсетеді.
1 -қадам: Бөлшектерді жинау және ағаш өңдеу
Мен бір күні жұмысқа келіп, паллет тауып алу бақытына ие болдым. Бұл паллет маған ұнады, себебі ол сіздің стандартқа сәйкес келмеді. Бұл таза, термиялық өңделген және ең қатты емен болды.
Бұл жоба паллеттің бір бөлігінен жасалған. (Мен үйге жеткізер алдында бастықтан сұрадым)
Сонымен қатар қолданылады:
- 12 пиксельді ws2812b жарықдиодты сақина
- Real Time Clock (RTC) модулі (I2C бар DS3231 қолданамын)
- Arduino Nano v3.0 үйлесімді
- Акрил парағы (5 мм)
- Түсті сым
Құралдар
- Қуат бұрғы
- Маршрутизатор
- Реттелетін жалпақ ағаш ұш
- Қуат тартқыш
- Қол аралау
- Пісіру темірі
- Ыстық желім қаруы
- Құм қағаз
- Дания майы
Тегістеу
Мен ағаш тегістеуішті барлық жағынан таза және тегіс болғанша түзетуге және тазартуға арналған тегістегішті қолдандым. Мен кейбір кемшіліктерді көрінетін етіп қалдырдым, бірақ олар мүлде тік немесе шаршы емес, өйткені мен тарихтың кейбір бөлігін ағаштан көруді ұнатамын.
Саңылауларды белгілеу және кесу
Тегістеуден кейін мен сағат тілін ұнататын жағымды таңдап, әр бұрыштан сызық сызып, ортаны белгіледім. Мен реттелетін ағашты жетекші сақинадан сәл үлкен етіп қойдым, осылайша акрилге арналған сөре болуы керек, ол шамамен 5 мм тереңдікте кесіледі, содан кейін кескішті жарықдиодты сақинаның өлшемінен сәл жоғары етіп реттейді және тағы 5 мм немесе одан да аз кеседі..
Маршруттау және кабель саңылаулары
Маршрутизаторды 12 мм биттік көмегімен RTC мен Arduino жасыру үшін блоктың төменгі жағындағы ойықты шығардым. Оның тереңдігі шамамен 15 мм және кез келген шетінен 5 мм кем емес. Мен ортаны (ишті) төменнен белгілеп, жарықдиодты сымдарға рұқсат беру үшін 10 мм биіктікте жартылай ғана бұрғыладым. Содан кейін мен 5 мм битті қолдана отырып, жарық диодты шұңқырдың ортасынан 10 мм тесікті төменнен тесу үшін бұрғыладым.
Артқы жағында тағы бір 4 мм тесік бар және одан кіші маршрутизаторды қолдана отырып, жарықдиодты сақинаның артқы жағындағы сымдардың арнасын жасаңыз.
2 -қадам: Акрил шеңберлері
Сағаттың алдыңғы жағында акрил жасау үшін, мен толтыру керек тесіктен үлкенірек төртбұрышты кесу керектігін айттым. Содан кейін жұмыс істеу үшін электр тегістегішті қолданып, бұрыштарды дұрыс пішін мен өлшемге дейін алып тастай бастадым. Содан кейін мен қолмен тегістеуге көштім, сондықтан мен түсірілімнен бас тартпадым және қайтадан бастауым керек болды.
Бұл сынақ пен қателіктің баяу және ауыр процесі, ол дұрыс орнатылғанша, бірақ менің ойымша, нәтиже тұрарлық болды. Мен акрилдің алдыңғы жағына аязды көрініс беру үшін өте ұсақ қағазды қолдандым.
3 -қадам: дәнекерлеу
Мен сымдарға түс жүйесін қолданғанды ұнатамын, осы кезде мен таңдаймын:
- Қуат үшін қызыл (5в)
- Жер үшін ақ
- Деректер үшін сары
- Сағат үшін жасыл
Мен жоғарыдағы жүйені қолдана отырып, қажетті 3 сымды жарықдиодты сақинаға дәнекерлеп, сымдарды тесіктен төмен қарай итере бастадым. Нақты мәжбүрлеуге ұшырамау керек болғандықтан, мен сақинаны орнында ұстау үшін кішкене ыстық желімді қолдандым. (Маған оны кейде өзгерту қажет болуы мүмкін) және акрилді шетіне сәл ыстық желіммен орнатыңыз.
Содан кейін мен жоғарыдағы жүйені қолдана отырып, 4 сымды РТЖ -ге дәнекерледім. Кішкене ұқыпты болу үшін мен RTC үшін Arduino -дан қуат алуды шештім. Содан кейін бәрін Arduino -ға жалғады және қуат үшін 1 сымды дәнекерледі, ал екіншісі Arduino -ға жерге қосылды.
RTC
- SCL (Сағат) 5 -ші аналогтық пинге
- SDA (Деректер) 4 аналогтық пинге
- VCC 5 В дейін
- GND Arduino кез келген GND -ге
Жарықдиодты сақина
Диндік сандық пинге 6
Менде ескі USB кабелі ілулі тұрды, сондықтан оны сағатты қосу үшін қолдануға шешім қабылдадым. Мен әдетте бір нәрсеге қосылатын ұшын кесіп алып, оны артқы тесіктен өткіздім. Содан кейін VCC -ді Arduino -ға, светодиодты сақинаны оң жағына және жерге Arduino мен LED -тен жерге дейін дәнекерлемес бұрын ұштарын алып тастаңыз. Кейінірек менде жылу аздап қысқарды және ол жақсы көрінді, Ыстық желім мылтығы бәрін ұстап тұру үшін қайта шықты. Мен болашақта USB портына кіруге мүмкіндік беретін жеткілікті ойынмен Arduino -дан кетуді шештім, бірақ мен соншалықты құлдырап кете алмадым.
4 -қадам: Кодекс
Енді сіз бұл кодты Arduino -ға жүктей аласыз.
Егер RTC жұмыс істемесе, бұл код кодты құруға негізделген уақытты белгілейді, сондықтан жүктеу түймесін басып, тексермеңіз.
кезекпен бұл уақытты белгілеу үшін өте жақсы жұмыс істейді.
www.instructables.com/id/Setting-the-DS130…
Бұл кодтың көп бөлігін мен Adafruit NeoPixel кітапханасынан, ал кейбірін RTC кітапханасынан алдым, ал кейбірін өз бетімше жасадым.
// кітапхана кодын қосыңыз: #include
#қосу
#қосу
// түйреуіштерді анықтау
#PIN кодын анықтаңыз 6
#dightine BRIGHTNESS 20 // максималды жарықтықты орнатыңыз
#анықтау r 5
#анықтау g 5
#анықтау b 5
RTC_DS3231 rtc; // Сағат объектісін орнату
Adafruit_NeoPixel жолағы = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // жолақты объект
жарамсыз орнату () {
Wire.begin (); // I2C бастаңыз
rtc.begin (); // сағатты бастау
Serial.begin (9600);
// пинмодтарды орнатыңыз
pinMode (PIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println («RTC қуатын жоғалтты, уақытты орнатуға мүмкіндік береді!»);
// келесі жол RTC -ті осы эскиз құрастырылған күн мен уақытқа орнатады
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))));
// Бұл жол RTC -ті нақты күн мен уақытпен белгілейді, мысалы, орнату үшін
// 21 қаңтар 2014 ж. Таңғы 3 -те сіз мына телефонға хабарласар едіңіз:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)));
}
strip.begin ();
strip.show (); // Барлық пикселдерді «өшіру» күйіне келтіріңіз
DateTime theTime = rtc.now (); // DST ескереді
байт секундтық = theTime.second (); // секунд алыңыз
байт минуты = theTime.minute (); // минут алыңыз
int hourval = theTime.hour ();
нүкте (жолақ. Түс (0, g, 0), 50);
}
void loop () {
// уақыт ал
DateTime theTime = rtc.now (); // DST ескереді
int minuteval = theTime.minute (); // минут алыңыз
int hourval = theTime.hour (); // сағатты алыңыз
int secondval = theTime.second ();
егер (минуттық 0) {
strip.setPixelColor (0, r, 0, 0);
strip.show ();}
әйтпесе (минуттық <= 9) {
strip.setPixelColor (1, r, 0, 0);
strip.show ();}
әйтпесе (минуттық <= 14) {
strip.setPixelColor (2, r, 0, 0);
strip.show ();}
егер басқа (минуттық <= 19) {
strip.setPixelColor (3, r, 0, 0);
strip.show ();}
егер басқа (минуттық <= 24) {
strip.setPixelColor (4, r, 0, 0);
strip.show ();}
егер басқа (минуттық <= 29) {
strip.setPixelColor (5, r, 0, 0);
strip.show ();}
әйтпесе (минуттық <= 34) {
strip.setPixelColor (6, r, 0, 0);
strip.show ();}
әйтпесе (минуттық <= 39) {
strip.setPixelColor (7, r, 0, 0);
strip.show ();}
әйтпесе (минуттық <= 44) {
strip.setPixelColor (8, r, 0, 0);
strip.show ();}
әйтпесе (минуттық <= 49) {
strip.setPixelColor (9, r, 0, 0);
strip.show ();}
егер басқа (минуттық <= 54) {
strip.setPixelColor (10, r, 0, 0);
strip.show ();}
әйтпесе (минуттық <= 59) {
strip.setPixelColor (11, r, 0, 0);
strip.show ();}
кешіктіру (1000);
үшін (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
егер (сағаттық уақыт == 0) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 2) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 4) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 6) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 7) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 9) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 10) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 11) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 12) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 14) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 16) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 18) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
әйтпесе (сағат тілі == 19) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 21) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 22) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
әйтпесе (сағаттық уақыт == 23) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
кешіктіру (1000);
үшін (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// сериялық күйін келтіру үшін
Serial.print (сағат тілі, DEC);
Serial.print (':');
Serial.print (минуттық, DEC);
Serial.print (':');
Serial.println (Secondval, DEC);
}
жарамсыз нүкте (uint32_t c, uint8_t күту) {
үшін (int j = 0; j <3; j ++) {
үшін (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
кешіктіру (күту);
үшін (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
5 -қадам: Дания майы
Соңғы және қосымша қадам - ағашқа дания майын жағу. Маған астықты қалай шығаратыны ұнайды, ол дақтар мен ылғалдан қорғайды. Сондықтан мен оны өте ұсынамын.
Сіз оны щеткамен сүрте аласыз немесе мен оны сүрту үшін ескі шүберекті қолданамын.
Енді қалғаны - оны қосу және ләззат алу.
Ұсынылған:
Уизли' орналасу сағаты 4 қолмен: 11 қадам (суреттермен)
«Уизли» 4 қолмен орналасқан орны: сөйтіп, таңқурай Pi -мен біршама уақыт бойы айналып өтіп, мен оны жақсы пайдалануға мүмкіндік беретін жақсы жоба тапқым келді. Мен ppeters0502 арқылы Уизлидің жеке орналасу сағатын таптым, мен ойладым
Уақыт өлшемі (таспалы өлшеуіш сағаты): 5 қадам (суреттермен)
Уақытты өлшеу (Таспалы өлшеуіш сағаты): Бұл жоба үшін біз (Алекс Фиел & Анна Линтон) күнделікті өлшеу құралын алып, оны сағатқа айналдырдық! Бастапқы жоспар қолданыстағы рулетканы моторизациялау болды. Мұны жасай отырып, біз өзіміздің қабығымызды жасау оңайырақ деп шештік
Механикалық жеті сегментті дисплей сағаты: 7 қадам (суреттермен)
Механикалық жеті сегментті дисплей сағаты: Бірнеше ай бұрын мен екі таңбалы механикалық 7 сегментті дисплей жасадым, оны кері санау таймеріне айналдырдым. Бұл өте жақсы шықты және көптеген адамдар сағат жасау үшін дисплейде екі есе көбейтуді ұсынды. Мәселе мынада, мен қазірдің өзінде жүгірдім
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): 6 қадам (суреттермен)
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): Индуктивті зарядтау (сымсыз зарядтау немесе сымсыз зарядтау деп те аталады) - сымсыз қуат беру түрі. Ол портативті құрылғыларды электрмен қамтамасыз ету үшін электромагниттік индукцияны қолданады. Ең көп таралған қолданба - Qi сымсыз зарядтау
Gixie сағаты: ең әдемі жарқыраған түтік сағаты: 4 қадам
Gixie сағаты: ең әдемі жарқыраған сағаттар: маған Nixie түтігі өте ұнайды, бірақ ол тым қымбат, мен оған шыдай алмаймын. Мен бұл Gixie сағатын жасауға жарты жыл жұмсадым. Gixie сағаты ws2812 акрил жарығын қолдану арқылы қол жеткізілді, мен RGB түтікшесін жұқа ету үшін барымды саламын