ዝርዝር ሁኔታ:

ትክክለኛ ሰዓት: 3 ደረጃዎች
ትክክለኛ ሰዓት: 3 ደረጃዎች

ቪዲዮ: ትክክለኛ ሰዓት: 3 ደረጃዎች

ቪዲዮ: ትክክለኛ ሰዓት: 3 ደረጃዎች
ቪዲዮ: የለውጥ ደረጃዎች| Part 3/4 | Week 9 Day 53 | Dawit Dreams 2024, ሀምሌ
Anonim
ትክክለኛ ሰዓት
ትክክለኛ ሰዓት

እኛ ሁላችንም ሰዓቶች ያስፈልጉናል ፣ ስለዚህ በዚህ አስተማሪ ውስጥ ለምን የራስዎን አያደርጉም ፣ አንዴ ካዘጋጁ አንዴ ትክክለኛ ሰዓት በሁሉም ነገሮች ዳራ ውስጥ በራስ -ሰር እንደሚከታተል ያሳዩዎታል። እንዲሁም በጣም ትንሽ አቅርቦቶች እና ዜሮ መሸጫዎችን ብቻ በሚፈልጉበት ጊዜ።

አቅርቦቶች

በመጀመሪያ ፣ አርዱዲኖ ያስፈልግዎታል ነገር ግን ማንኛውም አርዱዲኖ ይሠራል

በመቀጠልም አጠቃላይ የጃምፐር ሽቦዎች ስብስብ ያስፈልግዎታል።

2 12 ሚሜ Sparkfun Pushbutton Switches

ባህላዊ የዳቦ ሰሌዳ

እና ኤልሲዲ 1602 16 ፒን ማሳያ

ደረጃ 1 - ሽቦ

ሽቦ
ሽቦ

ይህ ሰዓት እንዲሠራ ይህንን በጣም በተወሰነ መንገድ መገናኘት ያስፈልግዎታል ወይም ካልሆነ በጊዜ ሳይሆን በማያ ገጹ ላይ የዘፈቀደ ቁጥሮች ስብስብ ያገኛሉ።

ደረጃ 2 - ኮዱ

እኛ RTC ን ስለማንጠቀም ኮዱ ትንሽ ረጅም ይሆናል ፣ ግን አመሰግናለሁ ሁሉንም ከባድ ስራ ለእርስዎ ሰርቼ እዚህ አቅርቤዋለሁ።

ይህንን በአርዲኖ አይዲኢ ወይም በድር አርታኢ ውስጥ ይቅዱ እና ይለጥፉ።

#"LiquidCrystal.h" ን ያካትቱ

// ይህ የኤልሲዲ ሽቦውን ወደ DIGITALpins const int rs = 2 ፣ en = 3 ፣ d4 = 4 ፣ d5 = 5 ፣ d6 = 6 ፣ d7 = 7 ይገልጻል። LiquidCrystal lcd (rs ፣ en ፣ d4 ፣ d5 ፣ d6 ፣ d7);

// ዲጂታል ኤልሲሲ ኮንስትራስት ቅንብር int cs = 9; // ፒን 9 ለንፅፅር PWM const int ተቃራኒ = 100; // ነባሪ ንፅፅር

// የመጀመሪያ ሰዓት ማሳያ 12:59:45 PM int h = 12; int m = 59; int s = 45; int ባንዲራ = 1; // ጠ/ሚ

// የጊዜ አዘጋጅ አዝራሮች int button1; int አዝራር 2;

// የፒን ትርጓሜ ለጊዜ አዘጋጅ አዝራሮች int hs = 0; // pin 0 ለ ሰዓታት ማቀናበር int ms = 1; // ሚስማር 1 ለደቂቃዎች ቅንብር

// የጀርባ ብርሃን ሰዓት Out const int Time_light = 150; int bl_TO = Time_light; // የጀርባ ብርሃን ሰዓት መውጫ int bl = 10; // የጀርባ ብርሃን ፒን const int backlight = 120; // ከ 7mA አይበልጥም !!!

// ለትክክለኛ ሰዓት ንባብ ፣ አርዱዲኖ እውነተኛ ሰዓት ሰዓት ይጠቀሙ እና መዘግየት ብቻ አይደለም () የማይንቀሳቀስ uint32_t last_time ፣ አሁን = 0; // RTC

ባዶነት ማዋቀር () {lcd.begin (16, 2); pinMode (ሰዓቶች ፣ INPUT_PULLUP) ፤ // ለውጫዊ የ pulpp resistors ን ለቁልፍ 1 ፒንMode (ms ፣ INPUT_PULLUP) ፤ // እና አዝራር 2 አናሎግ ፃፍ (ሲኤስ ፣ ንፅፅር); በ Backlight ላይ አሁን = ሚሊስ (); // የ RTC የመጀመሪያ ዋጋን ያንብቡ}

ባዶ ባዶ loop () {lcd.begin (16 ፣ 2) ፤ // እያንዳንዱ ሰከንድ // የ LCD ማሳያ ያዘምኑ/ያትሙ ሰዓት ፣ ደቂቃ ፣ ሰከንድ + AM/PM lcd.setCursor (0 ፣ 0) ፤ lcd.print ("ጊዜ"); ከሆነ (ሸ <10) lcd.print ("0"); // ሁልጊዜ 2 አሃዞች lcd.print (ሸ); lcd.print (":"); ከሆነ (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); ከሆነ (ዎች <10) lcd.print ("0"); lcd.print (ዎች);

ከሆነ (ባንዲራ == 0) lcd.print ("AM"); ከሆነ (ባንዲራ == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // ለ መስመር 2 lcd.print ("ትክክለኛ ሰዓት");

// የተሻሻለ መዘግየት መተካት (1000) // በጣም የተሻለ ትክክለኛነት ፣ የሉፕ አፈፃፀም ጊዜ ጥገኛ አይደለም

ለ (int i = 0; i <5; i ++) // ለፈጣን የአዝራር ምላሽ 5 ጊዜ 200ms loop ያድርጉ {

ሳለ ((አሁን-last_time) <200) // delay200ms {now = millis (); } / ውስጣዊ 200ms loop last_time = አሁን; // ለሚቀጥለው ዙር ያዘጋጁ

// ያንብቡ የማዋቀሪያ አዝራሮች አዝራር 1 = digitalRead (hs) ፤ // የአዝራር አዝራሮችን ያንብቡ 2 = digitalRead (ms);

// የጀርባ ብርሃን ጊዜ bl_TO--; ከሆነ (bl_TO == 0) {analogWrite (bl, 0) ፤ // የጀርባ ብርሃን ጠፍቷል bl_TO ++; } // (((button1 == 0) | (button2 == 0)) እና (bl_TO == 1)) {bl_TO = Time_light; አናሎግ ፃፍ (bl ፣ የጀርባ ብርሃን); // ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // አዝራሮችን ያንብቡ አዝራር 2 = digitalRead (ms); }} ሌላ // የሂደት አዝራር 1 ወይም አዝራር 2 በሚመታበት ጊዜ የጀርባ ብርሃን {if (button1 == 0) {h = h+1; bl_TO = የጊዜ_መብራት; አናሎግ ፃፍ (bl ፣ የጀርባ ብርሃን); }

ከሆነ (button2 == 0) {s = 0; m = m+1; bl_TO = የጊዜ ብርሃን; አናሎግ ፃፍ (bl ፣ backlight); }

/* ---- ሰከንዶች ፣ ደቂቃዎች ፣ ሰዓታት ከሰዓት/ከምሽቱ በላይ ----*/if (s == 60) {s = 0; m = m+1; } ከሆነ (m == 60) {m = 0; ሸ = ሸ+1; } ከሆነ (h == 13) {h = 1; ባንዲራ = ባንዲራ+1; ከሆነ (ባንዲራ == 2) ባንዲራ = 0; }

ከሆነ ((button1 == 0) | (button2 == 0)) // የጊዜ ቅንብር አዝራር ተጭኖ ከሆነ ማሳያውን ያዘምኑ {// የ LCD ማሳያ ያዘምኑ/ያትሙ ሰዓት ፣ ደቂቃ ፣ ሰከንድ + AM/PM lcd.setCursor (0, 0); lcd.print ("ጊዜ"); ከሆነ (ሸ <10) lcd.print ("0"); // ሁልጊዜ 2 አሃዞች lcd.print (ሸ); lcd.print (":"); ከሆነ (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); ከሆነ (ዎች <10) lcd.print ("0"); lcd.print (ዎች);

ከሆነ (ባንዲራ == 0) lcd.print ("AM"); ከሆነ (ባንዲራ == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // ለ መስመር 2 lcd.print ("ትክክለኛ ሰዓት"); }

} // ካለቀ}} // ያበቃል ለ

// ውጫዊ 1000ms loop

s = s+1; // ጭማሪ ሰከንድ። በመቁጠር // ---- ሰከንዶች ፣ ደቂቃዎች ፣ ሰዓታት ከሰዓት/ከምሽቱ በላይ ---- ከሆነ (s == 60) {s = 0; m = m+1; } ከሆነ (m == 60) {m = 0; ሸ = ሸ+1; } ከሆነ (h == 13) {h = 1; ባንዲራ = ባንዲራ+1; ከሆነ (ባንዲራ == 2) ባንዲራ = 0; }

// የሉፕ መጨረሻ}

ደረጃ 3: መርሃግብር (ይህ በእውነቱ ደረጃ አይደለም)

መርሃግብራዊ (ይህ በእውነቱ ደረጃ አይደለም)
መርሃግብራዊ (ይህ በእውነቱ ደረጃ አይደለም)

ይህንን የሚያነብ የቴክኖሎጂ ሰው ከሆነ እዚህም እንዲሁ ተንኮለኛ ነው እሱን ማየት ይችላሉ እብድ።

ይደሰቱ እና ይዝናኑ እና ከሁሉም በላይ ትኩስ ይሁኑ።

የሚመከር: