🛠️ ساخت مدار در ووکوی (Wokwi) قدم‌به‌قدم: از انتخاب برد و سیم‌کشی تا اجرای شبیه‌سازی، با دو مدار کامل

✍️ تیم ووکوی فارسی ·

یک ایده‌ی مدار در ذهنت داری و می‌خواهی قبل از خرید قطعه ببینی کار می‌کند یا نه. ساخت مدار در ووکوی (Wokwi) دقیقاً برای همین است: برد را انتخاب می‌کنی، قطعه‌ها را روی صفحه می‌چینی، با کلیک روی پایه‌ها سیم می‌کشی، کد را می‌نویسی و دکمه‌ی اجرا را می‌زنی. در این راهنما همه‌ی این قدم‌ها را با جزئیات می‌گوییم: دکمه‌ی + و فهرست قطعه‌ها، چیدن و چرخاندن قطعه، رنگ و خم سیم، ویژگی قطعه‌ها، فایل‌های diagram.json، sketch.ino و libraries.txt، اجرای شبیه‌سازی و سریال مانیتور. بعد دو مدار کامل را از صفر می‌سازیم: مدار چراغ راهنمایی (Traffic Light) و مدار سنسور پارک (Parking Sensor). در آخر همین مدارها را در شبیه‌ساز فارسی هم می‌سازیم و اشتباه‌های رایج سیم‌کشی را مرور می‌کنیم.

اگر اولین بار است که ووکوی را باز می‌کنی و فقط می‌خواهی یک LED چشمک بزند، اول آموزش ووکوی قدم‌به‌قدم را ببین؛ این صفحه یک قدم جلوتر است و روی خود کار ساختن مدار تمرکز دارد.

یک پروژه‌ی ووکوی از چه ساخته شده؟

قبل از این‌که دست به ماوس ببری، خوب است بدانی هر کاری که روی صفحه می‌کنی کجا ذخیره می‌شود. هر پروژه در wokwi.com چند فایل دارد که بالای ویرایشگر به شکل تب دیده می‌شوند:

فایلچه چیزی در آن استچه کسی آن را می‌نویسد
sketch.inoکد آردوینو (C++)خودت
diagram.jsonقطعه‌ها، جای هر قطعه، ویژگی‌ها و همه‌ی سیم‌هاویرایشگر مدار، وقتی قطعه می‌چینی و سیم می‌کشی؛ دستی هم می‌شود ویرایشش کرد
libraries.txtفهرست کتابخانه‌هایی که کد لازم داردLibrary Manager، وقتی کتابخانه اضافه می‌کنی

نکته‌ی مهم این است که مدار و کد دو فایل جدا هستند. ویرایشگر گرافیکی فقط یک نمای دیدنی از diagram.json است؛ هر قطعه‌ای که می‌گذاری یک خط در بخش parts و هر سیمی که می‌کشی یک خط در بخش connections می‌شود. اگر با ساختار این فایل آشنا نیستی، diagram.json در ووکوی چیست؟ را بخوان. در مثال اول یک diagram.json کامل هم می‌نویسیم.

قدم ۱: پروژه‌ی تازه بساز و برد را انتخاب کن

به wokwi.com برو و از بخش شروع پروژه‌ی جدید، برد را انتخاب کن: Arduino Uno، Arduino Nano، Arduino Mega، ESP32 یا Raspberry Pi Pico. برای این آموزش Arduino Uno را بردار. ووکوی یک پروژه‌ی خالی باز می‌کند: یک طرف ویرایشگر کد با setup و loop خالی، طرف دیگر صفحه‌ی مدار با یک برد اونو.

قدم ۲: قطعه اضافه کن (دکمه‌ی +)

بالای صفحه‌ی مدار یک دکمه‌ی + هست. با زدنش فهرست قطعه‌ها باز می‌شود که یک کادر جستجو دارد. اسم انگلیسی قطعه را تایپ کن، مثلاً LED، resistor، button، buzzer، HC-SR04 یا LCD، و روی قطعه بزن تا روی صفحه ظاهر شود.

چند قطعه که زیاد لازمت می‌شود، با اسمی که جستجو می‌کنی و شناسه‌ای که در diagram.json می‌بینی:

قطعهEnglishشناسه در diagram.json
LEDLEDwokwi-led
مقاومتResistorwokwi-resistor
کلید فشاریPushbuttonwokwi-pushbutton
پتانسیومتر (ولوم)Potentiometerwokwi-potentiometer
بازرBuzzerwokwi-buzzer
سنسور فاصله‌ی اولتراسونیکHC-SR04 Ultrasonicwokwi-hc-sr04
سروو موتورServowokwi-servo
نمایشگر LCD ۱۶×۲LCD 1602wokwi-lcd1602
سنسور دما و رطوبتDHT22wokwi-dht22

اگر قطعه‌ای را پیدا نکردی، با اسم دیگرش جستجو کن؛ مثلاً photoresistor به‌جای LDR. فهرست بلندتر شناسه‌ها را کنار ۴۰ مدار آماده در مقاله‌ی «۴۰ مدار آردوینو برای ووکوی» آورده‌ایم که آخر همین صفحه لینکش هست.

قدم ۳: قطعه‌ها را بچین، جابه‌جا کن و بچرخان

یک عادت خوب: قطعه‌ها را همان شکلی بچین که روی میز واقعی می‌چینی؛ ورودی‌ها یک طرف، خروجی‌ها طرف دیگر و GNDها نزدیک هم. مدار مرتب هم راحت‌تر سیم‌کشی می‌شود و هم وقتی کار نکرد، عیبش زودتر پیدا می‌شود.

قدم ۴: سیم‌کشی؛ کلیک روی پایه، خم و رنگ سیم

سیم‌کشی در ووکوی با کلیک انجام می‌شود، نه با کشیدن و رها کردن:

  1. نشانگر را روی پایه‌ی یک قطعه ببر؛ اسم پایه ظاهر می‌شود. مثلاً A و C برای آند و کاتد LED، یا 13 و GND روی برد.
  2. روی پایه کلیک کن تا سیم شروع شود.
  3. اگر می‌خواهی سیم از مسیر خاصی برود، در جای خالی صفحه کلیک کن؛ هر کلیک یک خم (گوشه) می‌سازد.
  4. روی پایه‌ی مقصد کلیک کن تا سیم تمام شود.

بعد از کشیدن، با انتخاب سیم می‌توانی رنگش را عوض کنی یا پاکش کنی. رنگ سیم هیچ اثری روی کار مدار ندارد، ولی خواندن مدار را خیلی راحت می‌کند. قراردادی که در مثال‌های این سایت رعایت می‌کنیم:

رنگ سیمبرای
قرمزتغذیه: ۵ ولت یا ۳٫۳ ولت (VCC)
سیاهزمین (GND)
سبز، آبی، نارنجیسیگنال‌ها: پین‌های دیجیتال و آنالوگ
زرد و بنفشخطوط ارتباطی، مثل SDA و SCL در I2C

در diagram.json هر سیم یک آرایه است: پایه‌ی اول، پایه‌ی دوم، رنگ و فهرست نقطه‌های مسیر (همان خم‌ها). پس اگر ده سیم را اشتباه رنگ کرده‌ای، می‌توانی مستقیم در فایل اصلاحشان کنی.

💡 ووکوی بردبورد هم دارد و ردیف‌هایش مثل بردبورد واقعی به هم وصل‌اند. برای مدارهای کوچک، سیم مستقیم از پایه به پایه سریع‌تر است؛ برای مدارهای شلوغ، بردبورد مرتب‌تر. اگر هنوز نمی‌دانی ردیف‌های بردبورد چطور به هم وصل‌اند، بردبورد چطور کار می‌کند را بخوان.

قدم ۵: ویژگی قطعه‌ها (رنگ LED، مقدار مقاومت و…)

خیلی از قطعه‌ها ویژگی دارند: LED رنگ دارد، مقاومت مقدار و دکمه رنگ کلاهک. قطعه را انتخاب کن؛ برای قطعه‌هایی که ویژگی قابل تنظیم دارند، تنظیماتش نمایش داده می‌شود. همه‌ی این‌ها در بخش attrs هر قطعه در diagram.json نوشته می‌شوند و اگر ویرایشگر گزینه‌ای را نشان نداد، می‌توانی همان‌جا دستی بنویسی:

قطعهویژگیمثال در attrs
LEDرنگ"color": "red"
مقاومتمقدار به اهم"value": "220"
کلید فشاریرنگ کلاهک"color": "green"
LCD ۱۶×۲اتصال I2C به‌جای ۱۶ پایه"pins": "i2c"
حلقه‌ی نئوپیکسلتعداد LED"pixels": "16"

یک نکته‌ی مهم: ووکوی تمرکزش روی اجرای کد است و جریان هر شاخه‌ی مدار را مثل یک شبیه‌ساز آنالوگ حساب نمی‌کند؛ برای همین عوض کردن مقدار مقاومت معمولاً تفاوت چشم‌گیری در نور LED نشان نمی‌دهد. مقدار مقاومت را برای درست بودن مدار واقعی بنویس، نه برای شبیه‌ساز. چرایی‌اش را در شبیه‌سازی مدار در ووکوی: چه چیزی شبیه‌سازی می‌شود؟ توضیح داده‌ایم، و مقدار درست را با ماشین‌حساب مقاومت LED حساب کن.

قدم ۶: کد در sketch.ino، کتابخانه در libraries.txt

کد را در تب sketch.ino بنویس، دقیقاً مثل Arduino IDE. اگر کدت کتابخانه‌ی بیرونی لازم دارد (مثلاً #include <LiquidCrystal_I2C.h> یا #include <DHT.h>)، از تب Library Manager اسمش را جستجو کن و اضافه‌اش کن؛ ووکوی اسمش را در libraries.txt می‌نویسد و موقع کامپایل نصبش می‌کند. کتابخانه‌هایی که همراه خود هسته‌ی آردوینو هستند، مثل Wire و SPI، لازم نیست اضافه شوند. جزئیات کامل در کتابخانه در ووکوی و شبیه‌ساز فارسی.

یک ترتیب کاری خوب: اول مدار را کامل بچین، بعد بالای کد برای هر قطعه یک ثابت با اسم معنی‌دار تعریف کن (const int RED = 12;) و کنارش در کامنت بنویس به کجا وصل است. این‌طوری کد و diagram.json همیشه با هم می‌خوانند و اگر کسی فقط کد را ببیند، می‌تواند مدار را از رویش دوباره بسازد.

قدم ۷: اجرای شبیه‌سازی، توقف و سریال مانیتور

قدم ۸: ذخیره و اشتراک‌گذاری

دکمه‌ی Save را بزن؛ اگر وارد حساب نشده باشی، اول صفحه‌ی ورود باز می‌شود. بعد از ذخیره، آدرس صفحه به شکل wokwi.com/projects/... درمی‌آید و همین آدرس لینک پروژه است. در طرح رایگان ووکوی پروژه‌ها عمومی‌اند، پس رمز وای‌فای و توکن واقعی در کد نگذار. دانلود فایل پشتیبان، کپی کردن پروژه‌ی دیگران و آوردن پروژه به شبیه‌ساز فارسی در ذخیره و اشتراک‌گذاری پروژه در ووکوی آمده است.

مثال کامل ۱: مدار چراغ راهنمایی (Traffic Light)

حالا همه‌ی قدم‌ها را روی یک مدار واقعی امتحان می‌کنیم. مدار چراغ راهنمایی (Traffic Light) سه LED دارد که به ترتیب سبز، زرد و قرمز روشن می‌شوند. ساده است، ولی همه‌ی مهارت‌های ساخت مدار را تمرین می‌دهد: چند قطعه‌ی هم‌شکل، ویژگی رنگ، مقاومت عمودی، سیم‌های رنگی و GND مشترک.

قطعه‌ها

جدول سیم‌کشی

ازبهرنگ سیم
پین ۱۲ آردوینومقاومت ۱، و سر دیگرش به آند LED قرمزآبی
پین ۱۱ آردوینومقاومت ۲، و سر دیگرش به آند LED زردنارنجی
پین ۱۰ آردوینومقاومت ۳، و سر دیگرش به آند LED سبزسبز
کاتد هر سه LEDGND آردوینوسیاه

LED دو پایه دارد: A (آند، پایه‌ی بلند، مثبت) و C (کاتد، منفی). اگر نشانگر را روی پایه نگه داری، ووکوی اسمش را نشان می‌دهد. این diagram.json کامل همین مدار است؛ می‌توانی آن را در تب diagram.json یک پروژه‌ی تازه‌ی اونو بچسبانی:

{
  "version": 1,
  "parts": [
    { "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
    { "type": "wokwi-led", "id": "ledRed", "top": -150, "left": 140, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "ledYellow", "top": -150, "left": 190, "attrs": { "color": "yellow" } },
    { "type": "wokwi-led", "id": "ledGreen", "top": -150, "left": 240, "attrs": { "color": "green" } },
    { "type": "wokwi-resistor", "id": "r1", "top": -70, "left": 125, "rotate": 90, "attrs": { "value": "220" } },
    { "type": "wokwi-resistor", "id": "r2", "top": -70, "left": 175, "rotate": 90, "attrs": { "value": "220" } },
    { "type": "wokwi-resistor", "id": "r3", "top": -70, "left": 225, "rotate": 90, "attrs": { "value": "220" } }
  ],
  "connections": [
    [ "uno:12", "r1:2", "blue", [] ],
    [ "r1:1", "ledRed:A", "blue", [] ],
    [ "ledRed:C", "uno:GND.1", "black", [] ],
    [ "uno:11", "r2:2", "orange", [] ],
    [ "r2:1", "ledYellow:A", "orange", [] ],
    [ "ledYellow:C", "uno:GND.1", "black", [] ],
    [ "uno:10", "r3:2", "green", [] ],
    [ "r3:1", "ledGreen:A", "green", [] ],
    [ "ledGreen:C", "uno:GND.1", "black", [] ]
  ]
}

کد

// Traffic light on an Arduino Uno
// Wiring: pin 12 -> 220 ohm -> red LED, pin 11 -> 220 ohm -> yellow LED,
//         pin 10 -> 220 ohm -> green LED, all cathodes -> GND
const int RED = 12;
const int YELLOW = 11;
const int GREEN = 10;

const unsigned long GREEN_MS = 4000;
const unsigned long YELLOW_MS = 1000;
const unsigned long RED_MS = 4000;

void setLights(bool r, bool y, bool g) {
  digitalWrite(RED, r ? HIGH : LOW);
  digitalWrite(YELLOW, y ? HIGH : LOW);
  digitalWrite(GREEN, g ? HIGH : LOW);
}

void setup() {
  pinMode(RED, OUTPUT);
  pinMode(YELLOW, OUTPUT);
  pinMode(GREEN, OUTPUT);
  Serial.begin(9600);
  Serial.println("Traffic light ready");
}

void loop() {
  setLights(false, false, true);
  Serial.println("GREEN");
  delay(GREEN_MS);

  setLights(false, true, false);
  Serial.println("YELLOW");
  delay(YELLOW_MS);

  setLights(true, false, false);
  Serial.println("RED");
  delay(RED_MS);
}

اجرا را بزن: سبز ۴ ثانیه، زرد ۱ ثانیه، قرمز ۴ ثانیه. تمرین بعدی: یک کلید فشاری برای عابر پیاده اضافه کن که با فشار دادنش چراغ زودتر قرمز شود. نسخه‌ی کاملش پروژه‌ی چراغ عابر پیاده (Pedestrian Crossing) است و درس چراغ راهنمایی همین مدار را با تمرین قدم‌به‌قدم یاد می‌دهد.

مثال کامل ۲: مدار سنسور پارک با HC-SR04 (Parking Sensor)

مدار دوم یک سنسور دارد، پس با مهم‌ترین فرق شبیه‌ساز با عکس مدار آشنا می‌شوی: عوض کردن ورودی در حین اجرا. مدار سنسور پارک (Parking Sensor) فاصله را با سنسور اولتراسونیک HC-SR04 می‌خواند و هر چه مانع نزدیک‌تر باشد، بازر تندتر بوق می‌زند و LED تندتر چشمک می‌زند؛ درست مثل سنسور عقب ماشین.

قطعه‌ها و سیم‌کشی

یک آردوینو اونو، یک wokwi-hc-sr04، یک wokwi-buzzer، یک LED قرمز و یک مقاومت ۲۲۰ اهم بردار:

پایه‌ی قطعهبه آردوینورنگ سیم
HC-SR04: VCC5Vقرمز
HC-SR04: GNDGNDسیاه
HC-SR04: TRIGپین ۹سبز
HC-SR04: ECHOپین ۱۰آبی
بازر: پایه‌ی مثبتپین ۸نارنجی
بازر: پایه‌ی منفیGNDسیاه
LED: آند (از راه مقاومت ۲۲۰ اهم)پین ۷سبز
LED: کاتدGNDسیاه

کد

// Parking sensor: HC-SR04 + buzzer + LED on an Arduino Uno
const int TRIG = 9;
const int ECHO = 10;
const int BUZZER = 8;
const int LED = 7;
const long WARN_CM = 100;     // start beeping below this distance

void setup() {
  Serial.begin(9600);
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  pinMode(BUZZER, OUTPUT);
  pinMode(LED, OUTPUT);
}

long readDistanceCm() {
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);       // 10 microsecond trigger pulse
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  long duration = pulseIn(ECHO, HIGH, 30000UL);   // give up after 30 ms
  if (duration == 0) return -1;                    // no echo
  return duration / 58;                            // microseconds -> cm
}

void loop() {
  long cm = readDistanceCm();
  Serial.print("Distance: ");
  Serial.print(cm);
  Serial.println(" cm");

  if (cm > 0 && cm < WARN_CM) {
    int pause = map(cm, 0, WARN_CM, 40, 600);      // closer = faster beeps
    tone(BUZZER, 1000);
    digitalWrite(LED, HIGH);
    delay(80);
    noTone(BUZZER);
    digitalWrite(LED, LOW);
    delay(pause);
  } else {
    noTone(BUZZER);
    digitalWrite(LED, LOW);
    delay(200);
  }
}

اجرا را بزن و روی سنسور HC-SR04 کلیک کن تا کنترل فاصله ظاهر شود. فاصله را کم کن: زیر ۱۰۰ سانتی‌متر بوق شروع می‌شود و هر چه نزدیک‌تر، تندتر. در سریال مانیتور هم عدد فاصله را می‌بینی. طرز کار سنسور و این‌که چرا زمان رفت‌وبرگشت صدا را بر ۵۸ تقسیم می‌کنیم، در فاصله‌سنج اولتراسونیک HC-SR04 با آردوینو آمده است.

💡 عدد سوم pulseIn (این‌جا ۳۰ میلی‌ثانیه) مهلت انتظار است. بدون آن، اگر پژواکی برنگردد، برنامه تا یک ثانیه منتظر می‌ماند و بوق‌ها نامنظم می‌شوند. اگر سیم ECHO را عمداً جدا کنی، در سریال عدد ۱- را می‌بینی؛ یعنی کد این حالت را هم درست مدیریت می‌کند.

برای نسخه‌ی بزرگ‌تر این مدار، با دو سنسور، راهبند سروو و نمایشگر LCD، پارکینگ هوشمند با آردوینو را ببین.

همین مدارها در شبیه‌ساز فارسی (تینکرکد فارسی)

شبیه ساز مدار تینکرکد فارسی دو مود دارد و هر دو مثال بالا را می‌شود در آن ساخت. همه‌چیزش فارسی است، روی اینترنت ملی هم باز می‌شود و برای ساختن مدار لازم نیست JSON ببینی؛ قطعه را می‌کشی، روی یک پایه و بعد روی پایه‌ی مقصد می‌زنی تا سیم کشیده شود. اگر مدار را در فضای واقعی می‌خواهی ببندی، راهنمای ساخت مدار قدم‌به‌قدم هم کنار این صفحه به کارت می‌آید.

مود ساده (دوبعدی، بدون کد)

اگر هنوز کد بلد نیستی یا با بچه‌های کوچک‌تر کار می‌کنی، چراغ راهنمایی را بدون آردوینو بساز: مدار چراغ راهنمایی دستی (Hand-worked Traffic Light) که هر چراغ با یک دکمه روشن می‌شود.

  1. شبیه‌ساز را باز کن و مود «ساده» را بزن.
  2. یک باتری ۹ ولت، سه کلید فشاری، سه مقاومت و سه LED روی صفحه بکش. رنگ هر LED و مقدار هر مقاومت را از پنل ویژگی‌ها عوض کن؛ مقاومت‌ها را ۴۷۰ اهم بگذار. کلید R قطعه‌ی انتخاب‌شده را می‌چرخاند، درست مثل ووکوی.
  3. سیم‌کشی: مثبت باتری به یک پایه‌ی هر سه دکمه؛ پایه‌ی دیگر هر دکمه به یک مقاومت؛ سر دیگر هر مقاومت به آند یک LED؛ کاتد هر سه LED به منفی باتری.
  4. اجرا را بزن و دکمه‌ها را یکی‌یکی فشار بده.

این‌جا یک فرق بزرگ با ووکوی می‌بینی: مود ساده جریان را واقعاً حساب می‌کند. با باتری ۹ ولت و LED قرمز، مقاومت ۴۷۰ اهم جریان را حدود ۱۵ میلی‌آمپر نگه می‌دارد. حالا مقاومت یکی از چراغ‌ها را حذف کن و دوباره اجرا کن: جریان از حدود ۴۰ میلی‌آمپر بالاتر می‌رود، LED می‌سوزد و یک هشدار فارسی می‌بینی. نسخه‌ی آماده‌اش پروژه‌ی چراغ راهنمایی دستی است و ماجرای سوختن را در چرا LED بدون مقاومت می‌سوزد؟ مفصل خوانده‌ایم.

مود آردوینو (با کد)

  1. مود «آردوینو» را بزن؛ یک اونو و بردبورد آماده است.
  2. سه LED و سه مقاومت را روی بردبورد بگذار و با همان جدول سیم‌کشی بالا (پین‌های ۱۲، ۱۱ و ۱۰ و GND) وصلشان کن.
  3. کد چراغ راهنمایی را عیناً در ویرایشگر کد بچسبان و اجرا را بزن. اگر کد بلد نیستی، حالت «بلوک» همین برنامه را با کشیدن بلوک‌ها می‌سازد.
  4. برای سنسور پارک، یک سنسور اولتراسونیک، بازر و LED بگذار و کد مثال دوم را بچسبان. در حین اجرا فاصله‌ی سنسور را از پنل ویژگی‌هایش عوض کن.

دکمه‌ی «تبدیل» در مود ساده هم مدار دوبعدی‌ات را به مود آردوینو می‌برد؛ یعنی می‌توانی اول بدون کد بازی کنی و بعد همان مدار را برنامه‌نویسی کنی. هر دو مدار به شکل پروژه‌ی آماده هم هستند: چراغ راهنمایی با آردوینو و سنسور پارک با آردوینو. آردوینو اونو و نانو در تینکرکد فارسی رایگان‌اند؛ اگر می‌خواهی کدت با کامپایلر واقعی و روی تراشه‌ی شبیه‌سازی‌شده اجرا شود، «اجرای واقعی» جزو اشتراک Plus تینکرکد فارسی است. مقایسه‌ی کامل دو محیط در ووکوی یا تینکرکد؟ آمده است.

اشتباه‌های رایج سیم‌کشی در ووکوی

بیشتر مدارهایی که «کار نمی‌کنند» یکی از این اشکال‌ها را دارند. قبل از این‌که سراغ کد بروی، این فهرست را مرور کن:

  1. LED برعکس: آند (A) باید سمت پین باشد و کاتد (C) سمت GND. LED برعکس فقط خاموش می‌ماند و هیچ پیغامی نمی‌دهد.
  2. سیمی که به پایه نرسیده: اگر سیم را در جای خالیِ نزدیک پایه کلیک کنی، یک خم ساخته‌ای نه اتصال. وقتی نشانگر روی پایه است و اسم پایه ظاهر شده، کلیک کن. با جابه‌جا کردن قطعه هم معلوم می‌شود: سیم وصل همراه قطعه حرکت می‌کند.
  3. پین کد با پین مدار یکی نیست: در کد نوشته‌ای پین ۱۲ ولی سیم روی ۱۳ است. نشانگر را روی سر سیم ببر و اسم پایه را بخوان.
  4. دو پایه‌ی هم‌طرف دکمه: کلید فشاری چهار پایه دارد و پایه‌های هم‌شماره همیشه به هم وصل‌اند. اگر هر دو سیم را به پایه‌های هم‌شماره بزنی، فشار دادن دکمه هیچ چیزی را عوض نمی‌کند. یک سیم به پایه‌ای با شماره‌ی ۱ و سیم دیگر به پایه‌ای با شماره‌ی ۲ بزن.
  5. ورودی بدون pull-up: دکمه را بین پین و GND بگذار و در کد INPUT_PULLUP بنویس. ورودی شناور در برد واقعی نویز می‌خواند؛ در شبیه‌ساز ممکن است عدد ثابتی ببینی و خیال کنی مدار درست است.
  6. VCC یا GND ماژول جا افتاده: سنسورها و نمایشگرها تغذیه لازم دارند. حتی اگر شبیه‌ساز بدون آن چیزی نشان داد، مدار واقعی کار نمی‌کند؛ همیشه هر دو را وصل کن تا مدار شبیه‌سازی‌شده با مدار واقعی یکی باشد.
  7. مقاومت LED جا افتاده: در ووکوی LED بدون مقاومت هم روشن دیده می‌شود، ولی روی برد واقعی LED و حتی پین آردوینو آسیب می‌بیند. این را با مود ساده‌ی تینکرکد فارسی امتحان کن که سوختن را نشان می‌دهد.
  8. پین ۰ و ۱ اونو: این دو پین خطوط سریال (RX و TX) هستند. اگر LED یا دکمه رویشان بگذاری، با سریال مانیتور تداخل دارند.
  9. analogWrite روی پین بدون PWM: در اونو فقط پین‌های ۳، ۵، ۶، ۹، ۱۰ و ۱۱ (با علامت ~) PWM دارند. روی بقیه، نور LED فقط روشن یا خاموش است.
  10. شکاف وسط بردبورد: دو نیمه‌ی بردبورد به هم وصل نیستند. اگر دو پایه‌ی یک قطعه در یک ردیف باشند، قطعه اتصال کوتاه شده است.
  11. ولتاژ ESP32 و پیکو: این بردها با ۳٫۳ ولت کار می‌کنند. ماژولی که در مدار اونو به 5V وصل بود، این‌جا باید به 3V3 برود، مگر این‌که برگه‌ی مشخصاتش ۵ ولت بخواهد.

اگر سیم‌کشی درست بود و باز هم کار نکرد، سراغ کد آردوینو کار نمی‌کند؟ ۱۵ علت رایج برو.

مدار بعدی چه باشد؟

مدار چراغ راهنمایی را در تینکرکد فارسی باز کن 🚦

سؤال‌های رایج

در ووکوی چطور سیم بکشم؟

روی پایه‌ی اول کلیک کن، اگر خم می‌خواهی در جای خالی صفحه کلیک کن و در آخر روی پایه‌ی مقصد کلیک کن. بعد از کشیدن، با انتخاب سیم می‌توانی رنگش را عوض کنی یا پاکش کنی.

قطعه را در ووکوی چطور بچرخانم؟

قطعه را انتخاب کن و کلید R را بزن؛ هر بار ۹۰ درجه می‌چرخد. چرخش در فایل diagram.json با کلید rotate ذخیره می‌شود.

چرا LED در ووکوی بدون مقاومت هم روشن می‌شود؟

چون ووکوی بیشتر کد و منطق دیجیتال را شبیه‌سازی می‌کند و جریان را مثل یک شبیه‌ساز آنالوگ حساب نمی‌کند. در مدار واقعی LED بدون مقاومت ممکن است بسوزد؛ مود ساده‌ی تینکرکد فارسی همین سوختن را نشان می‌دهد.

مداری که در ووکوی ساختم بدون ثبت‌نام ذخیره می‌شود؟

نه. برای ذخیره در wokwi.com باید وارد حساب شوی. اگر حساب نداری، دست‌کم محتوای sketch.ino و diagram.json را کپی کن و جایی نگه دار. در شبیه‌ساز فارسی مدار بدون ثبت‌نام روی همان دستگاه ذخیره می‌شود.

مقاله‌های مرتبط

🔬

شبیه‌سازی مدار در ووکوی: دقیقاً چه چیزی شبیه‌سازی می‌شود؟ (Circuit Simulation in Wokwi)

🔌

۴۰ مدار آردوینو برای ووکوی، با اسم فارسی و انگلیسی و قطعه‌های diagram.json

🎓

درس مدار با ووکوی: سرفصل ۲۰ جلسه‌ای از اولین LED تا اینترنت اشیا

⚖️

ESP32 یا آردوینو اونو؟ مقایسه برای شروع

همه‌ی آموزش‌های مدار و شبیه‌سازی مدار ← · همه‌ی مقاله‌ها