جدول المحتويات:

الساعة الدقيقة: 3 خطوات
الساعة الدقيقة: 3 خطوات

فيديو: الساعة الدقيقة: 3 خطوات

فيديو: الساعة الدقيقة: 3 خطوات
فيديو: START! Walking at Home American Heart Association 3 Mile Walk 2024, يوليو
Anonim
ساعة دقيقة
ساعة دقيقة

نحتاج جميعًا إلى ساعات ، فلماذا لا تصنع ساعة خاصة بك في هذه التعليمات ، سأوضح لك كيفية إنشاء ساعة دقيقة بمجرد تعيينها ، سوف تتعقب تلقائيًا الوقت الحالي في خلفية كل شيء. بينما تحتاج أيضًا إلى القليل جدًا من الإمدادات ولحام صفري.

اللوازم

أولاً ، ستحتاج إلى Arduino ولكن أي Arduino سيعمل

بعد ذلك ، ستحتاج إلى مجموعة متنوعة من أسلاك التوصيل العامة.

2 مفاتيح انضغاطية سباركفن 12 ملم

لوحة توصيل تقليدية

وشاشة LCD 1602 16 دبوس

الخطوة 1: الأسلاك

الأسلاك
الأسلاك

لكي تعمل هذه الساعة ، تحتاج إلى توصيل هذا بطريقة محددة للغاية وإلا ستحصل على مجموعة من الأرقام العشوائية على الشاشة بدلاً من الوقت.

الخطوة الثانية: الكود

نظرًا لأننا لا نستخدم RTC ، فستكون الشفرة طويلة بعض الشيء ولكن لحسن الحظ قمت بكل العمل الشاق من أجلك وقمت بتوفيره هنا.

ما عليك سوى نسخ هذا ولصقه في Arduino IDE أو محرر الويب.

# تضمين "LiquidCrystal.h"

// هذا يحدد أسلاك LCD إلى DIGITALpins const int rs = 2 ، en = 3 ، d4 = 4 ، d5 = 5 ، d6 = 6 ، d7 = 7 ؛ LiquidCrystal LCD (rs، en، d4، d5، d6، d7) ؛

// إعداد قيد LCD الرقمي int cs = 9 ؛ // pin 9 للتباين PWM const int التباين = 100 ؛ // التباين الافتراضي

// عرض الوقت الأولي هو 12:59:45 مساءً int h = 12 ؛ كثافة العمليات م = 59 ؛ كثافة العمليات = 45 ؛ علم int = 1 ؛ //مساء

// عدد أزرار ضبط الوقت int button1 ؛ زر كثافة العمليات 2 ؛

// تعريف الدبابيس لأزرار ضبط الوقت int hs = 0 ؛ // pin 0 لإعداد الساعات int ms = 1 ؛ // pin 1 لإعداد الدقائق

// Backlight Time Out const int Time_light = 150 ؛ int bl_TO = Time_light ؛ // Backlight Time-Out int bl = 10 ؛ // الخلفية دبوس const int الخلفية = 120 ؛ // لا أكثر من 7mA !!!

// لقراءة دقيقة للوقت ، استخدم Arduino Real Time Clock وليس مجرد تأخير () ثابت uint32_t last_time ، الآن = 0 ؛ // RTC

