Мазмуну:

Иш сааты: 5 кадам (сүрөттөр менен)
Иш сааты: 5 кадам (сүрөттөр менен)

Video: Иш сааты: 5 кадам (сүрөттөр менен)

Video: Иш сааты: 5 кадам (сүрөттөр менен)
Video: 5 АДАМДЫ ДОС ТУТПА! (пайдалуу сабак). Шейх Чубак ажы 2024, Ноябрь
Anonim
Image
Image
Бөлүктөрдү чогултуу жана жыгач иштери
Бөлүктөрдү чогултуу жана жыгач иштери

Мен көп учурда өзүм менен өзүм эмне кылаарымды билбеген нерселерди сатып алам. Бул долбоор 12x WS2812b LED диоддору бар шакекти сатып алуунун натыйжасы. Менде эч кандай пландар жок болчу, бирок ал интернетте сонун көрүндү, ошондуктан мен аны арабага салып койдум, ал келгенде аны менен бир аз ойноп, анан баарын унутуп калдым.

Бир аздан кийин мен саат жасоону ойлонуп жаттым, ал эч нерсе кылбай отурганын эстеди. Мен мүнөттөрдү толтуруу үчүн 60 светодиод менен экинчи шакекти сатып алууну ойлонуп жаткам, бирок кантип биз / мен убакытты карап, аны 5 мүнөткө чейин тегеректейбиз деп ойлоно баштадым.

Муну менен мен 12 LED шакегим менен иш саатын жасоого жөнөдүм. Ал 1 LEDды 1 секундда көрсөтөт, саатты көрсөтүү үчүн (Blue LED), андан кийин мүнөттөрдү (Red LED) тегеректелген

1 -кадам: Бөлүктөрдү чогултуу жана жыгач иштери

Бөлүктөрдү чогултуу жана жыгач иштери
Бөлүктөрдү чогултуу жана жыгач иштери
Бөлүктөрдү чогултуу жана жыгач иштери
Бөлүктөрдү чогултуу жана жыгач иштери
Бөлүктөрдү чогултуу жана жыгач иштери
Бөлүктөрдү чогултуу жана жыгач иштери

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

Бул долбоор ошол паллеттин бир бөлүгүнөн жасалган. (Мен үйгө жеткирерден мурун начальниктен сурадым)

Ошондой эле колдонулат:

  • 12 пикселдик ws2812b LED шакеги
  • Real Time Clock (RTC) модулу (I2C менен DS3231 колдонуп жатам)
  • Arduino Nano v3.0 шайкеш
  • Акрил барак (5мм)
  • Түстүү зым

Куралдар

  • Power Drill
  • Роутер
  • Жөнгө салынуучу жалпак жыгач
  • Power Sander
  • Кол араа
  • Кандооч
  • Ысык желим мылтык
  • Кум кагаз
  • Danish Oil

Тегиздөө

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

Тешиктерди белгилөө жана кесүү

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

Маршрут жана кабелдик тешиктер

Роутеримди 12 мм бит менен колдонуп, RTC менен Arduino жашыруу үчүн блоктун түбүндөгү тешикти чыгардым. Анын тереңдиги болжол менен 15 мм жана ар бир четинен 5 мм кем эмес. Мен борборду (ишти) астынан белгилеп, LED зымдарына уруксат берүү үчүн жарым жолдон 10 мм кичине бургуладым. Андан кийин 5мм битти колдонуп, астындагы 10мм тешикти канааттандыруу үчүн LED тешигинин ортосунан бургуладым.

Дагы бир 4 мм тешик күч келип, кичине роутерди колдонуп, LED шакегинин артындагы зымдар үчүн канал жасап, жыгач иштери аткарылды.

2 -кадам: Акрил чөйрөлөрү

Акрил чөйрөлөрү
Акрил чөйрөлөрү
Акрил чөйрөлөрү
Акрил чөйрөлөрү
Акрил чөйрөлөрү
Акрил чөйрөлөрү

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

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

3 -кадам: ширетүү

Soldering
Soldering
Soldering
Soldering
Soldering
Soldering
Soldering
Soldering

Мен тандап алган учурумда зымдарым үчүн түстүү системаны колдонгум келет:

  • Бийлик үчүн Кызыл (5v)
  • Жер үчүн ак
  • Маалымат үчүн сары
  • Саат үчүн жашыл

Мен 3 керектүү зымдарды жогорудагы системаны колдонуп LED шакегине ширетүү менен баштадым жана зымдарды тешиктен ылдый түшүрүү. Чыныгы мажбурлоого дуушар болбошу үчүн, шакекти кармап туруу үчүн кичинекей ысык клей колдондум. (Мен аны кээде алмаштырышым мүмкүн) жана акрилди бир аз ысык желим менен четине орнотуңуз.

Мен андан кийин 4 зымдарды жогорудагы системаны колдонуп RTCге коштум. Бир аз тыканыраак болуш үчүн, мен Arduinoдон RTCге күч тартууну чечтим. Андан кийин баарын Arduino менен туташтырып, 1 зымды бийлик үчүн, экинчисин Arduino менен жерге туташтырды.

RTC

  • SCL (Clock) Analog Pin 5ке
  • SDA (маалыматтар) аналогдук пин 4
  • VCC 5V чейин
  • GND Arduino каалаган GNDге

LED шакеги

Сандык пин 6га Din

Менде эски USB кабели илинип тургандыктан, сааттын кубаттуулугу үчүн аны колдонууну чечтим. Мен адатта бир нерсеге туташа турган учту кесип, арткы тешиктен түртүп салдым. Андан кийин VCCди Arduinoго жана LED шакегин оң жагына жана Arduino менен Groundду жерге чейин ширетүүдөн мурун, учтарын сыйрып, тегеретти. Кийинчерээк жылуулук азая баштады жана ал жакшы көрүндү, Ысык желим тапанча баарын кармап туруу үчүн кайра чыкты. Мен келечекте USB портуна кире алам, бирок мен кулап кете турганчалык көп эмес, Arduinoдон кетүүнү чечтим.

4 -кадам: Код

Эми бул кодду Arduinoго жүктөй алышыңыз керек.

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

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

www.instructables.com/id/Setting-the-DS130…

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

// китепкана кодун камтыйт: #include

#кошуу

#кошуу

// казыктарды аныктоо

#аныктоо PIN 6

#define 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_))));

// Бул линия РТТны ачык датасы жана убактысы менен коет, мисалы коюу үчүн

// 21 -январь, 2014 -ж., Түнкү саат 3тө, сиз төмөнкү телефондорго чаласыз:

// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));

}

strip.begin ();

strip.show (); // Бардык пикселдерди "өчүрүү" үчүн баштоо

DateTime theTime = rtc.now (); // DST эске алат

байт secondval = theTime.second (); // секунд алуу

байт мүнөт = theTime.minute (); // мүнөт алуу

int hourval = theTime.hour ();

чекит (тилке. Color (0, g, 0), 50);

}

void loop () {

// убакыт табуу

DateTime theTime = rtc.now (); // DST эске алат

int minuteval = theTime.minute (); // мүнөт алуу

int hourval = theTime.hour (); // сааттарды алыңыз

int secondval = theTime.second ();

if (minuteval 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 ();

}

if (hourval == 0) {

strip.setPixelColor (0, 0, 0, b);

strip.show ();}

else if (hourval == 1) {

strip.setPixelColor (1, 0, 0, b);

strip.show ();}

else if (hourval == 2) {

strip.setPixelColor (2, 0, 0, b);

strip.show ();}

else if (hourval == 3) {

strip.setPixelColor (3, 0, 0, b);

strip.show ();}

else if (hourval == 4) {

strip.setPixelColor (4, 0, 0, b);

strip.show ();}

else if (hourval == 5) {

strip.setPixelColor (5, 0, 0, b);

strip.show ();}

else if (hourval == 6) {

strip.setPixelColor (6, 0, 0, b);

strip.show ();}

else if (hourval == 7) {

strip.setPixelColor (7, 0, 0, b);

strip.show ();}

else if (hourval == 8) {

strip.setPixelColor (8, 0, 0, b);

strip.show ();}

else if (hourval == 9) {

strip.setPixelColor (9, 0, 0, b);

strip.show ();}

else if (hourval == 10) {

strip.setPixelColor (10, 0, 0, b);

strip.show ();}

else if (hourval == 11) {

strip.setPixelColor (11, 0, 0, b);

strip.show ();}

else if (hourval == 12) {

strip.setPixelColor (0, 0, 0, b);

strip.show ();}

else if (hourval == 13) {

strip.setPixelColor (1, 0, 0, b);

strip.show ();}

else if (hourval == 14) {

strip.setPixelColor (2, 0, 0, b);

strip.show ();}

else if (hourval == 15) {

strip.setPixelColor (3, 0, 0, b);

strip.show ();}

else if (hourval == 16) {

strip.setPixelColor (4, 0, 0, b);

strip.show ();}

else if (hourval == 17) {

strip.setPixelColor (5, 0, 0, b);

strip.show ();}

else if (hourval == 18) {

strip.setPixelColor (6, 0, 0, b);

strip.show ();}

else if (hourval == 19) {

strip.setPixelColor (7, 0, 0, b);

strip.show ();}

else if (hourval == 20) {

strip.setPixelColor (8, 0, 0, b);

strip.show ();}

else if (hourval == 21) {

strip.setPixelColor (9, 0, 0, b);

strip.show ();}

else if (hourval == 22) {

strip.setPixelColor (10, 0, 0, b);

strip.show ();}

else if (hourval == 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 (hourval, DEC);

Serial.print (':');

Serial.print (minuteval, 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 -кадам: Дания майы

Danish Oil
Danish Oil
Danish Oil
Danish Oil
Danish Oil
Danish Oil
Danish Oil
Danish Oil

Акыркы жана кошумча кадам - жыгачка даниялык майларды колдонуу. Мага данды кантип алып келгени абдан жагат, ал тактардан жана нымдан коргойт. Ошондуктан мен аны абдан сунуштайм.

Сиз аны сүртсөңүз болот же мен аны эски чүпүрөк менен сүртөм.

Эми калганынын баары аны туташтыруу жана ырахат алуу.

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