🌞 ماموریت ۹۶: ردیاب خورشید

دو LDR با مقاومت ۱۰k روی A0 و A1. اختلافشان را حساب کن و سروو را یک درجه به سمت روشن‌تر بچرخون (با یه حاشیه‌ی بی‌حسی).

سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد

هدف‌ها

قطعه‌های لازم

▶ همین ماموریت را در شبیه‌ساز امتحان کن
💡 گیر کردی؟ داخل شبیه‌ساز راهنما را ببین، و اگر باز هم نشد دکمه‌ی «برام حلش کن» مدار را برایت می‌چیند تا ببینی چطور کار می‌کند.

جواب کامل

اول خودت امتحان کن! بعد جواب را ببین 👀

سیم‌کشی

  1. Arduino Uno (VCC5) ⟷ Photoresistor (LDR) (A)
  2. Photoresistor (LDR) (B) ⟷ Arduino Uno (A0)
  3. Arduino Uno (A0) ⟷ مقاومت 220Ω (PIN1)
  4. مقاومت 220Ω (PIN2) ⟷ Arduino Uno (GND1)
  5. Arduino Uno (VCC5) ⟷ Photoresistor (LDR) (A)
  6. Photoresistor (LDR) (B) ⟷ Arduino Uno (A1)
  7. Arduino Uno (A1) ⟷ مقاومت 220Ω (PIN1)
  8. مقاومت 220Ω (PIN2) ⟷ Arduino Uno (GND1)
  9. Arduino Uno (VCC5) ⟷ سروو موتور (VCC)
  10. سروو موتور (GND) ⟷ Arduino Uno (GND2)
  11. Arduino Uno (D9) ⟷ سروو موتور (SIG)

کد

// Sun tracker: two LDRs, the servo turns toward the brighter one
#include <Servo.h>

Servo panel;
int angle = 90;
const int DEADBAND = 30;   // ignore small differences, so it does not shake

void setup() {
  Serial.begin(9600);
  panel.attach(9);
  panel.write(angle);
}

void loop() {
  int left = analogRead(A0);
  int right = analogRead(A1);
  int diff = left - right;
  if (diff > DEADBAND && angle < 180) angle++;
  if (diff < -DEADBAND && angle > 0) angle--;
  panel.write(angle);
  Serial.print(left);
  Serial.print(" ");
  Serial.println(right);
  delay(15);
}

ماموریت‌های مشابه

🎯

ماموریت ۹۵: کنترل تناسبی سروو

🛗

ماموریت ۹۷: آسانسور با ماشین حالت

💾

ماموریت ۹۴: ذخیره‌ی تنظیمات در حافظه‌ی فلش

🥤

ماموریت ۹۸: دستگاه فروش خودکار

📚 برای یاد گرفتن پایه‌ها سری به دوره‌ی آموزش آردوینو بزن · 🎯 همه‌ی ماموریت‌ها