✋ سنسور فشار FSR (Force Sensitive Resistor (FSR))
| اسم انگلیسی | Force Sensitive Resistor (FSR) |
|---|---|
| در ووکوی (Wokwi) | نسخهی آمادهای سراغ نداریم |
| دسته | 🌡️ سنسورها |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
سنسور فشار یا نیرو FSR (Force Sensitive Resistor) یک نوار پلاستیکی نازک با دایره یا مربعی حساس در سرش است که هرچه محکمتر فشارش بدهی، مقاومتش کمتر میشود؛ مدل رایجش FSR402 است. وقتی دست به آن نمیزنی مقاومتش بیشتر از یک مگااهم است و زیر فشار انگشت به چند کیلواهم و حتی چند صد اهم میرسد. با آن دکمهی حساس به فشار، کفپوشی که قدم را حس میکند، انگشت ربات که میفهمد جسم را گرفته یا بازی «چقدر محکم زدی؟» میسازی؛ ولی ترازوی دقیق نه.
سنسور فشار در ووکوی (Wokwi)
تا جایی که میدانیم ووکوی نسخهی آمادهی این قطعه را ندارد. خبر خوب این است که از دید آردوینو، FSR در مدار مقسم ولتاژ فقط یک ولتاژ آنالوگ متغیر روی A0 است؛ پس در ووکوی یک wokwi-potentiometer جایش بگذار و چرخاندن دسته را «فشار دادن» حساب کن. پایهی SIG را به A0، VCC را به 5V و GND را به GND وصل کن.
{
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
{ "type": "wokwi-potentiometer", "id": "pot1", "top": -120, "left": 160, "attrs": {} }
],
"connections": [
[ "pot1:VCC", "uno:5V", "red", [] ],
[ "pot1:SIG", "uno:A0", "orange", [] ],
[ "pot1:GND", "uno:GND.1", "black", [] ]
]
}
خود FSR در تینکرکد فارسی رایگان شبیهسازی میشود و در هر دو مود ساده و آردوینو هست.
سیمکشی با آردوینو
FSR دو پایه دارد و قطبیت ندارد. چون خروجیاش مقاومت است نه ولتاژ، باید آن را با یک مقاومت ثابت ۱۰ کیلواهم سری کنی تا یک مقسم ولتاژ بسازی.
| پایهی قطعه | وصل به |
|---|---|
| پایهی اول FSR | 5V |
| پایهی دوم FSR | A0 |
| مقاومت ۱۰ کیلواهم | بین A0 و GND |
بدون فشار، FSR تقریباً قطع است و A0 نزدیک صفر را میخواند؛ با فشار بیشتر عدد به سمت ۱۰۲۳ میرود. اگر میخواهی فشارهای سبک را بهتر تشخیص بدهی، مقاومت ثابت را بزرگتر کن (مثلاً ۴۷ کیلو). ماشینحساب مقسم ولتاژ نشان میدهد هر انتخاب چه بازهای میدهد.
کد نمونه
این برنامه علاوه بر عدد خام، با فرمول مقسم ولتاژ مقاومت خود FSR را حساب میکند و فشار را در سه سطح سبک، متوسط و محکم دستهبندی میکند.
// FSR + 10k divider on A0: estimate the FSR resistance and a pressure level.
const int FSR_PIN = A0;
const float R_FIXED = 10000.0; // the 10k resistor from A0 to GND
void setup() {
Serial.begin(9600);
}
void loop() {
int raw = analogRead(FSR_PIN);
float volts = raw * 5.0 / 1023.0;
Serial.print("raw=");
Serial.print(raw);
if (raw < 10) {
Serial.println(" no touch");
} else {
float rFsr = R_FIXED * (5.0 - volts) / volts; // solved from the divider
Serial.print(" R=");
Serial.print(rFsr / 1000.0, 1);
Serial.print("k ");
if (raw < 300) Serial.println("light");
else if (raw < 700) Serial.println("medium");
else Serial.println("hard");
}
delay(200);
}
فرمول از رابطهی مقسم میآید: ولتاژ A0 برابر است با ۵ ضرب در مقاومت ثابت، تقسیم بر مجموع دو مقاومت. ما همین رابطه را برای مقاومت FSR حل کردهایم.
اشتباههای رایج
- ساختن ترازو با FSR: تکرارپذیری FSR معمولاً ده درصد یا بدتر است و زیر بار ثابت هم کمکم «وا میدهد». برای وزن کردن، لودسل (Load Cell) و تقویتکنندهی HX711 لازم است.
- جا انداختن مقاومت ثابت: بدون مقاومت ۱۰ کیلو، A0 وقتی FSR فشرده نیست شناور میماند و عددهای بیمعنی میدهد.
- لحیم کردن مستقیم پایهها: پایههای FSR روی پلاستیک چاپ شدهاند و با گرمای هویه ذوب میشوند. از کانکتور یا بردبورد استفاده کن.
- فشار با نوک تیز: سنسور برای فشار پخششده روی سطح حساس طراحی شده؛ نوک مداد عدد را بالا و پایین میبرد و ممکن است لایه را سوراخ کند.
آموزشهای مرتبط
- سنسور خمش؛ مقاومت متغیر دیگری برای دستکش هوشمند
- نوار LED دهتایی برای نمایش شدت فشار
- analogRead در ESP32 و تبدیل عدد به ولتاژ
- نمودار سریال برای دیدن منحنی فشار
سؤالهای رایج
میشود با FSR ترازو ساخت؟
برای وزن دقیق نه. FSR تکرارپذیری حدود ده درصد دارد و زیر بار ثابت کمکم عددش عوض میشود. برای ترازو، لودسل با ماژول HX711 مناسب است؛ FSR برای تشخیص لمس و فشار سبک و محکم عالی است.
برای FSR چه مقاومتی بگذارم؟
معمولاً ۱۰ کیلواهم. اگر میخواهی فشارهای خیلی سبک را بهتر تشخیص بدهی، مقاومت بزرگتر مثل ۴۷ کیلو بگذار؛ برای فشارهای سنگین، مقاومت کوچکتر بهتر است.
سنسور FSR در ووکوی هست؟
تا جایی که میدانیم نه. یک پتانسیومتر روی A0 همان ولتاژ متغیر را میسازد و کد بدون تغییر کار میکند. خود FSR در تینکرکد فارسی رایگان شبیهسازی میشود.