الدرس الثالث عشر: التبديل (Switch Case) وقراءة البيانات التسلسلية (Serial.read)
المقدمة
مرحبًا بكم في الدرس الثالث عشر من دورة Arduino على قناة TechLearnLab! في هذا الدرس، سنتعرف على كيفية استخدام عبارة التبديل (switch case) مع إدخال البيانات من المنفذ التسلسلي (Serial Port) باستخدام الدالة Serial.read()
. تُعد عبارة التبديل (switch case) أداة برمجية قوية تتيح لك اتخاذ قرارات بناءً على قيم متعددة، وهي مثالية للتعامل مع سيناريوهات مختلفة في الكود.
ما هو التبديل (Switch Case)؟
if-else
التي تتحقق من كل شرط على حدة، يقوم التبديل (switch case) بتقييم قيمة المتغير وينتقل مباشرة إلى الحالة المطابقة، مما يجعل الكود أكثر تنظيمًا وكفاءة عندما تكون لديك عدة احتمالات.قراءة البيانات التسلسلية وإدخال المستخدم
Serial.read()
لقراءة البيانات الواردة من المنفذ التسلسلي. يمكن استخدام هذه البيانات للتحكم في مختلف جوانب برنامج Arduino الخاص بك، بما في ذلك اتخاذ القرارات داخل هيكل التبديل (switch case).إعداد الأجهزة
الاتصال بالمنفذ التسلسلي (Serial Port): تأكد من توصيل Arduino بجهاز الكمبيوتر عبر كابل USB، مما يتيح لك قراءة البيانات من الشاشة التسلسلية (Serial Monitor). برمجة التبديل (Switch Case): سنقوم بإعداد برنامج على Arduino يستخدم التبديل (switch case) للاستجابة لإدخال المستخدم من الشاشة التسلسلية.
كتابة البرنامج الأول
قراءة البيانات التسلسلية: اكتب برنامجًا بسيطًا يقرأ الحروف أو الأرقام من الشاشة التسلسلية باستخدام Serial.read()
ويخزنها في متغير. تنفيذ الأوامر باستخدام التبديل (Switch Case): قم بإنشاء هيكل التبديل (switch case) الذي يستجيب بناءً على القيم التي يقرأها Arduino من المنفذ التسلسلي. كل حالة في التبديل ستقوم بتنفيذ وظيفة محددة، مثل تشغيل LED، إيقافه، أو تنفيذ إجراء آخر.
Serial.read()
ويخزنها في متغير.التطبيقات العملية
الدائرة
// Define LED pins int led1 = 2; int led2 = 3; int led3 = 4; int State = 0; // Variable to track the state of the LEDs void setup() { // Initialize LED pins as outputs pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); } void loop() { switch (State) { case 0: // Turn on LED1 and turn off LED2 and LED3 digitalWrite(led1, HIGH); digitalWrite(led2, LOW); digitalWrite(led3, LOW); break; case 1: // Turn on LED2 and turn off LED1 and LED3 digitalWrite(led1, LOW); digitalWrite(led2, HIGH); digitalWrite(led3, LOW); break; case 2: // Turn on LED3 and turn off LED1 and LED2 digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, HIGH); break; default: // Handle unexpected values of ledState // Turn off all LEDs as a safety measure digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); break; } // Move to the next LED state State++; // Reset to the first LED state after the last one if (State > 4) { State = 0; } // Wait for 1 second before changing the LED state delay(1000); }الكود
int led1 = 2; int led2 = 3; int led3 = 4; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); Serial.begin(9600); } void loop(){ if (Serial.available() > 0){ char recieved = Serial.read(); switch (recieved) { case '1': digitalWrite(led1,HIGH); digitalWrite(led2,LOW); digitalWrite(led3,LOW); break; case '2': digitalWrite(led1,LOW); digitalWrite(led2,HIGH); digitalWrite(led3,LOW); break; case '3': digitalWrite(led1,LOW); digitalWrite(led2,LOW); digitalWrite(led3,HIGH); break; default: digitalWrite(led1,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); break; } } }
استكشاف الأخطاء وإصلاحها
نصائح وأفضل الممارسات
التعامل مع الإدخال التسلسلي (Serial Input): تعلم كيفية كتابة كود مرن قادر على معالجة الأخطاء في الإدخال، مثل إدخال قيم غير صحيحة. تنظيم الكود باستخدام التبديل (Switch Case): اكتشف كيفية تنظيم برنامجك لجعله أكثر وضوحًا وسهولة في التعديل باستخدام هيكل التبديل (switch case).
توسيع مشاريعك
أهمية هذا الدرس
فهم كيفية استخدام عبارة التبديل (switch case) مع الإدخال التسلسلي (Serial Input) يمكّنك من إنشاء برامج Arduino أكثر تفاعلية وديناميكية. هذه الأدوات تتيح لك تطوير مشاريع تستجيب للأوامر بطرق متنوعة ومرنة.
الخاتمة
نحن متحمسون لرؤية كيف ستدمج التبديل (switch case) والإدخال التسلسلي (Serial Input) في مشاريعك. دعنا نبدأ ونجعل مشاريع Arduino الخاصة بك أكثر تطورًا وذكاءً!
تذكر، تعلم الأردوينو يتعلق بالاستكشاف والإبداع. لا تخف من التجربة والمحاولة. المهارات التي ستطورها هنا ستفتح لك عالمًا من الإمكانيات.
مرحبًا بك في TechLearnLab! دعنا نبدأ ونحول أفكارك إلى واقع باستخدام الأردوينو.
ا تترددوا في ترك آرائكم، أسئلتكم، أو اقتراحاتكم في التعليقات أدناه. لنواصل الحديث والتعلم والنمو معًا!