🌞 درس 93: ردیاب خورشید

دو LDR و یک سروو: پنل خورشیدی همیشه رو به نور.

سطح: پیشرفته · زمان: حدود 16 دقیقه · مفاهیم: LDR، سروو، ناحیه‌ی مرده

قدم‌های این درس

  1. چرا؟ پنل چرخان برق بیشتری می‌گیرد
  2. قدم ۱ — دو تقسیم‌کننده‌ی ولتاژ
  3. قدم ۲ — اختلاف و ناحیه‌ی مرده
  4. اشتباه رایج: ناحیه‌ی مرده‌ی اشتباه
  5. چالش: ردیاب دو محوره و حالت شب

نمونه‌ای از کد این درس

// ردیاب خورشید: دو LDR، یک سروو، یک «ناحیه‌ی مرده»
#include <Servo.h>

Servo panel;
int angle = 90;
const int deadBand = 30;   // ignore small differences (noise)

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

void loop() {
  int left = analogRead(A0);    // more light = bigger number
  int right = analogRead(A1);
  int diff = left - right;

  if (diff > deadBand) {
    angle = angle + 1;          // more light on the left: turn left
  } else if (diff < -deadBand) {
    angle = angle - 1;          // more light on the right: turn right
  }
  angle = constrain(angle, 0, 180);
  panel.write(angle);

  Serial.print("left:");
  Serial.print(left);
  Serial.print(" right:");
  Serial.print(right);
  Serial.print(" angle:");
  Serial.println(angle);
  delay(20);
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

🌀

درس 92: کنترل دما با فن — PID ساده

🛗

درس 94: آسانسور: ماشین حالت بزرگ