جدول المحتويات:
- اللوازم
- الخطوة 1: افحص ما حصلت عليه
- الخطوة 2: بعض اللحام
- الخطوة 3: التوصيلات
- الخطوة 4: البرامج الخفيفة
- الخطوة 5: الكود
- الخطوة 6: حول PWM
فيديو: جسر شمعة الخفقان: 6 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
يوضح هذا الدليل كيفية تحويل جسر شمعة بسيط مع ضوء ثابت إلى ضوء مزاج متوهج لطيف مع اختلافات لا حصر لها من الأضواء المتلألئة ، المتلألئة ، أنماط الموجة وما إلى ذلك. اشتريت من After Christmas Sales جسر شمعة مقابل 8 يورو. يحتوي على 7 مصابيح LED وبعض محول الحائط 33 V 3 W. يضيء بلون أبيض ساطع ودافئ وسيكون مثاليًا لهذا المشروع ، حيث سأضع Arduino لجعل الشموع تومض. الأردوينو الأكثر شهرة هو Arduino Uno. في هذا المشروع ، سأستخدم Arduino Mega 2560.
سأقوم بالتخلي عن مصدر الطاقة 30 فولت وسأستخدم بنك طاقة 5 فولت بسيط مخصص للهواتف المحمولة كمصدر للطاقة.
الشيء الجيد الذي يجب معرفته عن بنوك الطاقة هو أن لديهم دائرة داخلية ، والتي تحول البطارية 3.7 فولت إلى 5 فولت. لأن العملية تستخدم بعض الطاقة ، يغلق بنك الطاقة نفسه ، إذا لم يتم استخدامه. إذا تم استخدام بنك الطاقة لأدوات DIY القائمة على Arduino ، فلا يمكن للأداة الذكية وضع نفسها في وضع السكون الموفر للطاقة والبدء مرة أخرى بعد بضع دقائق. سيؤدي ذلك إلى إغلاق بنك الطاقة. جسر الشمعة الوامض هذا ليس لديه وضع السكون. إنها تستخدم الطاقة باستمرار ، مما يحافظ على نشاط بنك الطاقة ، حتى يتم سحب كابل الطاقة.
يُظهر الفيديو جسر الشمعة في الوضع الثابت وفي وميض كامل. الوميض الكامل أمر مزعج حقًا للعيون ، في حين أن الفيديو يخففها قليلاً. بعد إصلاح الجهاز ، بما في ذلك قطع الكابلات ولحام الوصلات الجديدة وإضافة بعض المكونات ، يتم إنشاء جميع أنماط الإضاءة المطلوبة عن طريق كتابة رمز لـ Arduino. الأنماط التي أدرجها في هذا الدليل هي:
- 4 أضواء وامضة مختلفة تقلد الشموع الحقيقية
- 2 وميض مختلف (وميض عشوائي للأضواء الثابتة خلاف ذلك)
- 2 أنماط موجة مختلفة
- ضوء ثابت بسيط
يحدث تبديل الأنماط من خلال زر ضغط ، وهو عنصر واجهة المستخدم الفردي. كلما زاد عدد الأنماط التي يريدها المرء وزادت قابلية التعديل التي يريدها المرء ، زاد عدد الأزرار والمقابض التي يجب على المرء إضافتها. لكن الجمال يكمن في البساطة. احتفظ بعدد الأنماط القابلة للتحديد لأسفل. اختر أفضل الإعدادات أثناء الترميز والاختبار ، وليس عن طريق إضافة الكثير من عناصر التحكم إلى الأجهزة.
اللوازم
- 1 جسر شمعة LED مع 7 لمبات. تأكد من أنه نموذج تيار مستمر منخفض الجهد ، إما مع بطاريات أو مع مصدر طاقة مثبت على الحائط ، والذي يحول التيار المتردد 110-240 فولت إلى حوالي 6 - 30 فولت تيار مستمر. لذلك من الآمن تمامًا اختراق جسر الشمعة.
- 1 Arduino Mega (أي متحكم آخر سيفعل ذلك ، فقط تأكد من أنه يمكنك برمجته)
- 1 النماذج الأولية اللوح
- أسلاك التوصيل والأسلاك الأخرى
- أداة لحام
- المقياس المتعدد
- 7 مقاومات ، 120 Ω
- زر ضغط واحد (سأوضح كيف يمكنك استخدام الزر المدمج في Arduino بدلاً من ذلك)
- ترانزستور دارلينجتون IC لـ 7 ترانزستورات ، ULN2803AP سيفي بالغرض (إذا كنت تستخدم Arduino Uno أو Meaga ، فأنت لست بحاجة إلى هذا حقًا)
- بنك طاقة بجهد 5 فولت مخصص للهواتف المحمولة
الخطوة 1: افحص ما حصلت عليه
تعرف على الجهد الذي يعمل به كل LED ومقدار التدفق الحالي.
- افتح الجزء السفلي من جسر الشمعة. أوجد السلكين اللذين ينتقلان إلى شمعة واحدة.
- قم بفصل بعض العزل من الكابلات التي تكشف عن الأسلاك النحاسية دون قطع الأسلاك النحاسية.
- قم بتشغيل الأضواء (استرخِ ، إنها فقط بضع فولتات) وقياس الجهد على الأسلاك النحاسية المكشوفة.
- قم بقطع الكبل في إحدى نقاط القياس (في هذه المرحلة تنطفئ الأضواء بالطبع) ، قم بفصل بعض العزل (3-4 مم) عند كلا الطرفين. قياس التيار الذي يمر. ما تفعله هو إعادة توصيل الكبل المقطوع بالمقياس المتعدد الخاص بك ، والسماح لكل التيار بالتدفق عبر جهاز القياس المتعدد ، والذي يخبرك الآن بمقدار التيار.
قراءاتي
الجهد على شمعة واحدة (الخطوة 3): 3.1 فولت
لاحظ أن مصدر الطاقة لجسر الشمعة كان 33 فولت ، لذا سبع مرات 3.1 فولت تساوي 21.7 فولت فقط في بعض الشموع يجب أن يكون هناك مقاومة إضافية. لو قمت بقياس جهد الشمعة هذا ، فلا بد أنه كان يجب أن يكون حوالي 11 فولت.
التيار المتدفق من خلاله عندما أضواء الشموع (الخطوة 4): 19 مللي أمبير
سأقوم بتشغيل كل شيء باستخدام حزمة بطارية 5 فولت 2 أمبير. بالنسبة للشموع ، أحتاج إلى خفض الجهد من 5 فولت إلى 3 فولت. أحتاج إلى مقاوم ، والذي سيخفض الجهد 2 فولت عند تيار 19 مللي أمبير.
2 فولت / 0.019 أمبير = 105 أوم
تبديد القوة هو:
2 فولت * 19 مللي أمبير = 38 ميجاوات
هذا لا يكاد يذكر. المزيد يمكن أن يفجر المقاوم نفسه. ومع ذلك ، بدون المقاوم 105 قد أفجر الصمام. لدي مقاومات 100 و 120. أذهب بـ 120. يعطي المزيد من الحماية.
أعطى اختبار جميع الشموع السبعة مع 3 فولت ضوءًا ساطعًا ، باستثناء شمعة واحدة ، والتي لم يكن لها سوى ضوء خافت للغاية ، مع مرور 0.8 مللي أمبير فقط. كانت هذه شمعتي مع المقاوم الإضافي. اتضح أن الشموع الأخرى ليس بها مقاومات على الإطلاق. مصابيح LED المستخدمة في الثريا مصممة ببساطة لـ 3 فولت! كان لابد من فتح الشمعة ذات المقاوم الإضافي باستخدام عنف خفيف ، لكن لم ينكسر شيء. تم العثور على المقاوم أسفل مصباح LED الصغير داخل لمبة الشمعة البلاستيكية. اضطررت إلى إزالته بعيدًا وإعادة تشكيل الأسلاك. لقد كان فوضويًا بعض الشيء ، لأن مكواة اللحام قامت بتسخين بعض الغراء الساخن ، والذي تم استخدامه للتجميع.
أعلم الآن أنه مهما كان مصدر الطاقة الذي أستخدمه ، مهما كان الجهد ، يجب أن أخفض الجهد إلى 3 فولت للسماح لـ 19 مللي أمبير بالمرور.
إذا كنت أكثر دراية بتقنية LED ، لكنت قد تعرفت على نوع LED المستخدم وكنت أعرف أنه بحاجة إلى 3 فولت.
الخطوة 2: بعض اللحام
في هذه الخطوة ، أقوم بتوصيل جميع الأسلاك الموجبة (+) من الشموع الخمسة بسلك واحد. ثم أقوم بإضافة سلك سالب منفصل (-) لكل شمعة. لا يضيء ضوء LED إلا عندما يسير حرف "+" و "-" يمينًا. نظرًا لأن لديك طرفي كبل متطابق من كل شمعة ، عليك اختبار أيهما "+" وأيهما "-". لهذا تحتاج إلى مصدر طاقة 3 فولت. كان لدي حزمة بطارية صغيرة بما في ذلك بطاريتين AAA. تعمل بطارية العملات المعدنية 3 فولت بشكل رائع للاختبار أيضًا.
يحتاج جسر الشمعة إلى 8 كبلات للتشغيل بين Arduino والجسر. إذا وجدت كبلًا به 8 أسلاك معزولة ، فسيكون ذلك رائعًا. يجب أن يحمل سلك واحد 120 مللي أمبير ، والباقي يحمل 20 مللي أمبير فقط على الأكثر. اخترت استخدام 4 كبلات سلكية مزدوجة ، وهو ما حدث لي.
تُظهر الصورة الأولى كيف أعددت سلكًا مشتركًا واحدًا لتوصيل جميع الأسلاك "+" من الشموع. قم بفصل بعض العزل من السلك المشترك لكل شمعة. أضف قطعة من أنبوب العزل المنكمش (الشريط الأصفر في الصورة) لكل مفصل وضعه في المكان الصحيح للكابل المشترك. قم بلحام السلك '+' من كل شمعة إلى مفصلها ، وقم بتغطية المفصل بأنبوب الانكماش وقم بتقليصه. بالطبع ، الشريط اللاصق البسيط جيد أيضًا ، سيتم تغطية كل شيء في النهاية.
تُظهر الصورة الثانية الأسلاك "-" التي تحتاجها كل شمعة. ينتقل السلك "+" الشائع مباشرةً إلى دبوس 5 V في Arduino (أو ربما من خلال اللوح). يذهب كل سلك "-" إلى الدبوس الخاص به في الترانزستور IC (مرة أخرى ، ربما من خلال اللوح).
غالبًا ما يطلق على Arduino لوحة النماذج الأولية. اللوح هو أيضًا شيء تستخدمه في النماذج الأولية. ما أصفه في هذا الدليل هو نموذج أولي. لن أقوم بتطويره إلى منتج لامع فاخر مع إخفاء كل شيء في علب بلاستيكية لطيفة. إن نقله من النموذج الأولي إلى المستوى التالي يعني استبدال اللوح بلوحة دائرة مطبوعة ومكونات ملحومة وحتى استبدال Arduino بشريحة متحكم بسيطة (في الواقع هذه الشريحة هي دماغ Arduino). ويكون كل شيء مناسبًا في علبة بلاستيكية أو داخل جسر الشمعة المخترق.
الخطوة 3: التوصيلات
حول Arduinos ، مأخوذ من هذه الصفحة:
- إجمالي التيار الأقصى لكل طرف إدخال / إخراج: 40 مللي أمبير
- مجموع التيارات من جميع دبابيس الإدخال / الإخراج مجتمعة: 200mA
تسحب شموعي 19 مللي أمبير لكل منها ، عند تشغيلها ب 3 فولت. هناك سبعة منها ، مما ينتج 133 مللي أمبير. لذلك يمكنني تشغيلها مباشرة من دبابيس الإخراج. ومع ذلك ، لدي بعض قطع غيار دارلينجتون الترانزستور المرحلية. لذلك فكرت ، لم لا. تقوم دائرتي بعمل الشيء بالطريقة الصحيحة: دبابيس البيانات مخصصة للإشارات فقط وليس للطاقة. بدلاً من ذلك ، أستخدم دبوس 5 V على Arduino لتشغيل مصابيح LED. عند تشغيل الاختبار ، قمت بتوصيل الكمبيوتر المحمول بـ Arduino. يتم تشغيل كل شيء من الكمبيوتر المحمول USB ، والذي يعطي 5 فولت. يحتوي Arduino Mega على فتيل خاص به ، والذي ينفخ بسرعة 500 مللي أمبير لحماية الكمبيوتر. شموعي تسحب 133 مللي أمبير على الأكثر. ربما يكون Arduino أقل من ذلك بكثير. كل شيء يعمل بشكل جيد ، عند تشغيله بواسطة الكمبيوتر المحمول ، لذا فإن استخدام حزمة بطارية 5 فولت متصلة بمنفذ USB في Arduino يعد أمرًا جيدًا.
تذهب دبابيس البيانات D3 - D9 إلى IC ULN2803APGCN. تعمل مصابيح LED على 3 فولت. كل مصباح متصل بمصدر 5 فولت بالإضافة إلى المقاوم 120 أوم. علاوة على قناة واحدة من الدائرة المتكاملة ، والتي تربط الدائرة في النهاية بالأرض من خلال ترانزستور دارلينجتون في الدائرة المتكاملة.
يتم إضافة زر ضغط إلى الدائرة لتمكين بعض إجراءات المستخدم. وبالتالي يمكن أن يحتوي جسر الشمعة على عدد قليل من البرامج التي يختارها المستخدم.
زر الضغط في الدائرة متصل بـ RESET و GND. هذا هو بالضبط ما يفعله زر إعادة الضبط الداخلي. نظرًا لأنني لا أقوم بتغليف كل شيء في علبة بلاستيكية ، فأنا أستخدم زر إعادة الضبط في Arduino للتحكم في البرنامج. ستعمل إضافة زر وفقًا للصورة تمامًا مثل زر إعادة تعيين اللوحة. يعمل البرنامج من خلال تذكر البرنامج الخفيف الذي تم استخدامه في المرة الأخيرة التي تم فيها تشغيل البرنامج. وبالتالي ، ستتقدم كل إعادة تعيين إلى برنامج الضوء التالي.
تُظهر الصور كيف تخرج الكابلات الجديدة من الجسر ، وكيف وضعت ترانزستور IC والمقاومات على اللوح وكيف تتصل أسلاك العبور بـ Arduino Mega. لقد قطعت 4 أسلاك توصيل من الذكور إلى الذكور إلى 8 أسلاك نصفية ، والتي قمت بلحامها بالكابلات الثمانية الخارجة من جسر الشمعة. بهذه الطريقة يمكنني فقط لصق الكابلات في اللوح.
بديل بدون ترانزستورات
في الخطوة السابقة ، قمت بإعداد سلك "+" مشترك للشموع وأسلاك "-" منفصلة ، والتي تمر عبر IC الترانزستور إلى الأرض. عندما يرتفع دبوس البيانات ، يتم تأريض السلك "-" المقابل من خلال الترانزستور ومصابيح LED.
إن توصيل الأسلاك "-" مباشرة بدبابيس البيانات في Arduino سيعمل أيضًا ، ولكن عليك دائمًا الانتباه إلى مقدار التيار الذي يمكن أن تتحمله دبابيس البيانات! هذا النهج سيحتاج إلى تغيير في برنامجي. ستحتاج إلى أن تنخفض دبابيس البيانات لتشغيل الشموع. لاستخدام برنامجي كما هو ، تحتاج إلى التبديل بين "+" و "-" في الشمعتين. احصل على سلك "-" مشترك للشموع ، والذي يذهب إلى GND على Arduino. وتعمل الأسلاك المنفصلة بين السلك "+" للشمعة ودبوس البيانات في Arduino.
الخطوة 4: البرامج الخفيفة
يمر برنامجي ، الذي أقدمه في الخطوة التالية ، من خلال 9 برامج ضوئية. سيؤدي الضغط على الزر إلى تعتيم الأضواء لمدة ثانية ، ثم يبدأ برنامج الإضاءة التالي. البرامج كالتالي:
- وميض قوي. تومض الشموع بشكل عشوائي. يبدو هذا مزعجًا للغاية عندما تحدق بهم من مسافة قريبة ، ولكن قد يبدو جيدًا من مسافة بعيدة وربما خلف نافذة العلية الفاترة. رغم ذلك ، قد يتصل جارك بفرقة الإطفاء.
- الخفقان الناعم. يبدو جيدا جدا. مثل الشموع الحقيقية في غرفة بدون تيار هواء.
- وميض متنوع. تتناوب الشموع بسلاسة بين الخفقان القوي والناعم في حوالي 30 ثانية.
- وميض متنوع. مثل # 3 ، لكن كل شمعة تختلف في وتيرتها الخاصة بين 30 ثانية و 60 ثانية.
- وميض سريع. تتألق الشموع على مستوى خافت ثابت وتومض بشكل عشوائي. في المتوسط هناك وميض واحد كل ثانية.
- وميض بطيء. مثل # 5 ، ولكن بمعدل أبطأ بكثير.
- موجة سريعة من الشمعة في منتصف القمة إلى الشمعة السفلية.
- موجة بطيئة من الشمعة الوسطى إلى السفلية.
- ضوء ساطع ثابت. اضطررت إلى تضمين هذا ، لا أريد التخلص من الوظيفة الأصلية.
الخطوة 5: الكود
/*
FLICKERING CANDLE BRIDGE * / // قم بتعريف متغير الوضع للاحتفاظ بالحالة // من خلال عملية إعادة تعيين _attribute _ ((section (". noinit"))) وضع int غير موقعة ؛ // عندما يبدأ البرنامج بعد إعادة التعيين ، لا تتم تهيئة // هذه القطعة من الذاكرة ، ولكنها تحتفظ بالقيمة // التي كانت عليها قبل إعادة التعيين. في المرة الأولى التي يتم فيها تشغيل // البرنامج ، يكون له قيمة عشوائية. / * * تحتوي فئة الشمعة على كل ما يلزم * لحساب مستوى الضوء * لشمعة وامضة. * / شمعة فئة {private: long maxtime؛ طويل النعناع طويل maxlite مينلايت طويل متوسط طويل أصل طويل أصل طويل اوريغماكسلايت طويل اوريجينلايت طويل أصل طويل طويل deltamaxtime. دلتامين طويل دلتاماكسلايت طويل دلتامينلايت طويل دلتامينلايت طويل طويل lforate حتى طويلة بداية طويلة هدف طويل عوامة عوامة وقت طويل وقت بدء طويل دلتا طويلة newtarget باطل (باطل) ؛ هدف واحد طويل (باطل) ؛ الجمهور: شمعة (بساط طويل ، طويل ميت ، طويل مال ، طويل ميل ، ميل طويل ، طويل eo) ؛ مستوى طويل الآن (باطل) ؛ initlfo باطلة (دلتا طويلة ، دلتا طويلة ، دلتا طويلة ، دلتا طويلة ، دلتا طويلة ، معدل طويل) ؛ setlfo باطلة (باطلة) ؛ } ؛ الشمعة:: الشمعة (حصيرة طويلة ، طويلة ميتة ، طويلة ميل ، ميل طويل ، ميل طويل ، طويل يو): ماكس تايم (حصيرة) ، مينتيم (ميت) ، ماكسلايت (مال) ، مينلايت (ميل) ، مينلايت (ميل) ، متساوي (eo) ، Origmaxtime (mat) ، Origmintime (mit) ، Origmaxlite (mal) ، Origminlite (mil) ، origmeanlite (mel) {target = meanlite ؛ هدف جديد()؛ } / * * levelnow () يعيد مستوى الضوء الذي يجب أن تتمتع به الشمعة الآن. * تهتم الوظيفة بتحديد مستوى ضوء عشوائي جديد و * الوقت الذي يجب أن تستغرقه للوصول إلى هذا المستوى. التغيير ليس خطيًا ، * ولكنه يتبع منحنى سيني. عندما لا يحن الوقت لتحديد مستوى * جديد ، تقوم الوظيفة ببساطة بإرجاع مستوى الضوء. * / شمعة طويلة:: levelnow (void) {long help، now؛ تعويم t1 ، t2 ؛ الآن = ميلي () ؛ if (now> = targettime) {help = target؛ هدف جديد()؛ عودة المساعدة } else {// help = target * (millis () - starttime) / deltatime + start * (targettime - millis ()) / deltatime؛ t1 = float (targettime - now) / deltatime ؛ t2 = 1. - t1 ؛ // هذه هي مساعدة الحساب السيني = t1 * t1 * t1 * start + t1 * t1 * t2 * start * 3 + t1 * t2 * t2 * target * 3 + t2 * t2 * t2 * target ؛ عودة المساعدة }} void candle:: newtarget (void) {long sum؛ المجموع = 0 ؛ لـ (long i = 0 ؛ i <evenout ؛ i ++) sum + = onetarget () ؛ البداية = الهدف ؛ الهدف = المبلغ / التعادل ؛ وقت البدء = مللي () ؛ targettime = وقت البدء + عشوائي (وقت قصير ، أقصى وقت) ؛ deltatime = targettime - وقت البدء ؛ } شمعة طويلة:: onetarget (باطل) {if (random (0، 10) lastcheck + 100) {lastcheck = now؛ / * * الهدف من وميض "بعد معدل ميلي ثانية": * بدء الفحص بعد المعدل / 2 مللي ثانية * خلال فترة معدل / 2 مللي ثانية ، اجعل * فرصة وميض 50٪. * إذا كان المعدل 10000 مللي ثانية ، خلال 5000 مللي ثانية ، * تم قلب العملة 50 مرة. * 1/50 = 0.02 * إذا كان وقت البدء عشوائيًا (10000) + معدل / 2) {إذا كان (معدل) وقت التشغيل العشوائي) إرجاع lowlite ؛ العودة (البداية - lowlite) * (الوقت المستهدف - الآن) / (الوقت المحدد - وقت البدء) + lowlite ؛ } وميض باطل:: twink (باطل) {starttime = millis ()؛ targettime = عشوائي (مينتيمي ، أقصى وقت) + وقت البدء ؛ البدء = عشوائي (minlite ، maxlite) ؛ } إعداد باطل () {int led؛ // اقرأ متغير الوضع السحري ، والذي يجب أن يخبر // ما هو البرنامج الخفيف الذي تم تشغيله في المرة الأخيرة ، وزيادته // وإعادة تعيينه إلى الصفر في حالة الفائض. الوضع ++ ؛ الوضع٪ = 9 ؛ // هذا يهتم مهما كانت القيمة // كانت المرة الأولى التي قام فيها Arduino // بتشغيل هذا البرنامج. / * * ملاحظة مهمة * ============== * * الشيء الأساسي الذي يقوم به هذا البرنامج هو إخراج إشارات PWM * إلى مصابيح LED. هنا قمت بتعيين المسامير من 3 إلى 9 على * وضع الإخراج. على Arduino Mega2560 ، تخرج هذه المسامير * إشارات PWM بشكل جيد. إذا كان لديك Arduino آخر ، فتحقق من * أي دبابيس (وكم) يمكنك استخدامها. يمكنك دائمًا * إعادة كتابة الكود لاستخدام برنامج PWM ، إذا كان Arduino الخاص بك لا يوفر دبابيس PWM كافية للأجهزة. * * / pinMode (3 ، الإخراج) ؛ pinMode (4 ، الإخراج) ؛ pinMode (5 ، الإخراج) ؛ pinMode (6 ، الإخراج) ؛ pinMode (7 ، الإخراج) ؛ pinMode (8 ، الإخراج) ؛ pinMode (9 ، الإخراج) ؛ pinMode (LED_BUILTIN ، الإخراج) ؛ analogWrite (LED_BUILTIN ، 0) ؛ // فقط قم بإيقاف تشغيل المصباح الأحمر المزعج الموجود على شمعة Arduino * can [7] ؛ // الاستعداد لاستخدام الشموع الوامضة ، سواء كنت تستخدمها أم لا وميض * طرفة عين [7] ؛ // الاستعداد لاستخدام الشموع المتلألئة … if (mode == 8) {for (int i = 3؛ i <10؛ i ++) analogWrite (i، 255)؛ احيانا صحيح)؛ // في كل مرة يتم تشغيل هذا البرنامج ، ينتقل إلى // هذا النوع من الحلقة اللانهائية ، حتى يتم الضغط على زر إعادة الضبط //. } إذا (الوضع <2) // flickering {long maxtime_؛ طويل النعناع_ ؛ طويل maxlite_ ؛ مينلايت طويل _ ؛ متوسط طويل _ ؛ حتى طويلة _ ؛ إذا (الوضع == 0) {maxtime_ = 250 ؛ مينتايم_ = 50 ؛ maxlite_ = 256 ؛ مينلايت_ = 0 ؛ meanlite_ = 128 ؛ حتى_ = 1 ؛ } إذا (الوضع == 1) {maxtime_ = 400 ؛ مينتيمي = 150 ؛ maxlite_ = 256 ؛ مينلايت_ = 100 ؛ meanlite_ = 200 ؛ حتى_ = 1 ؛ } لـ (int i = 0؛ i <7؛ i ++) {can = شمعة جديدة (maxtime_، mintime_، maxlite_، minlite_، meanlite_، even_)؛ } while (true) // الحلقة اللانهائية لشموع الخفقان {for (int i = 0؛ i levelnow ())؛ }} إذا تمت إضافة (mode <4) // lfo إلى الخفقان {if (mode == 2) // نفس lfo (30 s) لجميع الشموع {for (int i = 0؛ i initlfo (75، 50، 0 ، 50، 36، 30000)؛}} إذا (الوضع == 3) // متغير lfo: s للشموع {لـ (int i = 0؛ i initlfo (75، 50، 0، 50، 36، 20000) ؛ can [1] -> initlfo (75، 50، 0، 50، 36، 25000) ؛ يمكن [2] -> initlfo (75، 50، 0، 50، 36، 30000) ؛ يمكن [3] -> initlfo (75، 50، 0، 50، 36، 35000) ؛ يمكن [4] -> initlfo (75، 40، 0، 50، 36، 40000) ؛ يمكن [5] -> initlfo (75، 30، 0، 50، 26 ، 45000) ؛ يمكن [6] -> initlfo (75، 20، 0، 50، 16، 50000) ؛ يمكن [7] -> initlfo (75، 10، 0، 50، 6، 55000) ؛} بينما (صحيح) // الحلقة اللانهائية للشموع الوامضة ذات lfo {long lastclock = 0؛ for (int i = 0؛ i levelnow ())؛ if (millis ()> lastclock + 4000) {lastclock = millis () ؛ من أجل (int i = 0؛ i setlfo ()؛}}} إذا (الوضع <6) // الشموع المتلألئة {int speedo؛ if (mode == 4) speedo = 6000؛ وإلا speedo = 22000؛ for (int i = 0 ؛ i <7؛ i ++) twink = twinkler الجديد (300، 295، 255، 250، speedo) ؛ بينما (صحيح) {لـ (int i = 0 ؛ i levelnow ()) ؛ } } // أمواج. // يبدأ هذا القسم بأقواس متعرجة فقط // لضمان عدم وجود أسماء متغيرات متضاربة. // لا حاجة أخرى للأقواس ، لا حاجة لفحص // قيمة الوضع.{int lolite = 2 ؛ هيليت كثافة العمليات = 255 ؛ يعني int كثافة العمليات تعويم fasedelta = 2.5 ؛ تعويم الجرة استطالة int عوامة عوامة فترة طويلة يعني = (لوليت + هيليت) / 2 ؛ السعة = هيليت - يعني ؛ إذا (الوضع == 6) الفترة = 1500 ؛ فترة أخرى = 3500 ؛ فاكتور = 6.28318530718 / فترة ؛ while (true) {fase = phactor * (millis ()٪ period) ؛ طول = متوسط + مكبر * خطيئة (مزورة) ؛ analogWrite (7 ، طول) ؛ analogWrite (9 ، elong) ؛ fase = phactor * ((millis () + period / 4)٪ period) ؛ طول = متوسط + مكبر * خطيئة (مزورة) ؛ analogWrite (3 ، elong) ؛ analogWrite (8، elong) ؛ fase = phactor * ((millis () + period / 2)٪ period) ؛ طول = متوسط + مكبر * خطيئة (مزورة) ؛ analogWrite (4 ، elong) ؛ analogWrite (5 ، استطالة) ؛ fase = phactor * ((millis () + 3 * period / 4)٪ period) ؛ طول = متوسط + مكبر * خطيئة (مزورة) ؛ analogWrite (6، elong) ؛ } // أثناء توصيل أسلاك الشمعة بـ Arduino ، // قمت بخلطها ولم أحصل عليها بالترتيب مطلقًا. // الترتيب مهم لإنشاء أنماط موجية ، // لذلك كتبت للتو هذا الجدول الصغير لي: // // شمعة # في الجسر: 2 3 5 4 7 6 1 // دبوس البيانات على Arduino: 3 4 5 6 7 8 9}} حلقة فارغة () {// نظرًا لأن كل برنامج ضوئي هو حلقة لانهائية خاصة به ، // لقد كتبت جميع الحلقات في قسم start () // ولم أترك شيئًا لهذه الحلقة (). }
الخطوة 6: حول PWM
تتألق المصابيح عند تشغيلها بقوة 3 فولت. باستخدام 1.5 فولت فقط ، لا تضيء على الإطلاق. لا تتلاشى مصابيح LED بشكل جيد مع تلاشي الجهد ، كما تفعل المصابيح المتوهجة. بدلاً من ذلك ، يجب تشغيلها بجهد كامل ، ثم إيقاف تشغيلها. عندما يحدث هذا 50 مرة في الثانية ، فإنها تتألق بشكل جيد مع سطوع 50٪ ، أكثر أو أقل. إذا تم السماح لهم بالبقاء على بعد 5 مللي ثانية فقط وإيقاف 15 مللي ثانية ، فقد يتألقون بنسبة سطوع 25٪. هذه التقنية هي التي تجعل ضوء LED قابل للتعتيم. هذه التقنية تسمى تعديل عرض النبضة أو PWM. عادة ما يحتوي المتحكم الدقيق مثل Arduino على دبابيس بيانات ، والتي يمكنها إرسال إشارات التشغيل / الإيقاف. بعض دبابيس البيانات لديها قدرات مدمجة لـ PWM. ولكن إذا لم يكن هناك ما يكفي من الدبابيس مع PWM المضمنة ، فمن الممكن عادة استخدام مكتبات برمجة مخصصة لإنشاء "دبابيس PWM للبرامج".
في مشروعي ، استخدمت Arduino Mega2560 ، الذي يحتوي على أجهزة PWM على المسامير 3 - 9. إذا كنت تستخدم Arduino UNO ، فلديك ستة دبابيس PWM فقط. في هذه الحالة ، إذا كنت بحاجة إلى شمعة سابعة (أو حتى أكثر) ، يمكنني أن أوصي بمكتبة برنامج Brett Hagman's PWM ، والتي يمكنك العثور عليها هنا.
موصى به:
شمعة كهربائية تعمل بالشموع: 8 خطوات (بالصور)
شمعة كهربائية تعمل بالشموع: بعد الاطلاع على تقارير إخبارية عن إعصار ساندي وسماع المحنة التي مرت بها جميع أفراد عائلتي وأصدقائي في نيويورك ونيوجيرسي ، جعلني أفكر في استعداداتي للطوارئ. سان فرانسيسكو - بعد كل شيء - تجلس على قمة بعض
WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة): 9 خطوات (بالصور)
جسر WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة): التحديث الرابع من ديسمبر 2017 - رسومات Feather nRF52 المنقحة ونصائح تصحيح الأخطاء. تمت إضافة صور للجسر المُثبت في الصندوق.يوفر هذا المشروع البسيط وصول WiFi إلى أي وحدة Bluetooth منخفضة الطاقة (BLE) تنفذ Nordic's UART مع TX Notify. ذ
ملصق شعار أبل الخفقان: 3 خطوات (بالصور)
ملصق شعار Apple الخفقان: تضيف هذه الأداة الصغيرة "Sleeping Mac throb" إلى ملصق شعار Apple العادي. جاءت فكرة ذلك عند المرور على متجر Apple Store في بالو ألتو ، كاليفورنيا في وقت متأخر من إحدى الليالي. بعد ساعات ، عندما يكون المتجر "نائمًا" ، الشعارات المضيئة
برنامج تشغيل LED اليقطين الخفقان العالي الحالي: 3 خطوات
برنامج تشغيل LED اليقطين الخفقان ذو التيار العالي: استخدم مصباح الشاي LED لتشغيل مصابيح LED عالية التيار وهي بسيطة وسهلة الصنع. من الصعب جدًا تصميم الدائرة التي تنتج تأثيرًا حقيقيًا حقيقيًا لشعلة الشمعة. كنت أرغب في ابتكار طريقة بسيطة وسريعة للقيادة إلى مستوى أعلى
ضوء الخفقان / التلاشي / اللمعان LED مع مؤقت 555: 7 خطوات
الخفقان / التلاشي / اللمعان LED مع 555 Timer: هذه الدائرة الصغيرة هي طريقة بسيطة لعمل مؤشر ضوئي يتلاشى دون الحاجة إلى برمجة شرائح أو كتابة كود. مجرد عدد قليل من المكونات البسيطة وأنت على استعداد للتلاشي طوال اليوم. والنتيجة النهائية هي تلاشي وتلاشي مستمر تمامًا مثل جهاز Mac في وضع الاستعداد. محاولة