إعداد باطل () {lcd.begin (16، 2) ؛ pinMode (hs ، INPUT_PULLUP) ؛ // تجنب مقاومات Pullup الخارجية للزر 1 pinMode (ms ، INPUT_PULLUP) ؛ // وزر 2 analogWrite (cs ، التباين) ؛ // ضبط التباين VO analogWrite (bl ، الإضاءة الخلفية) ؛ // Turn على الإضاءة الخلفية الآن = ميلي () ؛ // قراءة القيمة الأولية RTC}

حلقة فارغة () {lcd.begin (16، 2)؛ // كل ثانية // تحديث شاشة LCD // طباعة الوقت بالساعة ، دقيقة ، ثانية + AM / PM lcd.setCursor (0، 0)؛ lcd.print ("الوقت") ؛ if (h <10) lcd.print ("0") ؛ // دائمًا من رقمين lcd.print (h) ؛ lcd.print (":") ؛ إذا (م <10) lcd.print ("0") ؛ lcd.print (م) ؛ lcd.print (":") ؛ if (s <10) lcd.print ("0") ؛ lcd.print (s) ؛

إذا (العلم == 0) lcd.print ("AM") ؛ إذا (العلم == 1) lcd.print ("PM") ؛ lcd.setCursor (0 ، 1) ؛ // للخط 2 lcd.print ("ساعة دقيقة") ؛

// تحسين استبدال التأخير (1000) // دقة أفضل بكثير ، لا تعتمد على وقت تنفيذ الحلقة

لـ (int i = 0؛ i <5؛ i ++) // جعل حلقة 5 مرات 200 مللي ثانية ، لاستجابة أسرع للزر {

while ((now-last_time) <200) // delay200ms {now = millis () ؛ } // حلقة داخلية 200 مللي ثانية last_time = الآن ؛ // الاستعداد للحلقة التالية

// قراءة أزرار الإعداد button1 = digitalRead (hs) ؛ // قراءة الأزرار button2 = digitalRead (مللي ثانية) ؛

// مهلة الإضاءة الخلفية bl_TO-- ؛ إذا (bl_TO == 0) {analogWrite (bl ، 0) ؛ // Backlight OFF bl_TO ++ ؛ } // اضغط على أي لتنشيط Backlight if (((button1 == 0) | (button2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light؛ analogWrite (bl ، الإضاءة الخلفية) ؛ // انتظر حتى يتم تحرير الزر أثناء ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs) ؛ // قراءة الأزرار button2 = digitalRead (مللي ثانية) ؛ }} else // زر العملية 1 أو الزر 2 عند الضغط عليه أثناء تشغيل الإضاءة الخلفية {if (button1 == 0) {h = h + 1؛ bl_TO = ضوء الوقت ، analogWrite (bl ، الإضاءة الخلفية) ؛ }

إذا (button2 == 0) {s = 0 ؛ م = م + 1 ؛ bl_TO = ضوء الوقت ، analogWrite (bl ، الإضاءة الخلفية) ؛ }

/ * ---- إدارة الثواني والدقائق والساعات صباحًا / مساءً تجاوز ---- * / if (s == 60) {s = 0 ؛ م = م + 1 ؛ } إذا (م == 60) {م = 0 ؛ ح = ح + 1 ؛ } إذا (ح == 13) {ح = 1 ؛ العلم = العلم + 1 ؛ إذا (العلم == 2) العلم = 0 ؛ }

if ((button1 == 0) | (button2 == 0)) // تحديث العرض إذا تم الضغط على زر ضبط الوقت {// تحديث شاشة عرض LCD // Print TIME in Hour، Min، Sec + AM / PM lcd.setCursor (0 ، 0) ؛ lcd.print ("الوقت") ؛ if (h <10) lcd.print ("0") ؛ // دائمًا من رقمين lcd.print (h) ؛ lcd.print (":") ؛ إذا (م <10) lcd.print ("0") ؛ lcd.print (م) ؛ lcd.print (":") ؛ if (s <10) lcd.print ("0") ؛ lcd.print (s) ؛

إذا (العلم == 0) lcd.print ("AM") ؛ إذا (العلم == 1) lcd.print ("PM") ؛ lcd.setCursor (0 ، 1) ؛ // للخط 2 lcd.print ("ساعة دقيقة") ؛ }

} // end if else} // end لـ

// حلقة 1000 مللي ثانية

ق = ق + 1 ؛ // زيادة ثانية. العد // ---- إدارة الثواني والدقائق والساعات صباحًا / مساءً تجاوز ---- إذا (s == 60) {s = 0 ؛ م = م + 1 ؛ } إذا (م == 60) {م = 0 ؛ ح = ح + 1 ؛ } إذا (ح == 13) {ح = 1 ؛ العلم = العلم + 1 ؛ إذا (العلم == 2) العلم = 0 ؛ }

// حلقة نهاية}

الخطوة 3: التخطيطي (هذه ليست حقًا خطوة)

تخطيطي (هذه ليست في الحقيقة خطوة)
تخطيطي (هذه ليست في الحقيقة خطوة)

إذا كان أي شخص يقرأ هذا هو الطالب الذي يذاكر كثيرا في مجال التكنولوجيا ، فهنا أيضًا تخطيطي يمكنك النظر إليه بالجنون.

استمتع واستمتع ، والأهم من ذلك كله ، ابق منتعشًا.

موصى به: