ساعة توقيت بسيطة وعملية من اردوينو: 4 خطوات
ساعة توقيت بسيطة وعملية من اردوينو: 4 خطوات
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 …

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

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

موصى به: