〰️ درس 64: سنسور آرام: میانگین‌گیری

عددهای پرنویز را با میانگین متحرک صاف کن و روی نمودار ببین.

سطح: پیشرفته · زمان: حدود 18 دقیقه · مفاهیم: میانگین متحرک، آرایه، نمودار

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

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

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

const int N = 10;           // how many samples to average
int samples[N];             // the last N readings
int idx = 0;                // where the next one goes
long total = 0;             // running sum of the window

void setup() {
  Serial.begin(9600);
}

void loop() {
  // the knob plus fake noise, like a real cheap sensor
  int raw = analogRead(A0) + random(-40, 41);
  raw = constrain(raw, 0, 1023);

  total = total - samples[idx];   // drop the oldest
  samples[idx] = raw;             // store the newest
  total = total + raw;            // add it to the sum
  idx = (idx + 1) % N;            // move on, wrap at N

  float smooth = total / (float)N;

  Serial.print("raw:");
  Serial.print(raw);
  Serial.print(",smooth:");
  Serial.println(smooth);
  delay(50);
}

چرا این درس؟

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

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

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

🖲️

درس 63: لرزش دکمه و debounce

🌡️

درس 65: ترموستات با هیسترزیس