جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
في هذا الدرس ، سوف نستخدم محرك مؤازر ومقاوم ضوئي ومقاوم منسدل لتجميع نظام مصدر ضوء التتبع تلقائيًا.
الخطوة الأولى: المكونات:
- لوحة اردوينو أونو * 1
- كابل USB * 1
- محرك سيرفو * 1
- المقاوم الضوئي * 1
- المقاوم (10 كيلو) * 1
- اللوح * 1
- أسلاك توصيل
الخطوة 2: المبدأ
محرك سيرفو ومقاومة الضوء والبحث عن مصدر الضوء بزاوية 180 درجة وتسجيل موقع مصدر الضوء. بعد الانتهاء من المسح ، يتوقف محرك سيرفو والمقاوم الضوئي في اتجاه مصدر الضوء.
الخطوة الثالثة: الإجراءات:
الخطوة 1:
بناء الدائرة.
الخطوة 2:
قم بتنزيل الكود من
الخطوه 3:
قم بتحميل الرسم التخطيطي على لوحة Arduino Uno
انقر فوق أيقونة تحميل لتحميل الرمز إلى لوحة التحكم.
إذا ظهر "تم التحميل" أسفل النافذة ، فهذا يعني أنه تم تحميل الرسم التخطيطي بنجاح.
الآن ، إذا كنت تستخدم مصباحًا يدويًا لإضاءة المقاوم الضوئي ، فسترى محرك سيرفو والمقاوم الضوئي يدور ، ويتوقف أخيرًا عند اتجاه مصدر الضوء.
الخطوة 4: رسم تخطيطي
الخطوة 5: الكود
/********************************************************************
* اسم:
تتبع مصدر الضوء تلقائيًا
* وظيفة
: إذا كنت تستخدم مصباحًا يدويًا لإضاءة المقاوم الضوئي ،
* سوف ترى
محرك سيرفو والمقاوم الضوئي يدوران ،
* وأخيرا
توقف في اتجاه مصدر الضوء.
***********************************************************************
/ البريد الإلكتروني: [email protected]
// الموقع: www.primerobotics.in
#يشمل
const int photocellPin = A0 ؛
/************************************************/
Servo myservo؛ // إنشاء كائن مؤازر للتحكم في المؤازرة
int outputValue = 0 ؛
زاوية int = {0 ، 10 ، 20 ، 30 ، 40 ، 50 ، 60 ، 70 ، 80 ، 90 ،
100, 110, 120, 130, 140, 150, 160, 170, 180};
int maxVal = 0 ؛
int maxPos = 0 ؛
/*************************************************/
الإعداد باطل()
{
Serial.begin (9600) ؛
myservo.attach (9)؛ // يعلق المؤازرة على الدبوس 9 لكائن المؤازرة
}
/*************************************************/
حلقة فارغة()
{
لـ (int i = 0 ؛
أنا <19 ؛ أنا ++)
{
myservo.write (زاوية ) ؛ // اكتب الزاوية إلى المؤازرة
قيمة الانتاج
= analogRead (photocellPin) ؛ // اقرأ قيمة A0
Serial.println (outputValue) ؛ // اطبعها
if (outputValue> maxVal) // إذا كانت القيمة الحالية لـ A0 أكبر من السابقة
{
maxVal = outputValue ؛ // اكتب القيمة
ماكس
= أنا ؛ //
}
تأخير (200) ؛
}
myservo.write (زاوية [maxPos]) ؛ // اكتب الزاوية إلى المؤازرة التي لها A0 أكبر قيمة
بينما (1) ؛
}