ዝርዝር ሁኔታ:

ከድር ጋር የተገናኘ ዲጂታል ሰዓት 7 ደረጃዎች
ከድር ጋር የተገናኘ ዲጂታል ሰዓት 7 ደረጃዎች

ቪዲዮ: ከድር ጋር የተገናኘ ዲጂታል ሰዓት 7 ደረጃዎች

ቪዲዮ: ከድር ጋር የተገናኘ ዲጂታል ሰዓት 7 ደረጃዎች
ቪዲዮ: Video in diretta del venerdí pomeriggio! Cresciamo tutti insieme su YouTube! @SanTenChan 2024, ህዳር
Anonim
ከድር ጋር የተገናኘ ዲጂታል ሰዓት
ከድር ጋር የተገናኘ ዲጂታል ሰዓት

በአማዞን ላይ የ 10 ዶላር ዲጂታል ሰዓት አግኝቷል። አሁን ከበይነመረቡ ጊዜ ለማግኘት እሱን ለማበጀት።

አቅርቦቶች

ARM Stamp በፕሮግራም ሊሠራ የሚችል በመሠረታዊነት እዚህ ይገኛል

ደረጃ 1: ባለብዙ ውስብስብ ማሳያ ዲጂት ድራይቭ እና ክፍል ድራይቭን ያገናኙ

ለተራዘመ ማሳያ ዲጂት ድራይቭ እና ክፍል ድራይቭን ያገናኙ
ለተራዘመ ማሳያ ዲጂት ድራይቭ እና ክፍል ድራይቭን ያገናኙ

ከመደርደሪያው ትልቅ ቁጥር ያለው ዲጂታል ሰዓት በርካሽ ጀመርኩ። በመጀመሪያ ነባሩን የሰዓት ቺፕ አስወገድኩ። ከዚያ አንዳንድ ምርመራዎችን አደረጉ እና በቀጥታ በማይክሮፕሮሰሰር ሊነዱ የሚችሉትን የ 7 ክፍል ግንኙነቶችን አገኙ። ከዚያ ማይክሮፕሮሴሰር ማሽከርከር የሚችለውን ትራንዚስተሮች የነበሩትን ባለ 4 አሃዝ አሽከርካሪዎች አገኘ። እና ከዚያ እነዚያን አበቃ።

ደረጃ 2 - ግንኙነቶችን ይፈትሹ

ግንኙነቶችን ይፈትሹ
ግንኙነቶችን ይፈትሹ

እንደ ሙከራ ሁሉንም መስመሮች ለማሽከርከር ፣ ሽቦውን ለመፈተሽ እና የአሁኑን ለመለካት መሰረታዊ መርሃ ግብር ፃፍኩ ፣ በዚህ ሁኔታ ውስጥ 82 MA

ቀጥሎ መስመሮችን ለመቃኘት ኮዱን መጻፍ ነበር።

'የድር ሰዓት ማሳያ ድራይቭ

IO (7) = 0 'PMOS ድራይቭ - አንድ ቀን PWM ይሆናል

ለ y = ከ 45 እስከ 48

IO (y) = 0 'አሃዝ ድራይቭ

ለ x = ከ 8 እስከ 15

IO (x) = 0 'ክፍል ድራይቭ

ይጠብቁ (500)

አይኦ (x) = 1

ቀጣዩ x

DIR (y) = 0 'ድራይቭን በክፍል ላይ ያሰናክሉ

ቀጣይ y

ደረጃ 3 ብሩህነትን ለመቆጣጠር ጊዜን ለማሳየት እና PWM ለማሳየት ኮድ

ጊዜን ለማሳየት ኮድ እና ብሩህነትን ለመቆጣጠር PWM
ጊዜን ለማሳየት ኮድ እና ብሩህነትን ለመቆጣጠር PWM
ጊዜን ለማሳየት ኮድ እና ብሩህነትን ለመቆጣጠር PWM
ጊዜን ለማሳየት ኮድ እና ብሩህነትን ለመቆጣጠር PWM

