[{"data":1,"prerenderedAt":13},["ShallowReactive",2],{"blog:potentiometer-how-it-works":3},{"category":4,"cover_image":5,"html":6,"published_at":7,"seo_description":8,"seo_title":9,"slug":10,"sort_order":11,"title_fa":12},"sensors-inputs","\u002Fblog\u002Fpotentiometer-how-it-works.jpg","\u003Cp>پتانسیومتر (\u003Ccode dir=\"ltr\">Potentiometer\u003C\u002Fcode>) همان قطعه‌ای است که وقتی ولومِ صدا را کم و زیاد می‌کنی زیرِ انگشتت می‌چرخد. در واقع یک مقاومت است که یک زبانهٔ متحرک (\u003Ccode dir=\"ltr\">wiper\u003C\u002Fcode>) روی آن می‌لغزد و یک تقسیم‌کنندهٔ ولتاژِ قابلِ تنظیم می‌سازد. همین باعث می‌شود میکروکنترلر بتواند «مقدارِ چرخشِ دستِ تو» را به عدد تبدیل کند.\u003C\u002Fp>\n\u003Ch2>چطور واقعاً کار می‌کند\u003C\u002Fh2>\n\u003Cp>پتانسیومتر سه پایه دارد. داخلش یک نوارِ مقاومتی است که دو سرش به دو پایهٔ کناری وصل است؛ پایهٔ وسط به یک زبانهٔ متحرک به‌نامِ \u003Ccode dir=\"ltr\">wiper\u003C\u002Fcode> می‌رود که با چرخاندنِ دسته، روی این نوار می‌لغزد.\u003C\u002Fp>\n\u003Cp>حالا اگر دو سرِ نوار را به \u003Ccode dir=\"ltr\">Vcc\u003C\u002Fcode> و \u003Ccode dir=\"ltr\">GND\u003C\u002Fcode> وصل کنی، یک «تقسیم‌کنندهٔ ولتاژِ قابلِ تنظیم» ساخته‌ای: هرجا wiper باشد، ولتاژِ آن نقطه به نسبتِ موقعیتِ wiper تعیین می‌شود. رابطه‌اش خیلی تمیز است:\u003C\u002Fp>\n\u003Cpre>\u003Ccode dir=\"ltr\">V_wiper = Vcc × position\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>یعنی اگر wiper دقیقاً وسط باشد (\u003Ccode dir=\"ltr\">position = 0.5\u003C\u002Fcode>)، ولتاژِ خروجی نصفِ \u003Ccode dir=\"ltr\">Vcc\u003C\u002Fcode> است؛ اگر ته باشد صفر و اگر بالا باشد کاملِ \u003Ccode dir=\"ltr\">Vcc\u003C\u002Fcode>. جالب اینجاست که شبیه‌سازِ آیرو هم دقیقاً همین فرمول را حل می‌کند تا ولتاژِ wiper را دربیاورد. بعد میکروکنترلر با \u003Ccode dir=\"ltr\">ADC\u003C\u002Fcode>ِ خودش این ولتاژ را می‌خواند و به یک عدد (در ESP32 بینِ ۰ تا ۴۰۹۵) تبدیل می‌کند. این‌طوری «چرخشِ دستِ تو» به یک عدد در برنامه تبدیل می‌شود.\u003C\u002Fp>\n\u003Ch2>کاربردهای واقعی\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>ولومِ صدا:\u003C\u002Fstrong> کلاسیک‌ترین کاربرد؛ کم و زیادکردنِ صدا.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>دیمرِ نور:\u003C\u002Fstrong> تنظیمِ روشناییِ لامپ یا LED.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>جوی‌استیک:\u003C\u002Fstrong> هر جوی‌استیک در واقع دو پتانسیومتر است که موقعیتِ افقی و عمودی را می‌خواند.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>کالیبراسیون و تنظیم:\u003C\u002Fstrong> در خیلی از دستگاه‌ها یک پتانسیومترِ کوچک برای تنظیمِ دقیقِ یک مقدار (مثلِ حساسیت) وجود دارد.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>در عمل\u003C\u002Fh2>\n\u003Cp>سیم‌بندی ساده است: یک پایهٔ کناری به \u003Ccode dir=\"ltr\">3V3\u003C\u002Fcode>، پایهٔ کناریِ دیگر به \u003Ccode dir=\"ltr\">GND\u003C\u002Fcode>، و پایهٔ وسط (\u003Ccode dir=\"ltr\">wiper\u003C\u002Fcode>) به یک پایهٔ ورودیِ آنالوگ مثلِ \u003Ccode dir=\"ltr\">GPIO34\u003C\u002Fcode>. در کد با \u003Ccode dir=\"ltr\">ADC\u003C\u002Fcode> عددش را می‌خوانیم و مثلاً به روشناییِ یک LED نگاشت (\u003Ccode dir=\"ltr\">map\u003C\u002Fcode>) می‌کنیم:\u003C\u002Fp>\n\u003Cpre>\u003Ccode dir=\"ltr\">from machine import Pin, ADC, PWM\nimport time\n\npot = ADC(Pin(34))\npot.atten(ADC.ATTN_11DB)\nled = PWM(Pin(25), freq=1000)\n\ndef map_value(x, in_min, in_max, out_min, out_max):\n    return (x - in_min) * (out_max - out_min) \u002F\u002F (in_max - in_min) + out_min\n\nwhile True:\n    raw = pot.read()                               # 0 ta 4095\n    brightness = map_value(raw, 0, 4095, 0, 1023)  # 0 ta 1023\n    led.duty(brightness)\n    print(\"raw:\", raw, \"-> duty:\", brightness)\n    time.sleep_ms(50)\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>اشتباه‌های رایج\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>وصل‌کردنِ فقط دو پایه:\u003C\u002Fstrong> اگر به‌جای سه پایه فقط wiper و یک سر را ببندی، دیگر تقسیم‌کننده نداری و عدد درست خوانده نمی‌شود.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>جابه‌جاییِ جهت:\u003C\u002Fstrong> اگر \u003Ccode dir=\"ltr\">Vcc\u003C\u002Fcode> و \u003Ccode dir=\"ltr\">GND\u003C\u002Fcode> را جابه‌جا ببندی، جهتِ زیاد\u002Fکم‌شدنِ عدد برعکس می‌شود.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>خواندنِ پایهٔ آنالوگِ نامناسب:\u003C\u002Fstrong> همهٔ پایه‌های میکروکنترلر ورودیِ آنالوگ نیستند؛ پایهٔ درست را انتخاب کن.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>همین حالا امتحان کن\u003C\u002Fh2>\n\u003Cp>در همین مرورگر پتانسیومتر را بچرخان و ببین عددِ ADC و روشناییِ LED چطور تغییر می‌کند: \u003Ca href=\"\u002Flab\u002Fembed\u002Fterm-2-sensors\u002Fsession-03-adc-potentiometer\">آزمایشگاه: پتانسیومتر و ADC\u003C\u002Fa>. توضیحِ کاملِ گام‌به‌گام هم در \u003Ca href=\"\u002Fcourses\u002Fairo\u002Flessons\u002Ft2\u002Fs03-adc-potentiometer\">فصلِ پتانسیومتر\u003C\u002Fa> هست.\u003C\u002Fp>","2026-07-18T07:30:00Z","پتانسیومتر (Potentiometer) یعنی یک تقسیم‌کنندهٔ ولتاژِ قابل‌تنظیم؛ ولتاژ wiper برابر Vcc ضربدر موقعیت است. کاربرد در ولوم، دیمر و جوی‌استیک — با شبیه‌ساز.","پتانسیومتر چیست و چطور کار می‌کند؟ تقسیم ولتاژ و ADC | یادستان","potentiometer-how-it-works",60,"پتانسیومتر چیست و چطور ولتاژ را تنظیم می‌کند؟",1784827101873]