🎛️ پتانسیومتر (ولوم) (Potentiometer)
| اسم انگلیسی | Potentiometer |
|---|---|
| در ووکوی (Wokwi) | wokwi-potentiometer |
| دسته | 🎛️ کلید، دکمه و ورودی |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
پتانسیومتر یا ولوم (Potentiometer) یک مقاومت متغیر سهپایه است: دو سر یک نوار مقاومتی و یک لغزنده که با چرخاندن دسته رویش حرکت میکند. وقتی دو سر را به ۵ ولت و GND بدهی، لغزنده هر ولتاژی بین صفر تا ۵ ولت میدهد و آردوینو با analogRead آن را به عددی بین ۰ تا ۱۰۲۳ تبدیل میکند. همین یک قطعه «دستهی تنظیم» هر پروژهای است: زاویهی سروو، نور LED، سرعت موتور، آستانهی سنسور یا انتخاب گزینه در منو.
پتانسیومتر در ووکوی (Wokwi)
شناسهی قطعه wokwi-potentiometer است با سه پایهی GND، SIG و VCC. حین اجرای شبیهسازی، دستهاش را با ماوس میچرخانی و عدد analogRead بلافاصله عوض میشود. این diagram.json ولوم را به A0 و یک LED را با مقاومت به پین ۹ میبندد:
{
"version": 1,
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
{ "type": "wokwi-potentiometer", "id": "pot1", "top": -110, "left": 150, "attrs": {} },
{ "type": "wokwi-resistor", "id": "r1", "top": -60, "left": 260, "attrs": { "value": "220" } },
{ "type": "wokwi-led", "id": "led1", "top": -130, "left": 330, "attrs": { "color": "red" } }
],
"connections": [
[ "pot1:VCC", "uno:5V", "red", [] ],
[ "pot1:GND", "uno:GND.1", "black", [] ],
[ "pot1:SIG", "uno:A0", "green", [] ],
[ "uno:9", "r1:1", "orange", [] ],
[ "r1:2", "led1:A", "orange", [] ],
[ "led1:C", "uno:GND.1", "black", [] ]
]
}
| پایه در ووکوی | به کجا | توضیح |
|---|---|---|
VCC | uno:5V | یک سر نوار |
SIG | uno:A0 | لغزنده؛ ۰ تا ۵ ولت |
GND | uno:GND.1 | سر دیگر نوار |
پتانسیومتر در تینکرکد فارسی هم، در مود ساده و مود آردوینو، رایگان است؛ مثال آمادهی پتانسیومتر کنترل LED را میتوانی همانجا باز کنی.
سیمکشی با آردوینو
| پایهی قطعه | وصل به |
|---|---|
| سر اول (VCC) | 5V |
| پایهی وسط (SIG) | A0 |
| سر دوم (GND) | GND |
| LED با مقاومت ۲۲۰ اهم | پین 9 به GND |
کد نمونه
این بار ولوم بهجای نور، سرعت چشمک زدن را تعیین میکند (۵۰ تا ۱۰۰۰ میلیثانیه) و همزمان ولتاژ لغزنده را برای نمودار سریال میفرستد.
// Potentiometer on A0 sets the blink speed of the LED on pin 9
const int LED_PIN = 9;
unsigned long lastToggle = 0;
unsigned long lastPrint = 0;
bool ledState = false;
void setup() {
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int raw = analogRead(A0); // 0..1023
unsigned long interval = map(raw, 0, 1023, 50, 1000);
if (millis() - lastToggle >= interval) {
lastToggle = millis();
ledState = !ledState;
digitalWrite(LED_PIN, ledState ? HIGH : LOW);
}
if (millis() - lastPrint >= 100) { // 10 points per second for the plotter
lastPrint = millis();
Serial.print("volts:");
Serial.println(raw * 5.0 / 1023.0, 2);
}
}
یک ولوم، چند کار
عدد ۰ تا ۱۰۲۳ ولوم را با map به هر بازهای که لازم داری میبری؛ فقط یک خط کد عوض میشود:
| کار | تبدیل |
|---|---|
| زاویهی سروو | map(raw, 0, 1023, 0, 180) |
| نور LED با PWM | map(raw, 0, 1023, 0, 255) |
| انتخاب یکی از ۴ گزینهی منو | map(raw, 0, 1024, 0, 4) |
| آستانهی یک سنسور | خود raw، در مقایسه با عدد سنسور |
برای گزینههای منو، کمی فاصلهی مرده بین بازهها بگذار تا وقتی دسته درست روی مرز ایستاده، انتخاب بین دو گزینه بالا و پایین نپرد.
اشتباههای رایج
- لغزنده به 5V: اگر پایهی وسط را به 5V و یک سر را به GND بزنی، وقتی دسته را تا آن سر بچرخانی، 5V مستقیم به GND اتصال کوتاه میشود. لغزنده همیشه خروجی است.
- digitalRead بهجای analogRead: فقط صفر یا یک میگیری و فکر میکنی ولوم خراب است.
- پتانسیومتر ۵ ولتی روی ESP32: ورودی ESP32 حداکثر ۳٫۳ ولت است؛ سر VCC را به 3V3 بده.
- جهت برعکس: اگر با چرخش به راست عدد کم میشود، جای دو سر را عوض کن، یا در کد
1023 - rawبخوان.
آموزشهای مرتبط
- سروو با آردوینو و کنترل با پتانسیومتر
- analogRead در ESP32 با پتانسیومتر
- ADC پیکو با میکروپایتون
- سریال مانیتور و نمودار سریال
سؤالهای رایج
پایههای پتانسیومتر در ووکوی کداماند؟
سه پایه: GND و VCC دو سر نوار مقاومتیاند و SIG لغزندهی وسط. VCC را به 5V، GND را به GND و SIG را به یک ورودی آنالوگ مثل A0 وصل کن.
چرا عدد پتانسیومتر کمی بالا و پایین میپرد؟
نویز کوچک ورودی آنالوگ و تماس لغزنده باعث میشود عدد یکی دو واحد تکان بخورد. میانگین گرفتن از چند خواندن یا نادیده گرفتن تغییرهای خیلی کوچک این را حل میکند.
پتانسیومتر روی ESP32 به کدام پایه وصل شود؟
به یکی از پایههای ADC1 مثل GPIO34 یا GPIO32، و تغذیهاش ۳٫۳ ولت باشد نه ۵ ولت. پایههای ADC2 وقتی وایفای روشن است کار نمیکنند.