الموقت هو نوع من الساعات المستخدمة لقياس الفترات الزمنية. هناك نوعان من المؤقت ، أحدهما يعد تصاعديًا من الصفر ، لقياس الوقت المنقضي ، ويسمى ساعة الإيقاف. والثاني يعد تنازليًا من مدة زمنية محددة يوفرها المستخدم ، تسمى عمومًا بمؤقت العد التنازلي.
هنا ، في هذا البرنامج التعليمي سوف نوضح لك كيفية عمل مؤقت للعد التنازلي باستخدام Arduino. نحن هنا لا نستخدم أي وحدة نمطية لساعة الوقت الحقيقي (RTC) للحصول على الوقت. يتم توفير المدة الزمنية من قبل المستخدم بمساعدة لوحة المفاتيح وشاشة LCD مقاس 16 × 2. وعندما يصل المؤقت إلى الصفر ، سيتم إصدار صوت تنبيه بمساعدة Buzzer.
المواد المطلوبة
- اردوينو UNO
- شاشة LCD 16 * 2
- لوحة مفاتيح مصفوفة 4 * 4
- صفارة
- اضغط الزر
- مقياس الجهد (10 كيلو)
- المقاوم (10 كيلو ، 100 أوم)
- توصيل الأسلاك
مخطط دائرة مؤقت العد التنازلي اردوينو
يتم استخدام Arduino Uno هنا كوحدة تحكم رئيسية. يتم استخدام لوحة المفاتيح لتغذية المدة الزمنية ويتم استخدام شاشة LCD مقاس 16 * 2 لعرض العد التنازلي. يُستخدم زر الضغط لبدء الوقت. تحقق هنا من كيفية توصيل لوحة مفاتيح 4x4 مع Arduino وشاشة 16x2 LCD مع Arduino.
كود العد التنازلي اردوينو وشرحها
يتم تقديم كود Arduino Timer الكامل في نهاية هذا المشروع.
في هذا الرمز أدناه ، نقوم بتهيئة مكتبات لوحة المفاتيح وشاشات الكريستال السائل والمتغيرات المستخدمة في الكود.
#تضمن
الآن ، في الكود أدناه نقوم بتهيئة no. من الصفوف والأعمدة لتعريف مصفوفة لوحة المفاتيح.
البايت الثابت ROWS = 4 ؛ // أربعة صفوف const بايت COLS = 4 ؛ // ثلاثة أعمدة من مفاتيح الأحرف = {{'1'، '2'، '3'، 'A'}، {'4'، '5'، '6'، 'B'}، {'7'، ' 8 '،' 9 '،' C '}، {' * '،' 0 '،' # '،' D '}}؛
لتوصيل لوحة مفاتيح المصفوفة 4 * 4 بـ Arduino ، يتعين علينا تحديد دبابيس الصفوف والأعمدة. لذلك في الكود أدناه ، حددنا دبابيس لوحة المفاتيح بالإضافة إلى شاشة LCD مقاس 16 × 2.
بايت rowPins = {6، 7، 8، 9}؛ // قم بتوصيل لوحة المفاتيح ROW0 و ROW1 و ROW2 و ROW3 بهذه البايتات من دبابيس Arduino colPins = {10، 11، 12، 13}؛ // توصيل لوحة المفاتيح COL0 و COL1 و COL2 إلى شاشة LiquidCrystal LCD (A0 ، A1 ، 5 ، 4 ، 3 ، 2) ؛ // ينشئ كائن LC. المعلمات: (rs، enable، d4، d5، d6، d7)
يستخدم الكود أدناه لصنع لوحة المفاتيح ،
Keypad kpd = لوحة المفاتيح (makeKeymap (مفاتيح) ، rowPins ، colPins ، ROWS ، COLS) ؛
في رمز وظيفة setFeedingTime () الباطل ، بعد الضغط على زر الضغط ، يمكننا إدخال وقت المؤقت ، ثم بعد إدخال مدة الوقت ، يتعين علينا الضغط على D لبدء العد التنازلي.
setFeedingTime () باطلة {feed = true؛ كثافة العمليات أنا = 0 ؛ lcd.clear () ؛ lcd.setCursor (0،0) ؛ lcd.print ("ضبط وقت التغذية") ؛ lcd.clear () ؛ lcd.print ("HH: MM: SS") ؛ lcd.setCursor (0،1) ؛ بينما (1) {key = kpd.getKey () ؛ شار ي if (key! = NO_KEY) {lcd.setCursor (j، 1)؛ lcd.print (مفتاح) ؛ ص = مفتاح 48 ؛ أنا ++ ؛ ي ++ ؛ إذا (j == 2 - j == 5) {lcd.print (":") ؛ ي ++ ؛ } تأخير (500)؛ } إذا (key == 'D') {key = 0 ؛ استراحة؛ }} lcd.clear ()؛ }
في وظيفة الإعداد الفارغ () ، قمنا بتهيئة شاشة LCD والاتصال التسلسلي ، وحددنا المسامير على أنها INPUT و OUTPUT في الكود أدناه.
إعداد باطل () {lcd.begin (16،2) ؛ Serial.begin (9600) ؛ pinMode (A0 ، الإخراج) ؛ pinMode (A1 ، الإخراج) ؛ pinMode (A3 ، الإدخال) ؛ pinMode (A4 ، الإخراج) ؛ }
العمل في Arduino Countdown Timer بسيط ولكن الكود معقد بعض الشيء. يتم شرح الكود من خلال التعليقات في الكود.
في البداية ، سيطبع "Arduino Timer" على شاشة LCD حتى تضغط على زر الضغط. بمجرد الضغط على الزر ، سيطلب إدخال مدة العد التنازلي عن طريق استدعاء وظيفة " setFeedingTime ". ثم يمكنك إدخال المدة الزمنية بمساعدة لوحة المفاتيح. ثم تحتاج إلى الضغط على "D" لتوفير الوقت وبدء موقت العد التنازلي. هنا في وظيفة الحلقة الفارغة () ، قمنا ببعض العمليات الحسابية لتقليل الوقت ثانية بثانية ولإظهار القيم المناسبة للساعة والدقائق والثواني (HH: MM: SS) وفقًا للوقت المتبقي. يتم شرح جميع الشفرات بشكل جيد من خلال التعليقات. يمكنك التحقق من الكود الكامل وفيديو العرض أدناه.
عندما يصل المؤقت إلى الصفر ، يبدأ الجرس في إصدار صفير وإصدار صوت صفير 100 مرة فقط (وفقًا للرمز). لإيقاف الجرس ، اضغط مع الاستمرار على الزر الانضغاطي. يمكنك استخدام زر الضغط في أي وقت لإيقاف المؤقت بين العد.