📊 خواندن سنسور آنالوگ — از ۰ تا ۱۰۲۳ یعنی چه؟
پایههای دیجیتال فقط روشن و خاموش میفهمند. ولی دنیای واقعی اینطور نیست — نور کمکم زیاد میشود و دما آرامآرام بالا میرود. برای خواندن اینها به پایههای آنالوگ نیاز داری.
چرا ۰ تا ۱۰۲۳؟
مبدل داخلی آردوینو ۱۰ بیتی است، یعنی بازهی ۰ تا ۵ ولت را به ۱۰۲۴ پله تقسیم میکند (۲ به توان ۱۰). پس:
- ۰ ولت ← عدد ۰
- ۲٫۵ ولت ← حدود ۵۱۲
- ۵ ولت ← عدد ۱۰۲۳
سادهترین مثال
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 و ترمیستور را باید با یک مقاومت ۱۰ کیلواهمی سری کنی تا یک مقسم ولتاژ بسازی و نقطهی وسط را بخوانی.
یک پتانسیومتر را بچرخان و عدد را ببین 📊