جدول المحتويات:
- الخطوة 1: تعليمات التوصيل
- الخطوة 2:
- الخطوه 3:
- الخطوة الرابعة:
- الخطوة الخامسة:
- الخطوة السادسة:
- الخطوة السابعة:
- الخطوة الثامنة:
- الخطوة 9: تعليمات البرمجة
- الخطوة 10:
- الخطوة 11:
- الخطوة 12:
- الخطوة 13:
- الخطوة 14:
فيديو: مشروع ساعة منبه اردوينو: 14 خطوة
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
في هذا المشروع ، سنستخدم Arduino Uno للتحكم في شاشة LCD لإظهار الوقت والوقت الحاليين اللذين تم ضبط المنبه عليهما. سنستخدم الأزرار لضبط كل مرة.
المواد:
- اردوينو أونو -
- اللوح -
- أسلاك العبور (x13 +) -
- مقاومات 10 kohm (x4) -
- شاشة LCD -
- 7 أزرار -
- مكبر صوت بيزو -
الخطوة 1: تعليمات التوصيل
1. قم بتوصيل سلك توصيل من دبوس 5 فولت في Arduino بأحد قضبان + على لوح التجارب.
الخطوة 2:
2. قم بتوصيل سلك توصيل من دبوس GND الموجود في Arduino إلى السكة - بجانب السكة + التي اخترتها على لوح التجارب.
الخطوه 3:
3. قم بتوصيل شاشة LCD بالطاقة ، والأرضي ، ودبوس TX (دبوس 1).
الخطوة الرابعة:
4. ضع 7 أزرار على لوح التجارب مع وضع الأرجل عبر الفجوة في لوح التجارب.
الخطوة الخامسة:
5. ضع مقاومات 10 kohm من السكة - مع توصيل دبوس GND بها في المسامير السفلية اليسرى للأزرار.
الخطوة السادسة:
6. ضع أسلاك العبور بين الدبوس الأيمن السفلي للأزرار وسكة 5 فولت على لوح التجارب.
الخطوة السابعة:
7. ضع أسلاك العبور بين الأطراف 6 ، ثم 8-13 ، والدبوس الموجود على الزر الذي يتصل به المقاوم.
الخطوة الثامنة:
8. بعد ذلك ، ضع مكبر الصوت Piezo على لوحة التجارب وقم بتوصيل السن 7 بمسمار الطاقة ، ثم المقاوم 100 أوم بالأرض.
الخطوة 9: تعليمات البرمجة
1. نظرة عامة: سيطلب هذا المشروع من المستخدم ضبط الوقت الحالي على الطاقة الأولية على الشاشة ، الوقت الحالي ووقت ضبط المنبه. سيتم استخدام الأزرار المتصلة أعلاه لضبط كل مرة. من اليسار إلى اليمين ، يتم ضبط الساعة الحالية ، وتعيين الدقيقة الحالية ، وضبط AM أو PM الحالي ، وتعيين ساعة التنبيه ، وتعيين دقيقة التنبيه ، وتعيين المنبه صباحًا أو مساءً. يستخدم الزر الأخير لكتم صوت المنبه عندما يصدر صوتًا.
الخطوة 10:
2. أول شيء يتعين علينا القيام به هو تهيئة المتغير الذي سنستخدمه.
// تهيئة المتغيرات لاستخدامها في الساعة = 0 ؛ // ساعة للوقت الحالي int دقيقة = 0 ؛ //
دقيقة للوقت الحالي int ثانية = 0 ؛ // الثانية للوقت الحالي
int hour_a = 0 ؛ int // ساعة لوقت التنبيه
minutes_a = 0 ؛ // دقيقة لوقت التنبيه
منطقي am_pm = خطأ ؛ // علامة تبديل AM / PM. خطأ هو AM ، صحيح هو PM
منطقي am_pm_a = خطأ ؛ // AM / PM تبديل العلم للتنبيه. خطأ هو AM ، صحيح هو PM
عدد int set_hr = 13 ؛ // استخدم الدبوس 13 لضبط الساعة
int set_min = 12 ؛ // استخدم الدبوس 12 لضبط دقيقة int
set_am_pm = 11 ؛ // استخدم الدبوس 11 لضبط صباحًا / مساءً
int set_hr_a = 10 ؛ // استخدم دبوس 10 لضبط ساعة للتنبيه int set_min_a = 9 ؛ // استخدم الدبوس 9 لضبط دقيقة للتنبيه int set_am_pm_a = 8 ؛ // استخدم الدبوس 8 لضبط صباحًا / مساءً للتنبيه
مكبر الصوت int = 7 ؛ // Pin للاستخدام لـ Speakerint quiet = 6 ؛ // تثبيت لإيقاف السماعة
إنذار منطقي = خطأ ؛ // علامة للتبديل للاستمرار في الانزعاج
هدوء منطقي = خطأ ؛ // علامة تظهر الهدوء لم يتم الضغط عليها
int cur_time = 0 ؛ // متغير للوقت الحالي
int etime = 0 ؛ // متغير للوقت المنقضي
الخطوة 11:
3. بعد ذلك ، نحتاج إلى إعداد شاشة LCD وإخبار المستخدم بضبط الوقت الحالي. نظرًا لأن هذا يلزم إجراؤه مرة واحدة فقط ، فسنقوم به في روتين الإعداد.
الإعداد باطل() {
// إعداد شاشة LCD
Serial.begin (9600) ؛ // تهيئة المسلسل عند 9600 باود
Serial.write (17) ؛ // قم بتشغيل الضوء الخلفي
Serial.write (24) ؛ // قم بتشغيل الشاشة ، باستخدام المؤشر وعدم الوميض
Serial.write (12) ؛ // مسح الشاشة
Serial.write (128) ؛ // حرك المؤشر إلى أعلى الزاوية اليسرى // تعيين pinModes pinMode (set_hr ،
إدخال)؛ pinMode (set_min ، INPUT) ؛
pinMode (set_am_pm ، INPUT) ؛
pinMode (set_hr_a ، INPUT) ؛
pinMode (set_min_a ، INPUT) ؛
pinMode (set_am_pm_a ، INPUT) ؛
pinMode (مكبر الصوت ، الإخراج) ؛
pinMode (هادئ ، INPUT) ؛
// عند التشغيل الأولي ، اطلب من المستخدم ضبط الوقت الحالي. Serial.print ("ضبط الوقت الحالي") ؛ تأخير (2000) ؛
Serial.write (12) ؛
printTimes () ،
cur_time = ميلي () ؛ // خزن الوقت الحالي}
الخطوة 12:
4. بعد ذلك ، في روتين الحلقة ، نتتبع الوقت ونقرأ حالة الزر لمعرفة ما إذا كان المستخدم قد قام بتعيين أي من الأوقات.
حلقة فارغة() {
// احتفظ بالوقت
keepTime () ،
// تحقق لمعرفة ما إذا كان وقت التنبيه قد حان!
إذا ((الساعة == ساعة_أ && دقيقة == دقيقة_أ &&! صامت) || منبه) {نغمة (مكبر صوت ، 2000 ، 500) ؛ // إخراج صوت 2000 هرتز إلى السماعة لمدة 500 مللي ثانية
تأخير (500) ؛ // Delay 500 ms if (! alarm) {// إذا كان المنبه مغلقًا ، فقم بتشغيله
}
}
// إذا كتم المستخدم المنبه بالضغط على الزر "صامت" ، فتوقف عن الإنذار إذا (المنبه &&! صامت && قراءة رقمية (صامت)) {
إنذار = خطأ ؛
صامت = صحيح ؛ }
// إعادة ضبط المنبه إذا (! alarm && quieted && minutes! = minutes_a) {quieted = false؛
}
// تحقق لمعرفة ما إذا كانت دبابيس المجموعة عالية ، وإذا كان الأمر كذلك ، قم بزيادة القيمة المقابلة (digitalRead (set_hr) && hour <12) {
ساعة ++ ؛
printTimes () ،
debounce () ؛
}
وإلا إذا (digitalRead (set_hr) && hour == 12) {hour = 1؛
printTimes () ،
debounce () ؛
}
آخر{}
if (digitalRead (set_min) && minutes <59) {
دقيقة ++ ؛ printTimes () ؛
debounce () ؛
}
وإلا إذا (digitalRead (set_min) && minutes == 59) {minutes = 0 ؛
printTimes () ،
debounce () ؛
}
else {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = خطأ ،
printTimes () ،
debounce () ؛
}
وإلا إذا (digitalRead (set_am_pm) &&! am_pm) {am_pm = true؛ printTimes ()؛
debounce () ؛
}
else {} if (digitalRead (set_hr_a) && hour_a <12) {
ساعة_أ ++ ؛
printTimes () ،
debounce () ؛
}
وإلا إذا (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1؛
printTimes () ،
debounce () ؛
}
else {} if (digitalRead (set_min_a) && minutes_a <59) {
دقيقة_أ ++ ؛
printTimes () ،
debounce () ؛
}
وإلا إذا (digitalRead (set_min) && minutes_a == 59) {minutes_a = 0 ؛
printTimes () ،
debounce () ؛
}
else {} if (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = خطأ ،
printTimes () ،
debounce () ؛
}
وإلا إذا (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = صحيح ؛
printTimes () ،
debounce () ؛
}
آخر{}
}
الخطوة 13:
5. هنا ، ستلاحظ اثنين من الإجراءات الفرعية التي قمت بإنشائها - debounce () و printTimes (). يُستخدم Debounce () للتأكد من أننا نقرأ الأزرار مرة واحدة فقط. نظرًا لأن Arduino يمسح آلاف المرات في الثانية ، فقد يعتقد أن الزر تم الضغط عليه عدة مرات عندما كنت تنوي قراءته مرة واحدة فقط. سيؤدي Debounce () إلى تجميد البرنامج حتى يتم تحرير الزر. تقوم printTimes () بتحديث شاشة LCD ، ولكن نظرًا لأن ذلك كان عبارة عن عدة أوامر ، فقد قمت بكتابتها مرة واحدة وبعد ذلك يمكنني استدعاء الإجراء الفرعي في أي وقت تتغير فيه القيمة الزمنية.
// أثناء الضغط على أي من الأزرار ، ابق في هذه الوظيفة ثم قم بتأخير 250 مللي ثانية.
تراجع باطل () {
while (digitalRead (set_hr) || digitalRead (set_min) ||
قراءة رقمية (set_am_pm) || قراءة رقمية (set_hr_a) ||
قراءة رقمية (set_min_a) || digitalRead (set_am_pm_a)) {} تأخير (250) ؛
}
// يطبع الأوقات المحدثة إذا كان هناك أي تغييرات
printTimes باطلة () {
Serial.write (12) ؛
Serial.print ("الوقت الحالي:") ؛
Serial.write (148) ؛
إذا (ساعة <10) {
Serial.print ("0") ؛
}
Serial.print (ساعة) ؛
Serial.print (":") ؛
إذا (دقيقة <10) {
Serial.print ("0") ؛
}
Serial.print (دقيقة) ؛ Serial.print (":") ؛
إذا (الثانية <10) {
Serial.print ("0") ؛
}
Serial.print (الثاني) ؛
إذا (ص) {
Serial.print ("PM") ؛
}
آخر{
Serial.print ("AM") ؛
}
Serial.write (168) ؛
Serial.print ("ضبط المنبه لـ:") ؛
Serial.write (188) ؛
إذا (hour_a <10) {
Serial.print ("0") ؛
}
Serial.print (hour_a) ؛
Serial.print (":") ؛
إذا (minutes_a <10) {
Serial.print ("0") ؛
}
Serial.print (minutes_a) ؛
إذا (am_pm_a) {
Serial.print ("PM") ؛
}
آخر{
Serial.print ("AM") ؛
}
}
// زيادة باطلة معلمات الوقت
keepTime () {
etime = ميلي () - cur_time ؛
إذا (الوقت> = 1000 && ثانية <59) {
الثانية ++ ؛
cur_time = مللي () ؛
printTimes () ،
}
وإلا إذا (etime> = 1000 && second == 59 && minutes <59) {second = 0 ؛
دقيقة ++ ؛
cur_time = مللي () ؛
printTimes () ،
}
else if (etime> = 1000 && second == 59 && minutes == 59 && hour <12) {
الثانية = 0 ؛ دقيقة =
0 ؛ ساعة ++ ؛ cur_time =
ميلي () ؛ printTimes () ،
}
وإلا إذا (الوقت> = 1000 && ثانية == 59 && دقيقة == 59 && ساعة == 12) {
الثانية = 0 ؛ دقيقة =
0 ؛ ساعة = 1 ؛ am_pm =
!صباحا مساءا؛
cur_time = ميلي () ؛
printTimes () ،
}
آخر{}
}
الخطوة 14:
6. هذا كل شيء!
قم بالتجميع والتحميل ، وقد انتهيت من كل شيء!
موصى به:
ساعة منبه ذكية: ساعة منبه ذكية مصنوعة من Raspberry Pi: 10 خطوات (مع صور)
المنبه الذكي: ساعة منبه ذكية مصنوعة من Raspberry Pi: هل سبق لك أن أردت ساعة ذكية؟ إذا كان الأمر كذلك ، فهذا هو الحل المناسب لك! لقد صنعت Smart Alarm Clock ، هذه ساعة يمكنك تغيير وقت التنبيه وفقًا لموقع الويب. عندما يرن المنبه ، سيصدر صوت (صفارة) وسيصدر مصباحان
ساعة منبه مع اردوينو: 13 خطوة (مع صور)
صفعة المنبه مع Arduino: لا أعرف عنك ، لكن المنبه البسيط غير قادر على إيقاظي. أحتاج إلى ضوء وصوت وحتى صفعة خفيفة حتى أستيقظ. لا يوجد منبه يروق لي ، لذلك قررت أن أجعل نفسي واحدًا يستحق إيقاظي ، على الرغم من أنه يبدو أنه المنبه أنا
ساعة منبه ثنائية تعتمد على اردوينو: 13 خطوة (مع صور)
المنبه الثنائي القائم على Arduino: مرحبًا ، أود اليوم أن أوضح لك كيفية إنشاء أحد أحدث مشاريعي ، وهو المنبه الثنائي. هناك الكثير من الساعات الثنائية المختلفة على الإنترنت ، ولكن قد تكون هذه في الواقع هي الأولى ، المصنوعة من شريط من مصابيح LED الملونة القابلة للعنونة ،
أرخص اردوينو -- أصغر اردوينو -- اردوينو برو ميني -- البرمجة -- اردوينو نينو: 6 خطوات (مع صور)
أرخص اردوينو || أصغر اردوينو || اردوينو برو ميني || البرمجة || اردوينو نينو: …………………………. الرجاء الاشتراك في قناتي على يوتيوب لمزيد من مقاطع الفيديو ……. يدور هذا المشروع حول كيفية التعامل مع أصغر وأرخص اردوينو على الإطلاق. أصغر وأرخص اردوينو هو اردوينو برو ميني. إنه مشابه لاردوينو
ساعة منبه بإضاءة ليد مع منبه أغنية قابل للتخصيص: 7 خطوات (مع صور)
منبه LED لشروق الشمس مع منبه الأغاني القابل للتخصيص: حافزي هذا الشتاء واجهت صديقتي الكثير من المتاعب عند الاستيقاظ في الصباح ويبدو أنها تعاني من SAD (الاضطراب العاطفي الموسمي). حتى أنني لاحظت مدى صعوبة الاستيقاظ في الشتاء لأن الشمس لم تأت