Menu
CoddyTech
flag Ar iconالعربيةdown icon

مقياس ضوئي باستخدام Servo

جزء من قسم المخرجات في رحلة Arduino على Coddy. الدرس 24 من 24.

بوجود إبرة على ذراعه، يصبح محرك السيرفو مقياسًا، مثل عداد السرعة في السيارة. هنا، يوضّح مدى سطوع الضوء.

كما في ضوء الليل، يقرأ AO في الوحدة قيمة أقل عند زيادة سطوع الضوء: نحو 1023 في الظلام، وقريبة من 0 في الضوء الكامل. ينبغي أن تشير الإبرة إلى قيمة أعلى كلما زاد السطوع، لذا يجري التحويل بالعكس. كما في مقياس الضوء، أعطِ map() نطاقًا جديدًا معكوسًا:

int angle = map(reading, 0, 1023, 180, 0);

تصبح القراءة 0، أي الضوء الكامل، 180 درجة، وتصبح القراءة 1023، أي الظلام، 0. وتقع كل القيم بينهما في مواضع بينية، ولكن بالاتجاه المعاكس.

challenge icon

التحدي

متوسط

مستشعر الضوء موصول بـ A0 على A0، والمحرك المؤازر موصول بالمنفذ 9. اجعل الذراع مقياسًا للضوء:

  • في الظلام، وجّه الذراع إلى 0 درجة، وفي الضوء الكامل إلى 180
  • استخدم map() مع عكس النطاق الجديد
  • اطبع الزاوية، وانتظر 50 ms في كل مرة

اضغط على Run وحرّك منزلق الضوء على المستشعر، ثم اضغط على Check.

جرّب بنفسك

#include <Servo.h>

const int lightPin = A0;
Servo arm;

void setup() {
  arm.attach(9);
  Serial.begin(9600);
}

void loop() {
  // اقرأ شدة الضوء، وحوّلها عكسيًا إلى النطاق 180..0، وحرّك الذراع، واطبع الزاوية
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المخرجات

تدرّب بنفسك: Playground لـ Arduino