📊 خواندن سنسور آنالوگ — از ۰ تا ۱۰۲۳ یعنی چه؟

پایه‌های دیجیتال فقط روشن و خاموش می‌فهمند. ولی دنیای واقعی این‌طور نیست — نور کم‌کم زیاد می‌شود و دما آرام‌آرام بالا می‌رود. برای خواندن این‌ها به پایه‌های آنالوگ نیاز داری.

چرا ۰ تا ۱۰۲۳؟

مبدل داخلی آردوینو ۱۰ بیتی است، یعنی بازه‌ی ۰ تا ۵ ولت را به ۱۰۲۴ پله تقسیم می‌کند (۲ به توان ۱۰). پس:

ساده‌ترین مثال

void setup() {
  Serial.begin(9600);
}
void loop() {
  int value = analogRead(A0);
  Serial.println(value);
  delay(200);
}

پتانسیومتر را وصل کن (دو پایه‌ی کناری به ۵ ولت و GND، پایه‌ی وسط به A0) و بچرخانش — عدد را می‌بینی که نرم تغییر می‌کند.

تبدیل به ولتاژ

float volts = analogRead(A0) * 5.0 / 1023.0;

تبدیل به بازه‌ی دیگر با map

می‌خواهی با پتانسیومتر نور LED را کم و زیاد کنی؟ بازه‌ی ۰–۱۰۲۳ را به ۰–۲۵۵ ببر:

int pwm = map(analogRead(A0), 0, 1023, 0, 255);
analogWrite(9, pwm);

یک نکته‌ی مهم

آردوینو مقاومت را مستقیم نمی‌خواند، فقط ولتاژ. برای همین سنسورهای مقاومتی مثل LDR و ترمیستور را باید با یک مقاومت ۱۰ کیلواهمی سری کنی تا یک مقسم ولتاژ بسازی و نقطه‌ی وسط را بخوانی.

یک پتانسیومتر را بچرخان و عدد را ببین 📊

مقاله‌های دیگر

🤖

آردوینو چیست؟ راهنمای کامل برای شروع از صفر

بهترین شبیه‌ساز مدار آنلاین فارسی — چرا شبیه‌ساز، و چرا روبومیکر؟

💡

ساده‌ترین پروژه الکترونیک برای بچه‌ها: روشن‌کردن یک LED