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

ساعة توقيت بسيطة وعملية من اردوينو: 4 خطوات
ساعة توقيت بسيطة وعملية من اردوينو: 4 خطوات

فيديو: ساعة توقيت بسيطة وعملية من اردوينو: 4 خطوات

فيديو: ساعة توقيت بسيطة وعملية من اردوينو: 4 خطوات
فيديو: Arduino Lesson 11: 220V LED Timer مؤقت زمني للتحكم فى أستهلاك الكهرباء 2024, شهر نوفمبر
Anonim
ساعة توقيت بسيطة وعملية من اردوينو
ساعة توقيت بسيطة وعملية من اردوينو

ابحث في الويب عن ساعة توقيت Arduino. ربما تكون قد فعلت ذلك للتو ، إذا كنت هنا. من خلال التجربة الشخصية ، يمكنني أن أخبرك أن أي ساعة توقيت على الإنترنت معقدة للغاية (في الكود ، للمبتدئين) ، أو أنها مبسطة للغاية ، وليست عملية ، مثل تلك التي تستمر في عد الثواني دون إعادة ضبطها.

هل تعتقد ذلك أيضًا ، أليس كذلك؟ حسنا خمن ماذا. لقد فعلت ذلك ، وما هو أكثر من ذلك ، فأنا آخذ مدخلاتي مباشرة من دالة millis () - سطر لا نهائي من الأرقام (حتى 49 يومًا ، أو أيًا كان). أفضل جزء؟ إنه سطر واحد فقط.

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

للمبتدئين ، تابع القراءة واستمتع بعبقرية ذهني.

أنا أمزح فقط ، لكن الحل الذي توصلت إليه كان أنيقًا جدًا. هذا ما هو عليه:

الخطوة 1: الحل

الحل
الحل

لذا فإن المشكلة تكمن في إعادة الضبط. ما نريده هو دائرة مستمرة ومتكررة من الأرقام ، من مخرجات لا نهائية من الأرقام المتسلسلة (بالمللي () - إنها تحسب أساسًا بالمللي ثانية ، أو في الواقع 1.024 ميلي ثانية ، ولكن أيا كان).

أول ما يتبادر إلى الذهن هو استخدام الاختلاف ، مثل الوقت 1 - الوقت 2 والتأخير. انس هذا. يستغرق ما لا يقل عن ستة أسطر من التعليمات البرمجية ، وعبارة if للتشغيل.

إذن إليك كيفية القيام بذلك. لدينا الحد (59). نريد تكرار كل شيء من 0 إلى 59 مرات ومرات. كيف؟

ماذا لو… أخذنا الباقي… من دالة المللي مقسومة على 59…. بنغو!

لذلك ، يجب أن يكون الأمر على هذا النحو:

(60 [كقيمة أولية لأن الحد هو 59] + مللي () / 1000 [1000 مللي ثانية ثانية])٪ 60

حسنًا ، اشرح lemme. (٪) أو المعامل هو في الأساس عامل مثل (+) يجد الباقي. مثل 9٪ 2 = 1.

وبالتالي:

  • باقي (60 + 0)٪ 60 = 0
  • باقي (60 + 1)٪ 60 = 1
  • باقي (60 + 58)٪ 60 = 58
  • باقي (60 + 59)٪ 60 = 59
  • باقي (60 + 60)٪ 60 = 60
  • باقي (60 + 61)٪ 60 = 1

ارى!

الآن ، للأجزاء.

الخطوة 2: الأجزاء

الأجزاء
الأجزاء

ليس كثيرا على الاطلاق

  1. أي اردوينو
  2. أي شاشة عرض (استخدمت شاشة OLED مقاس 0.96 بوصة ، ولكن يمكنك استخدام كل ما لديك ، فقط تأكد من وضع المتغيرات الصحيحة في وظائف العرض الخاصة بشاشتك.)

هذا كل شيء.

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

هنا يا الذهاب. من الواضح أنه تم التعليق عليه ، لذلك يجب ألا تكون هناك مشاكل. المكتبات و init لـ 0.96 OLED موجودة في الكود. استبدلها بشاشة العرض الخاصة بك إذا كانت مختلفة.

// 0.96 مكتبات OLED

#يشمل

#يشمل

#يشمل

#يشمل

// 0.96 OLED Init

# تعريف OLED_RESET 4

عرض Adafruit_SSD1306 (OLED_RESET) ؛

ثواني int

دقائق كثافة العمليات

ساعات int

الإعداد باطل() {

// بعض المزيد من 0.96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC ، 0x3C) ؛

display.clearDisplay () ، display.setTextSize (2) ، display.setTextColor (WHITE) ، }

حلقة فارغة() {

الثواني = (60 + مللي () / 1000)٪ 60 ؛

الدقائق = (60 + مللي () / 60000)٪ 60 ؛ ساعات = (25 + مللي () / 3600000)٪ 25 ؛

display.clearDisplay () ،

display.setCursor (0 ، 22) ؛ // طباعة عدد الساعات منذ إعادة تعيين العرض (ساعات) ؛ display.print ("h:") ؛

// طباعة عدد miutes منذ إعادة التعيين

display.print (بالدقائق) ؛

display.print ("m:") ؛

// طباعة عدد الثواني منذ إعادة تعيين العرض (بالثواني) ؛ display.print ("s") ؛

display.setCursor (0، 0) ؛

display.print ("Stopwatch") ؛ display.drawLine (0، 18، 128، 18، WHITE) ؛ display.display () ،

}

الخطوة 4: En Finalment…

النهاية En …
النهاية En …

هذا كل شيء! اذهب الآن افعل ما تريد به. احسب وقتًا لبعض البيض ، أو سيطر على منطقتك.

في صحتك يا عروش

موصى به: