〰️ درس 64: سنسور آرام: میانگینگیری
عددهای پرنویز را با میانگین متحرک صاف کن و روی نمودار ببین.
سطح: پیشرفته · زمان: حدود 18 دقیقه · مفاهیم: میانگین متحرک، آرایه، نمودار
قدمهای این درس
- چرا عددها میپرند؟
- قدم ۱ — یک پتانسیومتر بهجای سنسور
- قدم ۲ — پنجرهی ۱۰ تایی
- اشتباه رایج: پنجرهی خیلی بزرگ یا جمع int
- چالش: فیلتر نمایی
نمونهای از کد این درس
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);
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