በመቀጠል ለሁሉም አሃዝ አሽከርካሪዎች በኃይል አቅርቦት ውስጥ የ PMOS ትራንዚስተር ጨመርኩ። በ pulse ስፋት ሞጁል በሚነዳበት ጊዜ የማሳያውን ብሩህነት ይቆጣጠራል። ሰዓቱን ለማሳየት መሠረታዊው ኮድ እዚህ አለ።

'የድር ሰዓት ማሳያ ድራይቭ #LPC11U3x.bas »ን ያካትቱ

'ግሎባል

hr = 0 'ሰዓት ይወስኑ

ደቂቃ = 0 'ደቂቃን ይግለጹ

#SEG_0 & HBB00 ን ይግለጹ

#ይግለጹ SEG_1 & H1800

#ጥራት SEG_2 እና HD300 ን ይግለጹ

#ጥራት SEG_3 & HD900 ን ይግለጹ

#SEG_4 & H7800 ን ይግለጹ

#SEG_5 & HE900 ን ይግለጹ

#SEG_6 & HEB00 ን ይግለጹ

#ገላጭ SEG_7 & H9800

#ገላጭ SEG_8 & HFB00

#ጥራት SEG_9 & HF800

#SEG_o & H4B00 ን ይግለጹ

#ገላጭ SEG_f & HE200

const DIGarray = {SEG_0 ፣ SEG_1 ፣ SEG_2 ፣ SEG_3 ፣ SEG_4 ፣ SEG_5 ፣ SEG_6 ፣ SEG_7 ፣ SEG_8 ፣ SEG_9 ፣ SEG_o ፣ SEG_f}

#ዲግን_ይጠብቁ 1

#US_TIME ን ይግለጹ

ንዑስ ማሳያ ጊዜ (ስህተት ፣ ሰዓት ፣ ደቂቃ)

ደብዛዛ hr10 ፣ hr1 ፣ min10 ፣ min1 ፣ i

#ifdef US_TIME

hr> 12 ከሆነ ሰዓት -= 12

hr = 0 ከሆነ hr = 12 ከሆነ

#ኤንዲፍ

hr10 = ሰዓት / 10

hr1 = ሰዓት MOD 10

ደቂቃ 10 = ደቂቃ / 10

ደቂቃ 1 = ደቂቃ MOD 10

ለ i = 0 ለ 1

hr10 ከሆነ

አይኦ (45) = 0

መጨረሻ

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + ዲግራይ (ሰዓት 10)

GPIO_CLR (0) = ዲግራይ (ሰዓት 10)

ይጠብቁ (DIG_WAIT)

ግብዓት (45)

አይኦ (46) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + ዲግራይ (hr1) + IF (i ፣ & H400 ፣ 0)

GPIO_CLR (0) = DIGarray (hr1) + IF (i ፣ & H400 ፣ 0)

ይጠብቁ (DIG_WAIT)

ግብዓት (46)

አይኦ (47) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + ዲግራይ (ደቂቃ 10)

GPIO_CLR (0) = ዲግራይ (ደቂቃ 10)

ይጠብቁ (DIG_WAIT)

ግብዓት (47)

አይኦ (48) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + ዲግራይ (ደቂቃ 1)

GPIO_CLR (0) = ዲግራይ (ደቂቃ 1)

ይጠብቁ (DIG_WAIT)

ግብዓት (48)

ቀጥሎ እኔ

መጨረሻ

በእያንዳንዱ ደቂቃ ለማቋረጥ 'ተጠቃሚ TIMER1 (32 ቢት)

INTERRUPT SUB TIMER1IRQ

T1_IR = 1 'ግልጽ ማቋረጥ

ደቂቃ += 1

ከሆነ ደቂቃ> 59 ከዚያ

ደቂቃ = 0

ሰዓት += 1

hr> 23 ከሆነ

ሰዓት = 0

መጨረሻ

መጨረሻ

ENDSUB

በርቷል_TIMER (max_cnt ፣ dothis)

TIMER1_ISR = dothis + 1 'የ VIC ስብስብ ተግባር - ለአውራ ጣት ሥራ +1 ያስፈልጋል

SYSCON_SYSAHBCLKCTRL ወይም = (1 << 10) 'TIMER1 ን ያንቁ

T1_PR = 0 'ቅድመ ሁኔታ የለም - ለተጨማሪ ትክክለኛ ጊዜ ዋጋውን ያስተካክላል

VICIntEnable OR = (1 << TIMER1_IRQn) 'ማቋረጥን ያንቁ

T1_MR0 = max_cnt-1 'የሚስጥር ቁጥር አዘጋጅቷል

T1_MCR = 3 'አቋርጥ እና ዳግም አስጀምር

MR0 T1_IR = 1 'ግልጽ ማቋረጥ

T1_TC = 0 'ግልጽ ቆጣሪ ቆጣሪ

T1_TCR = 1 'TIMER1 አንቃ

ENDSUB

#መግለፅ MINUT_PCLK 2880000000 '60 ሰከንዶች በ 48 ሜኸ

ዋና ፦

ሰዓት = 9

ደቂቃ = 33

ON_TIMER (MINUT_PCLK ፣ ADDRESSOF TIMER1IRQ)

IO (7) = 0 'PWM የሆነ ቀን - ወደ P0_22 መሄድ ያስፈልግዎታል ??

እያለ 1

የማሳያ ሰዓት (0 ፣ ሰዓት ፣ ደቂቃ)

loop

ደረጃ 4 - የበይነመረብ ግንኙነት ያድርጉ

የበይነመረብ ግንኙነት ይፍጠሩ
የበይነመረብ ግንኙነት ይፍጠሩ

ለ WiFi ግንኙነት ESP8266 ይጠቀሙ። ለተወሰነ ጊዜ በድር ዙሪያ ከጎበኘ በኋላ በጣም ጥሩው መፍትሔ የ nodemcu ስሪት 0.9.6 እና አንድ የቆየ esp8266_flasher ምርጡን ሰርቷል።

www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip

ከዚያ ጊዜን ከበይነመረቡ ለማገልገል ቀላል የ PHP ድር-

የኮሪዲየም ሰዓት አገልጋይ

<? php

$ timezone = htmlspecialchars ($ _ GET ["ዞን"]); ከሆነ ($ timezone == "")

$ timezone = 'አሜሪካ/Los_Angeles';

$ tz_object = አዲስ DateTimeZone ($ timezone);

$ datetime = አዲስ DateTime ();

$ datetime-> setTimezone ($ tz_object);

አስተጋባ "ጊዜ ነው-" ፣ $ datetime-> ቅርጸት ('H: i: s');

አስተጋባ "";

አስተጋባ "ቀን ነው-" ፣ $ datetime-> ቅርጸት ('m/d/Y');

?>

እርስዎ መጠየቅ እንዲችሉ ያ ድረ -ገጽ ነው

coridium.us/time.php - እና እርስዎ የአሜሪካ ፓስፊክ የሰዓት ሰቅ በደንብ ያገኛሉ

ወይም

coridium.us/time.php?zone=Europe/London

ምንም ስህተት መፈተሽ እና ምናልባትም በጭራሽ አይሆንም

እና ሉአ ያንን ለማንበብ -

wifi.sta.config ("your_SSID" ፣ "your_PASSWORD")> wifi.sta.connect ()…

sk = net.createConnection (net. TCP ፣ 0)

sk: በርቷል ("ተቀበል" ፣ ተግባር (sck ፣ c) ህትመት (ሐ) መጨረሻ)

sk: ይገናኙ (80 ፣ “coridium.us”)

sk: ላክ ("GET/time.php HTTP/1.1 / r / n አስተናጋጅ: coridium.us / r / n ግንኙነት: በሕይወት ይኑር / r / n ተቀበል: */ *\ r / n / r / n")

እና እንደ ጊዜ ይመለሳሉ

ጊዜው -09: 38: 49 ቀኑ -2018-31-12 ነው

ደረጃ 5 - ጊዜን ከድር ለመለየት መሰረታዊ ኮድ ያክሉ

ጊዜውን ከድር ለመለየት መሰረታዊ ኮድ ያክሉ
ጊዜውን ከድር ለመለየት መሰረታዊ ኮድ ያክሉ

ይህ የሙሉ BASIC ፕሮግራም ንዑስ ክፍል ነው ፣ ያ ሙሉ መርሃ ግብር በመጨረሻው ደረጃ በአገናኝ ላይ ሊታይ ይችላል።

strstr (build_gets ፣ “time is-”) = 0 ከዚያ

ሰዓት = build_gets (8) - "0"

build_gets (9) = ":" ከዚያ

ደቂቃ = (build_gets (10) - "0")*10

ደቂቃ += build_gets (11) - "0"

ሌላ

ሰዓት = ሰዓት * 10 + የግንባታ_ጌቶች (9) - "0"

ደቂቃ = (build_gets (11) - "0")*10

ደቂቃ += build_gets (12) - "0"

መጨረሻ

መጨረሻ

ደረጃ 6 ማሳያውን ለማደብዘዝ የብርሃን ዳሳሽ እና ኮድ ያክሉ

ማሳያውን ለማደብዘዝ የብርሃን ዳሳሽ እና ኮድ ያክሉ
ማሳያውን ለማደብዘዝ የብርሃን ዳሳሽ እና ኮድ ያክሉ
ማሳያውን ለማደብዘዝ የብርሃን ዳሳሽ እና ኮድ ያክሉ
ማሳያውን ለማደብዘዝ የብርሃን ዳሳሽ እና ኮድ ያክሉ
ማሳያውን ለማደብዘዝ የብርሃን ዳሳሽ እና ኮድ ያክሉ
ማሳያውን ለማደብዘዝ የብርሃን ዳሳሽ እና ኮድ ያክሉ

በክፍሉ ውስጥ ያለውን የአካባቢ ብርሃን ለመገንዘብ የፎቶ ትራንዚስተር ታክሏል። ያለ እሱ ማሳያው ሙታንን (እኔ) በሌሊት ለማንቃት በቂ ነው።

የፎቶ ትራንዚስተር ውፅዓት የአናሎግ voltage ልቴጅ ይነበባል እና የ pulse ስፋት ሞጁሉ የማሳያውን አጠቃላይ ብሩህነት ያዘጋጃል።

ደረጃ 7 - ሰዓቱን ከፍ ያድርጉ እና እሱን መጠቀም ይጀምሩ።

አዝራሩን ወደ ላይ ከፍ ያድርጉ እና እሱን መጠቀም ይጀምሩ።
አዝራሩን ወደ ላይ ከፍ ያድርጉ እና እሱን መጠቀም ይጀምሩ።

የመጨረሻው ስሪት ጊዜውን ያሳያል ፣ እና ከጠዋቱ 3 ሰዓት አካባቢ የአሁኑን ጊዜ ለማንበብ ወደ ድር ይወጣል። ይህ እንዲሁ የቀን ብርሃን ቁጠባ ጊዜን ይቆጣጠራል።

የዚህ ፕሮጀክት ተነሳሽነት እዚህ በተራሮች ላይ ያጋጠመን የኃይል ውድቀቶች እና በሕይወት እንዲቆዩ ለማድረግ ሰዓቶችን እንደገና ማስጀመር ወይም ባትሪዎችን የመተካት አስፈላጊነት ነበር።

ይህ የፕሮጀክቱ ፈጣን አጠቃላይ እይታ ሆኗል።

የዚህ DIY ድር የተገናኘ ሰዓት ሙሉ ዝርዝሮች።

የሚመከር: