في هذا الدرس سنتعلم صنع إضاءة للقراءة ويمكنك التحكم بسطوعها باستخدام الأردوينو و حساس اللمس، بحيث يتحكم الأردوينو بإرسال الأوامر عبر منافذ تعديل عرض النبضة (PWM)ليحدد درجة سطوع الضوء
المواد والأدوات
x1اردوينو
مجموعة أسلاك توصيل (ذكر / أنثى)
مجموعة أسلاك توصيل (ذكر/ذكر)
X1 سلك أردوينو
X1 لوحة التجارب
أكليريك 3*50*30
توصيل الدائرة
قم بتوصيل القطع الالكترونية (حساس اللمس و الليدات )مع الاردوينو كما هو موضح
البرمجة
ارفع الكود البرمجي الذي يساعدك في صنع إضاءة تتحكم بسطوعها
#define touch 4 int p=0; void setup() { pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(9, OUTPUT); } void loop() { int Value = digitalRead(touch); if (Value == HIGH) { p++; delay(200); } if(p==1){ analogWrite(3,255); analogWrite(5,255); analogWrite(6,255); analogWrite(9,255); if(p==2){ analogWrite(3,100); analogWrite(5,100); analogWrite(6,100); analogWrite(9,100); } if(p==3){ analogWrite(3,0); analogWrite(5,0); analogWrite(6,0); analogWrite(9,0);} p=0; } }
شرح الكود البرمجي
نعرف حساس اللمس باسم (touch )الموصل مع المنفذ الرقمي 4
#define touch 4
نعرف متغير بقيمة ابتدائية =0 يمثل عدد المرات التي يتم النقر على الحساس فيها
int p=0;
في دالة (void setup) نعرف المنافذ الرقمية المتصلة مع الليدات (3و5و6و9) على أنها مخارج
void setup() { pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(9, OUTPUT); }
في دالة (void loop) بدأ بتعريف متغير ()و الذي يمثل قراءة المنفذ رقم 4
void loop() { int Value = digitalRead(touch);
جملة شرطية في كل مرة يتم النقر على الحساس تزداد قيمة p بواحد يعني يحسب نقرة واحدة
if (Value == HIGH) { p++; delay(200); }
استخدمنا منافذ تعديل عرض النبضة الرقمية (PWM) للحصول على نتائج تناظرية ستتحكم في سطوع الإضاءة. تكون النتيجة كما لو كانت الإشارة عبارة عن جهد ثابت بين 0 و5 فولت يتحكم في سطوع الليدات، نمثل ذلك بالقيم من 0 – 255
النقرة الأولى تشغل الليدات على أعلى سطوع (255)
if(p==1){ analogWrite(3,255); analogWrite(5,255); analogWrite(6,255); analogWrite(9,255);}
النقرة الثانية يقل السطوع
if(p==2){ analogWrite(3,100); analogWrite(5,100); analogWrite(6,100); analogWrite(9,100); }
النقرة الثالثة يتم ايقاف تشغيل الليدات
if(p==3){ analogWrite(3,0); analogWrite(5,0); analogWrite(6,0); analogWrite(9,0);
و نعيد قيمة المتغير p إلى 0
p=0; } }
الهيكل
اعتمدنا في تصميم الهيكل على جزئين الأول تم طباعته بطابعة ثلاثية الأبعاد و هو الجزء الخاص بتثبيت الليدات عليه و الجزء الثاني بآلة التفريز و الذي يتكون من ذراع و غطاء الأردوينو يمكن تحميل ملفات الهيكل من خلال الرابط