ساعة التوقيت (RTC) هي عبارة عن جهاز إلكتروني يستخدم لقياس الوقت بشكل دقيق ويحتفظ بتاريخ ووقت معينين بصورة مستمرة، حتى في حالة انقطاع التيار الكهربائي. هذا الجهاز يتكون عادة من مجموعة من الدوائر والمكونات التي تحتفظ بالوقت والتاريخ عبر مصدر طاقة صغير مدمج مثل البطارية.
ساعة التوقيت الحقيقية تكون مفيدة في تطبيقات مثل الساعات الذكية، وأنظمة التحكم في المنزل الذكي، والأجهزة التي تتطلب توقيت دقيق، مثل أنظمة التسجيل والتحكم في الإضاءة وأجهزة القياس الدقيقة.
الأردوينو والعديد من الأنظمة الإلكترونية يمكنها التفاعل مع RTC لقراءة الوقت والتاريخ بدقة، مما يسمح بإنشاء تطبيقات دقيقة تعتمد على الزمن بشكل كبير.
نعم، يمكن تشغيل ساعة إيقاف بواسطة الأردوينو. بإستخدام مكونات بسيطة مثل شاشة SSD1306 وزر تحكم ومكون، يمكنك برمجة الأردوينو لعرض الوقت والسماح للمستخدم بتشغيل وإيقاف ساعة التوقيت بالضغط على الزر.
ثم يمكنك استخدام شاشة SSD1306 لعرض الوقت وحالة عمل ساعة التوقيت، بينما يُمكن استخدام زر التحكم لتشغيل أو إيقاف ساعة التوقيت.
البرمجة الصحيحة والربط الصحيح للدوائر يمكن أن تمكنك من إنشاء ساعة إيقاف تعتمد على الأردوينو وتستجيب لأوامر المستخدم لتشغيل وإيقاف عد التنازل.
لتشغيل ساعة توقيت بواسطة الأردوينو، ستحتاج إلى عدة مكونات أساسية. إليك قائمة بالمكونات الأساسية التي ستحتاجها:
لوحة أردوينو :
لوحة الأردوينو هي لوحة إلكترونية تستخدم في تطوير الأجهزة الإلكترونية التفاعلية والمشاريع البرمجية. توفر الأردوينو بيئة برمجية واجهة سهلة للمبتدئين والمحترفين لتطوير الأجهزة والمشاريع المختلفة.
شاشة SSD1306:
شاشة لعرض الوقت ورسائل الإخطار والتحكم في عمل ساعة التوقيت.
زري تحكم (Push Buttons):
زر للتحكم في تشغيل وإيقاف ساعة التوقيت.
مقاومان :
المقاومة الكهربائية هي مكون أساسي في الدوائر الإلكترونية. تُستخدم المقاومات للسيطرة على تدفق التيار الكهربائي في إليك بعض الأغراض الشائعة لاستخدام المقاومات
أسلاك توصيل:
لتوصيل المكونات والحماية من التيار الزائد.
لوحة الاختبار:
اللوح ، المعروف أيضًا باسم اللوح ، هو مكون إلكتروني شائع الاستخدام لأداء النماذج الأولية السريعة والتجريب. يجعل من السهل توصيل المكونات الإلكترونية دون الحاجة إلى لحام.
لربط بطاقة الأردوينو مع شاشة SSD1306 وزري الضغط، تحتاج إلى توصيل كل من الشاشة والأزرار بالأردوينو وبرمجتها بشكل مناسب. إليك خطوات الربط ومثال بسيط لتشغيل الشاشة SSD1306 والتفاعل مع زري الضغط:
- قم بتوصيل طرف GND الخاص بشاشة SSD1306 بمنفذ GND الخاص بلوحة الأردوينو
- قم بتوصيل طرف VCC الخاص بشاشة SSD1306 بمنفذ 5 فولت الخاص بلوحة الأردوينو
- قم بتوصيل طرف SDA الخاص بشاشة SSD1306 بمنفذ A4 الخاص بلوحة الأردوينو
- قم بتوصيل طرف SCL الخاص بشاشة SSD1306 بمنفذ A5 الخاص بلوحة الأردوينو
- ضع مقاومة (10 كيلو أوم) بين أحد دبابيس زر الضغط ومنفذ GND الخاص بـ الأردوينو
-قم بتوصيل نفس دبوس زر الضغط بالمنفذ رقم 2 في لوحة الأردوينو
-قم بتوصيل دبوس ٱخر من زر الضغط بالمنفذ 5 فولت للوحة الأردوينو
- ضع مقاومة (10 كيلو أوم) بين أحد دبابيس زر الضغط ومنفذ GND الخاص بـ الأردوينو
-قم بتوصيل نفس دبوس زر الضغط بالمنفذ رقم 3 في لوحة الأردوينو
-قم بتوصيل دبوس ٱخر من زر الضغط بالمنفذ 5 فولت للوحة الأردوينو
لعمل ساعة إيقاف باستخدام الأردوينو، يمكنك استخدام البرمجة لتنفيذ عمليات التوقيت والتحكم بساعة التوقيت.
- حين نضغط على زر ضغط البداية، تقوم لوحة الأردوينو بتشغيل ساعة توقيت
- حين نضغط مرة أخرى على زر ضغط البداية، تقوم لوحة الأردوينو بإيقاف تشغيل ساعة توقيت
- حين نضغط على زر ضغط التوقف، تقوم لوحة الأردوينو بإيقاف تشغيل ساعة توقيت و الرجوع إلى البداية
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
#include <Adafruit_SSD1306.h> //OLED define #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); const int start_pause_pin = 2, resetpin = 3; String stopwatch = "stop", start_pause = "low"; long start_time = 0, seconds = 0; void setup() { Serial.begin(9600); pinMode(start_pause_pin, INPUT); pinMode(resetpin, INPUT); Serial.begin(9600); //For OLED I2C if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64 Serial.println(F("SSD1306 allocation failed")); for(;;); } display.display(); //Display logo delay(1000); display.clearDisplay(); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(0, 0); display.print("Hello!"); display.display(); delay(1000); display.setCursor(0, 20); display.print("Start"); display.setCursor(0, 40); display.print("chrono"); //display.print(""); display.display(); } void loop() { display.clearDisplay(); if (stopwatch == "run") { display.print(""); display.setCursor(0, 0); display.print("Chrono"); display.setCursor(0, 20); seconds = (millis() - start_time) / 1000; long centisecond = ((millis() - start_time) % 1000) % 100; // عرض ساعة الإيقاف على شاشة SSD1306 display.setCursor(0, 20); display.print(seconds); display.setCursor(20, 20); display.print(":"); display.setCursor(30, 20); display.print(centisecond); display.display(); Serial.println(start_time); Serial.println(millis()); } if (digitalRead(resetpin) == HIGH) { //Reset stopwatch stopwatch = "stop"; start_time = 0; display.setCursor(0, 0); display.print("Press"); display.setCursor(0, 20); display.print("Start"); display.display(); } if (digitalRead(start_pause_pin) == HIGH && stopwatch == "stop") { //Start stopwatch start_time = millis(); display.print(""); stopwatch = "run"; start_pause = "high"; } else if (digitalRead(start_pause_pin) == HIGH && stopwatch == "run" && start_pause == "low") { //Pause stopwatch stopwatch = "pause"; start_pause = "high"; } else if (digitalRead(start_pause_pin) == HIGH && stopwatch == "pause" && start_pause == "low") { //Resume stopwatch start_time = millis() - (seconds * 1000); stopwatch = "run"; start_pause = "high"; display.print(""); } else if (digitalRead(start_pause_pin) == LOW) { start_pause = "low"; } delay(10); } |
تشير الروبوتات التعليمية إلى استخدام الروبوتات وتكنولوجيا الروبوتات لتعزيز التعلم في بيئات التعليم. إنه ينطوي على دمج التكنولوجيا والهندسة وعلوم الحاسوب في الفصل الدراسي، مما يتيح للطلاب المشاركة في تجارب تعلم عملية وعملية.
في هذا السياق ، يمثل موقعنا الإلكتروني مصدرًا ممتازًا للآباء والمعلمين والأطفال الذين يرغبون في اكتشاف الروبوتات.
زاوية قنطش ـ جمال ـ المنستير ـ تونس
+216 92 886 231
medaliprof@gmail.com
هذا موقع واب تم إنشاؤه بواسطة محمد علي أستاذ إعلامية