ዝርዝር ሁኔታ:

132 ፒክስል ሰዓት - 5 ደረጃዎች (ከስዕሎች ጋር)
132 ፒክስል ሰዓት - 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: 132 ፒክስል ሰዓት - 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: 132 ፒክስል ሰዓት - 5 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: RTX 3090 Ti vs RTX 3060 Ultimate Showdown for Stable Diffusion, ML, AI & Video Rendering Performance 2024, ህዳር
Anonim
Image
Image
132 ፒክስል ሰዓት
132 ፒክስል ሰዓት

እኔ እስከማስታውሰው ድረስ በኤልዲዎች እና በሰዓት ተይዘዋል። በዚህ ፕሮጀክት ውስጥ በስፕሩስ ቦርድ በኩል የተጫኑ እና የሚያንፀባርቁ 132 ኒኦፒክስል ኤልኢዲዎችን በመጠቀም የአሁኑን ጊዜ የሚያሳይ ትልቅ የግድግዳ ሰዓት ፈጥረዋል። ለእያንዳንዱ ሰዓት ፣ ደቂቃ እና ሰከንድ የግለሰብ ፒክሰል ያለው ዲቃላ አናሎግ ዲጂታል ነው።

እስከዛሬ የወሰድኩት ትልቁ ፕሮጀክት ይህ ነበር ፣ ስለ እሱ ማሰብ የጀመርኩት ከ 6 ወራት በፊት እና ሀሳቡ ቀስ በቀስ አንድ ላይ መጣ። በውጤቱ በእውነት ተደስቻለሁ እና ከእርስዎ ጋር ለመካፈል በጉጉት እጠብቃለሁ።

ደረጃ 1 - አቅርቦቶችን እና መሳሪያዎችን መሰብሰብ።

አቅርቦቶችን እና መሳሪያዎችን መሰብሰብ።
አቅርቦቶችን እና መሳሪያዎችን መሰብሰብ።
አቅርቦቶችን እና መሳሪያዎችን መሰብሰብ።
አቅርቦቶችን እና መሳሪያዎችን መሰብሰብ።
አቅርቦቶችን እና መሳሪያዎችን መሰብሰብ።
አቅርቦቶችን እና መሳሪያዎችን መሰብሰብ።
አቅርቦቶችን እና መሳሪያዎችን መሰብሰብ።
አቅርቦቶችን እና መሳሪያዎችን መሰብሰብ።

አካላት።

ይህ ፕሮጀክት ከአከባቢዬ DIY መደብር በቼክ የትርፍ ጊዜ ሰሌዳ ላይ ተገንብቷል። ቦርዱ 850 ሚ.ሜ ስፋት በ 500 ሚሜ ከፍታ እና 18 ሚሜ ጥልቀት።

በዚህ ፕሮጀክት ውስጥ ጥቅም ላይ የዋሉት ኤልኢዲዎች 5050 WS2812b በግማሽ ፒሲቢዎች ላይ የተገጠሙ በግምት 9 ሚሊ ሜትር የሆነ ዲያሜትር ከኋላ በኩል ከሽያጭ ሰሌዳዎች ጋር።

እኔ Arduino Pro Mini ተኳሃኝ የማይክሮ መቆጣጠሪያን እየተጠቀምኩ ነው። የእሱ 5V 16 MHZ ስሪት ነው። እጅግ በጣም ቀጭን ንድፍ ፣ ትንሽ የእግር ህትመት እና ሁሉም አስፈላጊ ወደቦች እና ለወደፊቱ ማሻሻያዎች የተወሰነ መለዋወጫ ስላለው ይህንን መርጫለሁ። ለኤሌዲዎች ፣ ለማይክሮ መቆጣጠሪያ እና ለሪቲኤ (RTC) አንድ የኃይል አቅርቦት መጠቀም እንዲችል እሱ እንዲሁ 5 ቮልት ነው

ጊዜውን ጠብቆ DS3231 ቺፕን በሚያሳይ በ RTC (በእውነተኛ ሰዓት ሰዓት) ሞዱል ይንከባከባል። ይህ ቺፕ በጣም ትክክለኛ ነው ፣ ስለሆነም ጊዜው በጣም መንሸራተት የለበትም።

እንዲሁም ጥቅም ላይ የዋለ:

ሽቦ። ሞቃታማ እና ሙጫ።

መሣሪያዎች ፦

የኃይል ቁፋሮ እና የእንጨት ቁፋሮ ቢት (10 ሚሜ እና 5 ሚሜ)

የመሸጫ ብረት

ሙቅ ሙጫ ጠመንጃ

የሽቦ ቁርጥራጮች

ድሬሜል እና ራውተር መለዋወጫዎችን ያጥፉ

ደረጃ 2 ምልክት ማድረጊያ ፣ ቁፋሮ እና ማዞሪያ

ምልክት ማድረጊያ ፣ ቁፋሮ እና ማዞሪያ
ምልክት ማድረጊያ ፣ ቁፋሮ እና ማዞሪያ
ምልክት ማድረጊያ ፣ ቁፋሮ እና ማዞሪያ
ምልክት ማድረጊያ ፣ ቁፋሮ እና ማዞሪያ
ምልክት ማድረጊያ ፣ ቁፋሮ እና ማዞሪያ
ምልክት ማድረጊያ ፣ ቁፋሮ እና ማዞሪያ

ቁፋሮ

  • ጠባብ ጠርዝን በመጠቀም ከተቃራኒው ማዕዘኖች መስመር በመሳል የቦርዱን መሃል ይፈልጉ።
  • አንድ ክር እና ብዕር በመጠቀም 3 ክበቦችን ምልክት ያድርጉ። ውጫዊው አብዛኛው ክበብ ከቦርዱ ጠርዝ 20 ሚሜ ያህል መሆን አለበት እና ሌሎች 2 መስመሮች ከመጨረሻው መስመር በ 15 ሚሜ ውስጥ ይንቀሳቀሳሉ።
  • በውጫዊው 2 መስመሮች እና ሰዓታት ውስጥ በውስጠኛው መስመር ላይ የእያንዳንዱን ደቂቃዎች እና ሰከንዶች አቀማመጥ ለመለየት እንድታግዝ የታተመ የሰዓት ፊት ተጠቀምኩ።
  • በየሰዓቱ ፣ በደቂቃ እና በሰከንድ የ 10 ሚሜ ቀዳዳዎችን በግምት 5 ሚሜ ጥልቀት ይከርሙ።
  • ቦርዱ በሰዓት ፣ በደቂቃ እና በሰከንድ ቢሆንም ቀዳዳዎችን ለመሥራት 5 ሚሜ መሰርሰሪያውን ይጠቀሙ።

መሄጃ

ምንም እንኳን ይህ እርምጃ አስፈላጊ ባይሆንም ሰዓቱ ከግድግዳ ጋር እንዲጣበቅ ያስችለዋል።

  • በቦርዱ ውስጥ ራውተር እና የክበብ መመሪያ መስመር ሽቦ ሰርጦች በመጠቀም
  • ለ RTC እና የማይክሮ ተቆጣጣሪ እንዲኖሩበት ምልክት ያድርጉበት እና የእረፍት ጊዜዎን ያሳዩ።
  • ለገመድ ሽቦዎች ሰርጥ ከውጭ መስመሮች ወደ መወጣጫ መስመር ያዙሩ

ደረጃ 3 - በጣም ብዙ ወታደር ፣ መቁረጥ እና መቧጠጥ።

በጣም ብዙ ወታደር ፣ መቁረጥ እና መቧጠጥ።
በጣም ብዙ ወታደር ፣ መቁረጥ እና መቧጠጥ።
በጣም ብዙ ወታደር ፣ መቁረጥ እና መቧጠጥ።
በጣም ብዙ ወታደር ፣ መቁረጥ እና መቧጠጥ።
በጣም ብዙ ወታደር ፣ መቁረጥ እና መቧጠጥ።
በጣም ብዙ ወታደር ፣ መቁረጥ እና መቧጠጥ።

ይህ የሚቀጥለው ክፍል ከመናገር ይልቅ ለመናገር በጣም ቀላል ነው። ምክሬ በችኮላ መቸኮል ይሆናል። ስርዓትን ይሞክሩ እና ወደ ምት ይምቱ።

እያንዳንዱ ኤልኢዲዎች 5 ቮልት ወደ ውስጥ ፣ 5 ቮልት ወጥቶ ፣ የውሂብ ወደ ውስጥ ፣ የውሂብ መውጫ ፣ የመሬት ውስጥ እና የመሬት መውጫ ያስፈልጋቸዋል። ለማይክሮ ተቆጣጣሪው ኃይልን እና ከ 400 በላይ ገመዶችን RTC ን ጨምሮ ፣ ሁሉም ተከፍለው በሁለቱም ጫፎች ተሽጠዋል።

የታሸገ ሰማያዊ ንጥረ ነገር ለዚህ ደረጃ በጣም ጠቃሚ ነው።

  • እርስ በእርስ ለመገናኘት የሚያስፈልገውን የሽቦ ርዝመት ለመሥራት 2 ኤልኢዲዎችን በቀዳዳዎቻቸው ውስጥ በማስቀመጥ ጀመርኩ።
  • 1 ኛ ሽቦን እንደ መመሪያ በመጠቀም እኔ ከዚያ የእያንዳንዱን ቀለም ሽቦ 60 እቆርጣለሁ።
  • ከእያንዳንዱ ሽቦ ጫፎች 2 ሚሜ እጀታ ይከርክሙ እና በሻጭ ያድርጓቸው።
  • በእያንዲንደ የ LED መከለያዎች ላይ ትንሽ ብሌን ያሸጡ።
  • ለደቂቃዎች እና ለሴኮንዶች ሁለት ሰንሰለቶችን 60 እና ለሠዓታት አንድ ሰንሰለት የ 12 ሰንሰለቶችን እንዲፈጥሩ ሽቦዎቹን ወደ ኤልኢዲዎች ያሽጡ። ለ 5 ቪ ቀይ ሽቦን ፣ ለመረጃ ቢጫ እና ለመሬት ሰማያዊን እጠቀም ነበር።
  • እያንዳንዱን Data Out (DOUT) ወደ ቀጣዩ የ LED ውሂብ (DIN) ለማገናኘት ይጠንቀቁ
  • በእያንዳንዱ ሰንሰለት መጠን ውስጥ የመጨረሻው መሪ የውሂብ ሽቦ አያስፈልገውም።

አንዴ ሁሉም ሰንሰለቶች ከተጠናቀቁ በፊት እነሱን ለመፈተሽ ጥሩ ሀሳብ ነው። እያንዳንዱ ኤልኢዲ እየሰራ መሆኑን ለማረጋገጥ የእኔን Arduino UNO እና Adafruit NeoPixel Strand ሙከራ ተጠቅሜ ነበር።

ለ 5 ቮ ፣ መሬት እና መረጃ በ ውስጥ በእያንዳንዱ ሰንሰለቶች ላይ Solder ረጅም ሽቦዎች።

በዚህ ጊዜ ከአርዱዲኖ ፕሮ ሚኒ እና ከ 5 መሬት ሽቦዎች ጋር የተገናኙ አምስት 5 ቪ ሽቦዎች ፣ ሶስት የውሂብ ገመዶች መኖር አለባቸው።

ከ 5 ቮ ሽቦዎች ጫፎች 5 ሚሜ ያንሱ እና ሁሉንም በአንድ ላይ ያሽጡ እና ለከርሰ ምድር ሽቦዎች ይድገሙት።

ሶስቱን ሰንሰለቶች በ 5 ዲ ሽቦ ወደ አርዱዲኖ ፕሮ ሚኒ ራው ፒን እና እንዲሁም ለ RTC በ VCC ፒን ላይ ከጨረሱ በኋላ። በአሩዲኖ ፕሮ Mini እና RTC ላይ ወደ GND የመሬት ሽቦ እና ከዚያ 2 ተጨማሪ ሽቦዎች

SCL ከ RTC እስከ A5 በ Pro Mini ላይ

ኤስዲኤ ከ RTC ወደ A4 በፕሮ ሚኒ ላይ

ከኤሌዲዎቹ የመጡ የውሂብ መስመሮች ከሚከተለው ጋር መገናኘት አለባቸው

  • ሰከንዶች - ዲጂታል ፒን 3.
  • ደቂቃዎች - ዲጂታል ፒን 4
  • ሰዓታት - ዲጂታል ፒን 5

ደረጃ 4: በመጫን ላይ

