Мазмұны:

Иш сағаты: 5 қадам (суреттермен)
Иш сағаты: 5 қадам (суреттермен)

Бейне: Иш сағаты: 5 қадам (суреттермен)

Бейне: Иш сағаты: 5 қадам (суреттермен)
Бейне: Бұл видеоны көрсеніз сіз өз атың ұмытып қаласын 2024, Қараша
Anonim
Image
Image
Бөлшектерді жинау және ағашпен жұмыс
Бөлшектерді жинау және ағашпен жұмыс

Мен көбінесе өзіме не істегім келетінін білмейтін заттарды сатып аламын. Бұл жоба 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 -қадам: Дания майы

Дания майы
Дания майы
Дания майы
Дания майы
Дания майы
Дания майы
Дания майы
Дания майы

Соңғы және қосымша қадам - ағашқа дания майын жағу. Маған астықты қалай шығаратыны ұнайды, ол дақтар мен ылғалдан қорғайды. Сондықтан мен оны өте ұсынамын.

Сіз оны щеткамен сүрте аласыз немесе мен оны сүрту үшін ескі шүберекті қолданамын.

Енді қалғаны - оны қосу және ләззат алу.

Ұсынылған: