جدول المحتويات:
فيديو: الساعة الدقيقة: 3 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
نحتاج جميعًا إلى ساعات ، فلماذا لا تصنع ساعة خاصة بك في هذه التعليمات ، سأوضح لك كيفية إنشاء ساعة دقيقة بمجرد تعيينها ، سوف تتعقب تلقائيًا الوقت الحالي في خلفية كل شيء. بينما تحتاج أيضًا إلى القليل جدًا من الإمدادات ولحام صفري.
اللوازم
أولاً ، ستحتاج إلى 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: التخطيطي (هذه ليست حقًا خطوة)
إذا كان أي شخص يقرأ هذا هو الطالب الذي يذاكر كثيرا في مجال التكنولوجيا ، فهنا أيضًا تخطيطي يمكنك النظر إليه بالجنون.
استمتع واستمتع ، والأهم من ذلك كله ، ابق منتعشًا.
موصى به:
الساعة الثنائية الدقيقة: 10 خطوات (مع صور)
الساعة الثنائية الدقيقة: بعد أن قمت مسبقًا بإنشاء Instructable (Binary DVM) ، والتي تستخدم مساحة العرض المحدودة باستخدام ثنائي. كانت خطوة صغيرة فقط بعد أن قمت مسبقًا بإنشاء وحدة الكود الرئيسية للتحويل من عشري إلى ثنائي لإنشاء ساعة ثنائية ولكن t
قياس الجسيمات الدقيقة المحمولة (تمديد): 3 خطوات
قياس الجسيمات الدقيقة المحمولة (تمديد): الهدف: إضافة مستشعر ثاني أكسيد الكربون تحسين إمكانية قراءة البرنامج. فتح البرنامج لأنواع أخرى من أجهزة الاستشعار. هذا المشروع يتبع مشروع آخر تم نشره بالفعل. يجيب على الأسئلة التي طرحها القراء. جهاز استشعار إضافي
قياس الجسيمات الدقيقة المحمولة: 4 خطوات (بالصور)
قياس الجسيمات الدقيقة المحمولة: الهدف من هذا المشروع هو قياس جودة الهواء عن طريق قياس كمية الجسيمات الدقيقة. بفضل قابليتها للنقل ، سيكون من الممكن إجراء القياسات في المنزل أو أثناء التنقل. جودة الهواء والجسيمات الدقيقة: الجسيمات (
مبرمج صغير لوحدات التحكم الدقيقة ATTINY مع Arduino UNO: 7 خطوات
مبرمج صغير لـ ATTINY Microcontrollers مع Arduino UNO: من المثير للاهتمام حاليًا استخدام وحدات التحكم الدقيقة من سلسلة ATTINY نظرًا لتعدد استخداماتها وسعرها المنخفض ولكن أيضًا يمكن برمجتها بسهولة في بيئات مثل Arduino IDE. نقل بسهولة
متوسط التشغيل لمشاريع وحدة التحكم الدقيقة الخاصة بك: 6 خطوات
متوسط التشغيل لمشاريع وحدة التحكم الدقيقة الخاصة بك: سأشرح في هذا الدليل ما هو المتوسط الجاري ولماذا يجب أن تهتم به ، بالإضافة إلى توضيح كيفية تنفيذه لتحقيق أقصى قدر من الكفاءة الحسابية (لا تقلق بشأن التعقيد ، إنه كذلك سهل الفهم و