በመጫን ላይ
በመጫን ላይ
በመጫን ላይ
በመጫን ላይ
በመጫን ላይ
በመጫን ላይ

አንዴ ከተሸጠ በኋላ ቀዳዳዎቹን ውስጥ ያሉትን ኤልኢዲዎች መትከል በቀጥታ ወደ ፊት መሆን አለበት። ኮዱ ከፊት ለፊቱ እየተዋቀረ ስለሆነ ከኋላ ሲመለከቱ ውሂቡ በፀረ-ሰዓት አቅጣጫ ዙሪያ እንዲሠራ ኤልዲዎቹ መጫን አለባቸው።

ወደፊት ካልተሳካ አንድ ነጠላ ኤልኢዲ መተካት መቻል ስለምፈልግ እነሱን ለማቆየት ትንሽ የሙቅ ሙጫ ተጠቅሜአለሁ።

እንዲሁም ሁሉንም ሽቦዎች ሥርዓታማ እና ሥርዓታማ ለማድረግ እና የበርሜሉን አያያዥ በቦርዱ ላይ ለማስተካከል ትኩስ ሙጫ እጠቀም ነበር።

በርካታ የ arduino pro mini ፕሮግራም መመሪያዎች አሉ። ይህንን ኮድ በአርዱዲኖ ላይ ለመጫን ውጫዊውን ዩኤስቢ ወደ ተከታታይ የመቀየሪያ ዘዴ እጠቀማለሁ-

ይህ ኮድ እንዲሁ በ RTC ላይ ያለውን ጊዜ ወደ ተጠናቀረበት ጊዜ ያዘጋጃል። ስለዚህ በተቻለ ፍጥነት እንዲታዘዝ እና እንዲሰቀል የሰቀላ ቁልፍን ብቻ ማኖር አስፈላጊ ነው።

አብዛኛው የዚህ ኮድ የተወሰደው ከ NeoPixel ቀለበት ሰዓት በአንዲ ዶሮ ነው። አንዳንዶቹ ከአዳፍ ፍሬው ኒዮፒክስል ስትራንድ ሙከራ እና አንዳንዶቹ አንድ ላይ አሰባስባለሁ።

ጥቂት ቤተ -መጽሐፍትን መጫን ያስፈልግዎታል። እነሱ በአርዱዲኖ ሶፍትዌር ላይ ከቤተመጽሐፍት ሥራ አስኪያጅ ይገኛሉ።

Adafruit NeoPixel ለ ws2812b LEDs

በ I2C ላይ ከ RTC ጋር ለመነጋገር ሽቦ (ይህ እንደ መደበኛ ተገንብቷል)

እና RTClib RTC ን ምን እንደሚጠይቁ በማወቅ

/*************************************************** ***************************የኒኦፒክስል ቀለበት ሰዓት በአንዲ ዶሮ ([email protected]) https://andydoro.com/ringclock/ ************************************************** *************************

የክለሳ ታሪክ

ቀን በምን

እ.ኤ.አ.

/ የላይብረሪውን ኮድ ያካትቱ

#አካትት #አካትት

#ያካትቱ

// ፒኖችን ይግለጹ

#SECPIN 3 #መግለፅ MINPIN 4 #ገላጭ ሁፕን 5

#ብሩህነት 20 / ከፍተኛውን ብሩህነት ያዘጋጁ

#መለየት 10

#መለየት g 10 #መለየት ለ 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) ፤ // የጭረት ነገር Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24 ፣ HOUPIN ፣ NEO_GRB + NEO_KHZ800); // የጭረት ነገር ባይት pixelColorRed ፣ pixelColorGreen ፣ pixelColorBlue; // የቀለም እሴቶችን ይይዛል

ባዶነት ማዋቀር () {

Wire.begin (); // I2C rtc.begin () ይጀምሩ; // ሰዓት ይጀምሩ

Serial.begin (9600);

// አዘጋጅ pinmodes pinMode (SECPIN, OUTPUT); pinMode (MINPIN ፣ ውፅዓት); pinMode (ሁፖን ፣ ውፅዓት);

ከሆነ (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))); }

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 ፣ ለ) ፣ 50); // ሰማያዊ

መዘግየት (1000);

DateTime theTime = rtc.now (); // ግምት ውስጥ ያስገባል DST ባይት secondval = theTime.second (); // ሰከንዶች ያግኙ ባይት ደቂቃቫል = theTime.minute (); // ደቂቃዎችን በሰዓት ውስጥ ያግኙ = theTime.hour (); ሰዓት / ሰዓት = ሰዓት % 12; // ይህ ሰዓት 12 ሰዓት ነው ፣ ከ13-23 ከሆነ ፣ ወደ 0-11` ይቀይራል

ለ (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, ለ); stripS.show (); መዘግየት (5); }

ለ (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); መዘግየት (5); }

ለ (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); መዘግየት (5); }

}

ባዶነት loop () {

// ጊዜ ያግኙ

DateTime theTime = rtc.now (); // DST ን ግምት ውስጥ ያስገባል

ባይት secondval = theTime.second (); // ሰከንዶች ያግኙ

ባይት ደቂቃቫል = theTime.minute (); // ደቂቃዎችን በሰዓት ውስጥ ያግኙ = theTime.hour (); // የሰዓታት ሰዓት ያግኙ = ሰዓት % 12; // ይህ ሰዓት 12 ሰዓት ነው ፣ ከ13-23 ከሆነ ፣ ወደ 0-11` ይቀይራል

stripS.setPixelColor (secondval, 0, 0, 20); stripS.show (); መዘግየት (10); ከሆነ (secondval == 59) {ለ (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); ከሆነ (secondval == 59 && minuteval == 59) {ለ (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); መዘግየት (16);}}

stripH.setPixelColor (ሰዓት ፣ አር ፣ 0 ፣ 0);

stripH.show (); መዘግየት (10); ከሆነ (secondval == 59 && minuteval == 59 && hourval == 11) {ለ (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i ፣ 0 ፣ 0 ፣ ለ); stripH.show (); መዘግየት (83);}} // ለተከታታይ ማረም Serial.print (hourval ፣ DEC); Serial.print (':'); Serial.print (ደቂቃ ፣ DEC); Serial.print (':'); Serial.println (secondval, DEC); }

// ነጥቦቹን አንድ በአንድ በቀለም ይሙሏቸው

ባዶ ቀለምWipeS (uint32_t c, uint8_t ይጠብቁ) {ለ (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); መዘግየት (ይጠብቁ); }}

ባዶ ቀለምWipeM (uint32_t c ፣ uint8_t መጠበቅ) {

ለ (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); መዘግየት (ይጠብቁ); }}

ባዶ ቀለምWipeH (uint32_t c ፣ uint8_t መጠበቅ) {

ለ (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); መዘግየት (ይጠብቁ); }}

ደረጃ 5: የመጨረሻ ንክኪዎች

Image
Image
የመጨረሻ ንክኪዎች
የመጨረሻ ንክኪዎች

አሁን ሊተው የሚገባው ነገር በእረፍቱ ውስጥ የ RTC እና ማይክሮ መቆጣጠሪያውን ወደ ታች ማስተካከል ነው።

አስፈላጊ ከሆነ ባትሪውን በቀላሉ መለወጥ እንድችል የ RTC ባትሪውን ጎን ለጎን አድርጌአለሁ።

5 ቮ ገመዶችን ከአገናኛው + ጎን እና ከመሬት ወደ - ጎን ያገናኙ

ከፍ ያድርጉት!

እኔ ከዩኤስቢ ባትሪ ባንክ ጋር ተገናኝቻለሁ ፣ ግን የዩኤስቢ ስልክ ባትሪ መሙያ እንዲሁ ይሠራል።

ማስታወሻ:

የ LED ዎች ብሩህነት በኮዱ ውስጥ ተዘጋጅቷል። የአሁኑን ዕጣ ዝቅተኛ ለማድረግ ዝቅተኛ እንዲሆን ተደርጓል። በሁሉም ኤልኢዲዎች ሙሉ በሙሉ ብሩህነት ወደ 8 amps ሊጠጋ ይችላል። አሁን ባለው ቅንብር ከ 1 በታች ነው።

የሰዓት ውድድር
የሰዓት ውድድር
የሰዓት ውድድር
የሰዓት ውድድር

በሰዓት ውድድር ውስጥ ሯጭ

የሚመከር: