جدول المحتويات:

محرك متدرج يتم التحكم فيه بالضوء + حامل حائط / حامل: 6 خطوات
محرك متدرج يتم التحكم فيه بالضوء + حامل حائط / حامل: 6 خطوات

فيديو: محرك متدرج يتم التحكم فيه بالضوء + حامل حائط / حامل: 6 خطوات

فيديو: محرك متدرج يتم التحكم فيه بالضوء + حامل حائط / حامل: 6 خطوات
فيديو: اختراع 2023😱😱 2024, يوليو
Anonim
محرك متدرج يتم التحكم فيه بالضوء + حامل حائط / حامل
محرك متدرج يتم التحكم فيه بالضوء + حامل حائط / حامل

يستخدم هذا الحامل لإيواء محرك متدرج يتم التحكم فيه بواسطة Arduino ، وهو مصمم للتحكم تلقائيًا في الستارة وفقًا لمستوى الإضاءة في الغرفة. يمكنك أيضًا إضافة شاشة LCD لطباعة مستوى الضوء. العتاد ثلاثي الأبعاد مخصص للعرض فقط ، قد تكون هناك حاجة إلى معدات حقيقية للتطبيق العملي مثل الستارة وأي تطبيق آخر يمكنك التفكير فيه.

الخطوة 1: المكونات

لبدء هذا المشروع سوف تحتاج ؛

- مجموعتان من شرائح Arduino - واقي محرك Arduino - شاشة LCD Arduino - 1 لوحة توصيل - 1 محرك متدرج ثنائي القطب - بطارية 1 D - 1 مقاوم يعتمد على الضوء - 1 10k Ω المقاوم - 10 أسلاك ذكر ذكر - 6 ذكر - الأسلاك النسائية - الوصول إلى طابعة ثلاثية الأبعاد

الخطوة الثانية: بناء الأردوينو

بناء اردوينو
بناء اردوينو

اصطف أولاً درع المحرك مع دبابيس Arduino وبمجرد أن تصطف ، ضعه لأسفل بإحكام. بعد ذلك ، قم بتوصيل أسلاك محرك السائر بالدبابيس 8 و 9 و 10 و 11 من درع المحرك ، وبعد ذلك قم بتوصيل البطارية D في الفتحات كما هو موضح في الرسم التخطيطي ، وبعد ذلك سترغب في الحصول على 6 أسلاك (ذكر لأنثى) من أجل شاشة LCD وقم بتوصيلها بوحدة Arduino الأخرى كما هو موضح في الرسم التخطيطي للدائرة ، ثم قم بإعداد LDR كما هو موضح أعلاه ، مع توصيل المقاوم بالصف السالب ، وعند إضافة LDR ، على جانب المقاوم ، أضف توصيلات A0 وعلى الجانب الآخر ، أضف إدخال 1 5 فولت لكل لوحة تستخدمها ، لذلك إذا كنت تستخدم لوحين ، فستريد أن يكون لكل منهما دبوس 5V و A0 ينتقل إلى LDR.

قم بتوصيل جميع الأسلاك بحيث يكون هو نفسه الرسم التخطيطي - 2 مدخلات إلى LDR - 2 مخرجات من LDR ومقاوم متصل بالأرض - 8 أسلاك بشاشات الكريستال السائل ، 1 5 فولت ، 1 أرضي و 6 مداخل - 4 أسلاك متصلة بـ السائر - 2 توصيلات بالبطارية - يجب توصيل أرضية اللوح

الخطوة 3: ترميز Arduino

اردوينو الترميز
اردوينو الترميز

إليك بعض التعليمات البرمجية النموذجية لتغيير حالة الترس بناءً على LDR

هذا هو الرمز الذي سيسمح للمشروع بالتحكم تلقائيًا في الستارة. توضح الصورة أعلاه المسارات المختلفة من خلال عبارات IF المتداخلة من حيث صعود الستارة أو نزولها أو بقائها في مكانها. (انقر على الصورة لرؤيتها كاملة حيث توجد مشكلات في التنسيق)

# تعريف LDRA0 // يحدد متغير "LDR" إلى A0 pin # include// يشمل رمز محرك السائر

constintstepsPerRevolution = 200 ؛ // عندما يتم تنشيط محرك السائر ، فإن دورانه الكامل يساوي 200 خطوة

SteppermyStepper (stepsPerRevolution ، 8 ، 9 ، 10 ، 11) ؛ // يحدد الإدخال إلى السائر كدبابيس 8 ، 9 ، 10 ، 11

voidsetup () {myStepper.setSpeed (60)؛ // يحدد مدى سرعة عمل المحرك لـ rotationpinMode (LDR، INPUT) ؛ // يعرف المتغير "LDR" كمدخل Serial.begin (9600) ؛ // يبدأ قراءة تسلسلية }

voidloop () {intlightlevel = analogRead (LDR) ؛ // يحدد المتغير "lightlevel" كإجراء يقرأ قيمة "LDR" Serial.print ("Light Level:") ؛ Serial.println (lightlevel) ؛ // يطبع قيمة "lightlevel" مع التسمية التوضيحية أعلاه

/ * توجد الآن حلقة تكتشف مستوى الضوء في كل نقطة على الطريق * تتوفر 3 خيارات ، اصعد ، انزل ، ابق في نفس الموضع * تم تصميمه بحيث إذا ظل مستوى الضوء كما هو ، فسيظل البقاء كما هو ، إذا لم يكن كذلك ، فسوف يتغير * أي إذا كان 950 ، ثم انتقل إلى 952 ، فلن يحدث شيء ، ولكن إذا انتقل من 950 إلى 600 ، فسيتم سحب الستارة والعكس بالعكس * يتم الإشارة إلى كل خطوة بحرف أمام الخطوة لتتبع مكانه في الحلقة من خلال الشاشة التسلسلية * /

if (lightlevel> = 900) {Serial.println ("A")؛ // ما هي الخطوة الموجودة في loopmyStepper.step (3 * stepsPerRevolution) ؛ // يقوم السائر بثلاث دورات أمامية. إذا كان سالبًا ، فإنه يتأخر للخلف (30000) ؛ // يتركه هناك لمدة 5 دقائق intlightlevel = analogRead (LDR) ؛ // يحدد المتغير "lightlevel" على أنه أحدث قراءة من LDRSerial.print ("مستوى الضوء:") ؛ // يطبع النص أمام المتغير Serial.println (lightlevel) // يطبع قيمة مستوى الضوء

if (lightlevel> = 900) {Serial.println ("B")؛ myStepper.step (0)؛ delay (10000)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (المستوى الخفيف)؛

if (lightlevel> = 900) {Serial.println ("C")؛ myStepper.step (3 * -stepsPerRevolution)؛ delay (500)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel) ؛}

else {Serial.println ("D")؛ myStepper.step (3 * -stepsPerRevolution)؛ delay (10000)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel) ؛}}

else {Serial.println ("E")؛ myStepper.step (3 * -stepsPerRevolution)؛ delay (10000)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel) ؛

if (lightlevel> = 900) {Serial.println ("F")؛ myStepper.step (0)؛ delay (500)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (المستوى الخفيف)؛}

else {Serial.println ("G")؛ myStepper.step (0)؛ delay (10000)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel)؛}}

}

else {Serial.println ("H")؛ myStepper.step (0)؛ delay (10000)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel)؛

if (lightlevel> = 900) {Serial.println ("I")؛ myStepper.step (3 * stepsPerRevolution)؛ delay (10000)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel) ؛

if (lightlevel> = 900) {Serial.println ("J")؛ myStepper.step (3 * -stepsPerRevolution)؛ delay (500)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel) ؛}

else {Serial.println ("K")؛ myStepper.step (3 * -stepsPerRevolution)؛ delay (10000)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel) ؛

}}

آخر {Serial.println ("L")؛ myStepper.step (0)؛ delay (10000)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel)؛

if (lightlevel> = 900) {Serial.println ("M")؛ myStepper.step (0)؛ delay (500)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (المستوى الخفيف)؛}

آخر {Serial.println ("N")؛ myStepper.step (0)؛ delay (10000)؛ intlightlevel = analogRead (LDR)؛ Serial.print ("Light Level:")؛ Serial.println (lightlevel)؛

}}

}

}

الخطوة 4: اختياري: شاشة LCD

سيؤدي ذلك إلى طباعة مستوى الضوء الذي تم اكتشافه بواسطة LDR على شاشة LCD.

#يشمل

  • // يضيف مكتبة الكريستال السائل برمز إضافي # حدد ldr A0 // يحدد المتغير "ldr" للدبوس A0

    LiquidCrystal LCD (8 ، 9 ، 4 ، 5 ، 6 ، 7) ؛ // تهيئة المكتبة بأرقام دبابيس الواجهة

    voidsetup () {// الكود الذي يتم تشغيله مرة واحدة في startlcd.begin (16 ، 2) ؛ // قم بإعداد عدد أعمدة وخطوط شاشة LCD على التوالي // يعرّف ldr كمدخل إدخال pinSerial.begin (9600) ؛ // يبدأ الاتصال بجهاز العرض التسلسلي

    }

    voidloop () {// الكود الذي سيتكرر بشكل مستمرSerial.println (analogRead (ldr)) ؛ // يطبع القراءة التي يلتقطها ldr (رقم بين 0-1023) على الشاشة التسلسليةlcd.setCursor (6 ، 0) ؛ // اضبط المؤشر على العمود 6 ، السطر 0lcd.print (analogRead (ldr)) ؛ // يطبع هذه القراءة على شاشة LCD screendelay (1000) ؛ // يؤخر الأمر التالي لمدة ثانية واحدة

    }

    الخطوة 5: الأجزاء المطبوعة

    استخدم الملفات التالية لطباعة الحامل والعتاد. يمكنك تخصيص الترس لأغراضك الخاصة ويمكنك استخدام الحامل لتثبيته على الحائط أو كشاشة عرض. نظرًا لأن الترس ثلاثي الأبعاد ضعيف ، يمكن استخدام ترس حقيقي كبديل له طالما أنه يتطابق مع الستارة التي يتحكم فيها.

    إذا كان سيتم استخدام العتاد المطبوع ثلاثي الأبعاد ، فقد تمت إزالة أحد أسنان الترس بحيث يمكن لبرغي التثبيت تثبيته بالمحرك.

    يمكن أيضًا إزالة الأرجل الأمامية من حامل الحائط إذا كان سيتم تثبيته على الحائط. تمت إضافتهم فقط حتى يتمكنوا من الوقوف أثناء اختبارنا لها.

    الخطوة 6: التنسيب

    الآن وقد أصبحت جميع الأجزاء جاهزة ، فقد حان الوقت لبدء التنسيب النهائي.

    أولاً ، ضع محرك السائر في الصندوق المتوفر على الحامل وضع الترس على المحور ، ثم حرك الأسلاك بحيث تسير خلف الحامل أخيرًا ، ضع اردوينو والبطارية خلف الحامل

    يجب أن يبدو لوحك الآن مثل الذي في الصورة أعلاه.

    تهانينا!

    يمكن استخدام الترس للستائر الآلية أو أي شيء آخر تريد التحكم فيه بواسطة LDR.

    انتهيت. استمتع بإبداعك الجديد.

موصى به: