خواندن سنسور آنالوگ
ANALOG INPUT.
با چرخاندن پتانسیومتر، ولتاژ پایه A0 تغییر میکند و آردوینو آن را به عددی بین ۰ تا ۱۰۲۳ تبدیل میکند.
کد را زنده امتحان کن ↓آردوینو فقط صفر و یک نمیبیند؛ مقدار بین آنها را هم میخواند.
کلید مثل پرسش بله یا خیر است؛ ورودی آنالوگ مثل خطکش است و میگوید مقدار دقیقاً چقدر است.
UNO LAB
حالا کدش را بخوان.
در برد Uno با مرجع ۵ ولت، هر واحد ADC تقریباً ۴.۹ میلیولت است. map میتواند این بازه را به درصد، زاویه یا مقدار خروجی دلخواه تبدیل کند.
01const int sensorPin = A0;02 03void setup() {04 Serial.begin(9600);05}06 07void loop() {08 int sensor = analogRead(sensorPin);09 Serial.println(sensor);10 delay(20);11}کجا به کار میآید؟
همین مفهوم ساده، پایهی رفتارهای بزرگتر در ربات و دستگاه واقعی است.
سنسور نور
تشخیص روشنایی محیط.
جویاستیک
خواندن جهت و شدت حرکت.
سنسور دما
اندازهگیری یک کمیت پیوسته.
فقط کار نکند؛
قابلفهم هم باشد.
در هر قطعه، مکانیزم و خط کد، علاوه بر عملکرد فنی به تجربه انسانی فکر میکنیم: کاربر باید وضعیت را ببیند، رفتار را پیشبینی کند و بدون پیچیدگی اضافه با سیستم ارتباط بگیرد.
داده خام سنسور برای انسان معنا ندارد؛ آن را به وضعیت قابلفهم تبدیل کن.
بازه امن، هشدار و خطر را با سلسلهمراتب روشن نشان بده.
نوسانهای کوچک را فیلتر کن تا رابط بیدلیل نلرزد.
مقدار سنسور را به سه وضعیت ساده محیط مناسب، مرزی و نامناسب تبدیل کن.
HRI × VISUAL × SIMPLEاگر کار نکرد، اینها را ببین.
- 01
ولتاژ ورودی Uno نباید از محدوده مجاز بیشتر شود.
- 02
خواندن سنسور ممکن است کمی نوسان داشته باشد.
- 03
زمین سنسور و برد باید مشترک باشد.
حالا نوبت ساختن است.
مقدار سنسور را به سه وضعیت ساده محیط مناسب، مرزی و نامناسب تبدیل کن.