2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
في هذه التعليمات ، سأقوم بعمل مشروع اردوينو بسيط للغاية وأساسي: كعكة عيد ميلاد!
يتم عرض كعكة عيد ميلاد على درع شاشة UTFT على اردوينو ويقوم مكبر الصوت بتشغيل موسيقى "عيد ميلاد سعيد".
عندما تنفخ في الميكروفون ، تنطفئ الشموع.
الخطوة 1: المواد
لهذا المشروع البسيط ، ستحتاج إلى:
- اردوينو ميجا
- مكبر صوت أو جرس
- وحدة ميكروفون
- درع اردوينو لشاشة UTFT
قررت استخدام لوحة arduino MEGA لهذا المشروع لسببين: يحتوي على الكثير من الذاكرة ويحتوي على الكثير من المسامير.
لا يمكنك استخدام arduino UNO لهذا المشروع ، لأنه عندما يتم توصيل شاشة UTFT بها ، يتم إخفاء جميع المسامير (لم يعد متاحًا للميكروفون ومكبر الصوت) ، ولا تحتوي على ذاكرة كافية (مكتبة UTFT هي كبير جدا).
الخطوة 2: الأسلاك
يتم توصيل السماعة بمسامير D40 و GND في اردوينو.
يتم توصيل الميكروفون بمسامير GND ("G") و 5 V ("+") و A10 ("A0").
يتم توصيل شاشة UTFT مثل الدرع العادي.
درع شاشة UTFT غير متوافق تمامًا مع Arduino MEGA: قابس USB للوحة اردوينو كبير جدًا
لإصلاح هذه المشكلة ، قمت بتوصيل شاشة UTFT بدرع اردوينو آخر (مع دبابيس أطول) ، ثم قمت بتوصيل كلاهما على اردوينو.
الخطوة 3: قم بمعايرة الميكروفون
لمعايرة الميكروفون ، ستحتاج إلى مفك براغي وجهاز الكمبيوتر الخاص بك.
أولاً ، قم بتحميل الكود التالي إلى اردوينو الخاص بك:
int val = 0 ؛
إعداد باطل () {Serial.begin (9600) ؛ } حلقة فارغة () {val = analogRead (10) ؛ Serial.println (فال) ؛ تأخير (100) ؛ }
ثم انتقل إلى الشاشة التسلسلية وقم بمعايرة الميكروفون عن طريق تدوير مقياس الجهد باستخدام مفك البراغي عندما لا يكون هناك صوت ، يجب أن تكون القيمة حوالي 30 ~ 40.
عند النفخ في الميكروفون ، يجب أن تكون القيمة أعلى من 100.
تأكد من أن القيمة أقل من 100 عندما تتحدث (حتى بصوت عالٍ).
الخطوة 4: الكود
ها هو كود المشروع.
يعرض كعكة عيد الميلاد مع الشموع على UTFT ويلعب "عيد ميلاد سعيد" مع السماعة. الكعكة مصنوعة من مستطيلات.
يتطلب هذا البرنامج مكتبة UTFT.
#يشمل
خارجي uint8_t BigFont ؛ // قم بتغيير هذه القيم وفقًا لطراز الشاشة UTFT myGLCD (ITDB28 ، A5 ، A4 ، A3 ، A2) ؛ اللحن الداخلي = {196، 196، 220، 196، 262، 247، 196، 196، 220، 196، 294، 262، 196، 196، 392، 330، 262، 247، 220، 349، 349، 330، 262 ، 294 ، 262} ؛ int noteDurations = {8 ، 8 ، 4 ، 4 ، 4 ، 2 ، 8 ، 8 ، 4 ، 4 ، 4 ، 2 ، 8 ، 8 ، 4 ، 4 ، 4 ، 4 ، 3 ، 8 ، 8 ، 4 ، 4 ، 4 ، 2} ؛ int val = 0 ؛ إعداد باطل () {myGLCD. InitLCD () ، myGLCD.setFont (BigFont) ، myGLCD.fillScr (20 ، 200 ، 150) ؛ // خلفية زرقاء myGLCD.setColor (200 ، 125 ، 50) ؛ // كعكة البني myGLCD.fillRect (100 ، 90 ، 220 ، 160) ؛ myGLCD.setColor (255 ، 255 ، 255) ؛ // الثلج الأبيض myGLCD.fillRect (100 ، 90 ، 220 ، 105) ؛ myGLCD.setColor (255 ، 50 ، 50) ؛ // الخطوط الحمراء myGLCD.fillRect (100 ، 120 ، 220 ، 123) ؛ myGLCD.fillRect (100 ، 140 ، 220 ، 143) ؛ myGLCD.setColor (255 ، 255 ، 0) ؛ // الخط الأصفر myGLCD.fillRect (100 ، 130 ، 220 ، 133) ؛ myGLCD.setColor (255 ، 170 ، 255) ؛ // الشموع الوردية myGLCD.fillRect (128 ، 70 ، 132 ، 90) ؛ myGLCD.fillRect (158 ، 70 ، 162 ، 90) ؛ myGLCD.fillRect (188 ، 70 ، 192 ، 90) ؛ myGLCD.setColor (255 ، 255 ، 0) ؛ // نار الشموع myGLCD.fillCircle (130، 62، 5) ؛ myGLCD.fillCircle (160، 62، 5) ؛ myGLCD.fillCircle (190 ، 62 ، 5) ؛ myGLCD.setColor (0، 255، 0) ؛ // رسالة عيد ميلاد سعيد myGLCD.print ("HAPPY BIRTHDAY!"، CENTER، 200) ؛ لـ (int thisNote = 0 ؛ thisNote 100) {myGLCD.setColor (20 ، 200 ، 150) ؛ // يطفئ الشموع myGLCD.fillCircle (130 ، 62 ، 5) ؛ myGLCD.fillCircle (160، 62، 5) ؛ myGLCD.fillCircle (190 ، 62 ، 5) ؛ myGLCD.setColor (255 ، 255 ، 255) ؛ // ويعرض رسالة "تهانينا" myGLCD.print ("مبروك !!!" ، سنتر ، 10) ؛ تأخير (10000) ؛ myGLCD.clrScr () ، // مسح الشاشة بعد 10 ثوانٍ}}