⏲️ مدار تایمر با ۵۵۵ (Monostable Timer) — از تایمر ۱۰ ثانیه تا تایمر آردوینو

چراغ راه‌پله‌ای که بعد از چند ده ثانیه خودش خاموش می‌شود، دست‌خشک‌کنی که چند ثانیه کار می‌کند و بعد ساکت می‌شود، زنگ مسابقه‌ای که ۱۰ ثانیه به هر تیم وقت می‌دهد؛ همه یک کار را انجام می‌دهند: با یک فرمان روشن می‌شوند و بعد از زمان مشخص خودشان برمی‌گردند. این کار مدار تایمر با ۵۵۵ است که به آن مدار تاخیر (Delay Circuit) یا مدار یک‌ضرب (One-Shot) هم می‌گویند. در این راهنما تایمر مونواستابل را قطعه‌به‌قطعه می‌سازیم، فرمول T = 1.1RC را با عدد حل می‌کنیم، خروجی را به LED، بازر و رله می‌دهیم، آن را در شبیه‌ساز تینکرکد فارسی امتحان می‌کنیم و در آخر یک تایمر دقیق‌تر با آردوینو و millis() می‌نویسیم.

سه حالت کار آی‌سی ۵۵۵

آی‌سی ۵۵۵ با سیم‌کشی‌های مختلف سه رفتار کاملاً متفاوت دارد. اسم هر حالت می‌گوید چند «حالت پایدار» دارد:

حالتEnglishحالت پایداررفتارمدار معروف
آستابلAstableهیچخودش مدام روشن و خاموش می‌شودمدار چشمک‌زن ۵۵۵
مونواستابلMonostableیکی (خاموش)با یک تریگر برای مدت T روشن می‌شود و برمی‌گرددمدار تایمر (همین مقاله)
بای‌استابلBistableدو تابا یک دکمه روشن و با دکمه‌ی دیگر خاموش می‌ماند؛ مثل حافظهقفل مدار دزدگیر ساده

قطعه‌های مدار تایمر ۱۰ ثانیه (Parts List)

#قطعهEnglishمقدارکارش
۱آی‌سی تایمر ۵۵۵555 Timer ICNE555زمان را می‌سنجد
۲مقاومت زمان‌بندی RTiming Resistor۹۱ کیلواهمسرعت شارژ خازن را تعیین می‌کند
۳خازن زمان‌بندی CTiming Capacitor۱۰۰ میکروفاراد، ۱۶ ولتبا شارژ شدنش زمان را می‌شمارد
۴مقاومت بالاکش تریگرPull-Up Resistor۱۰ کیلواهمپایه‌ی ۲ را در حالت عادی بالا نگه می‌دارد
۵کلید فشاری شروعStart Push Buttonیک عددتریگر؛ پایه‌ی ۲ را لحظه‌ای به منفی وصل می‌کند
۶کلید فشاری لغو (اختیاری)Cancel / Reset Buttonیک عدد + مقاومت ۱۰ کیلواهمزمان را وسط کار تمام می‌کند
۷خازن پایه‌ی ۵Control Voltage Capacitor۱۰ نانوفارادضدنویز
۸LED + مقاومت ۳۳۰ اهمLED + Resistorیک عددنشانگر «زمان در جریان است»
۹بازر یا رلهBuzzer / Relayاختیاریخروجی صدادار یا راه‌اندازی بار بزرگ
۱۰دیود هرزگردFlyback Diode1N4007 یا 1N4148فقط با رله؛ از آی‌سی محافظت می‌کند
۱۱باتری ۹ ولت9V Batteryیک عددتغذیه

سیم‌کشی تایمر مونواستابل

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

پایهاسموصل بهچرا
۸تغذیه (VCC)مثبت باتریبرق آی‌سی
۱زمین (GND)منفی باتریمرجع همه‌ی ولتاژها
۴ریست (Reset)مثبت (یا از راه ۱۰ کیلواهم به مثبت، با دکمه‌ی لغو به منفی)تا صفر نشده، آی‌سی کار می‌کند
۲تریگر (Trigger)از راه ۱۰ کیلواهم به مثبت؛ دکمه‌ی شروع بین پایه‌ی ۲ و منفیفشار دکمه = شروع زمان
۶ و ۷آستانه و تخلیه (Threshold, Discharge)به هم وصل؛ مقاومت R از مثبت به این نقطه و خازن C از این نقطه به منفیخازن از راه R شارژ و از راه پایه‌ی ۷ تخلیه می‌شود
۵ولتاژ کنترل (CV)خازن ۱۰ نانوفاراد به منفیضدنویز
۳خروجی (Output)مقاومت ۳۳۰ اهم و LED به منفی (یا بازر یا رله)در مدت T بالا می‌ماند

تایمر چطور کار می‌کند؟ (How It Works)

  1. حالت آماده (Idle): مقاومت بالاکش پایه‌ی ۲ را روی ۹ ولت نگه می‌دارد. خروجی پایین است و ترانزیستور تخلیه‌ی پایه‌ی ۷ خازن را اتصال کوتاه کرده، پس ولتاژ خازن صفر است. مدار می‌تواند تا ابد در این حالت بماند؛ این همان «حالت پایدار» است.
  2. فشار دکمه: پایه‌ی ۲ به منفی وصل می‌شود و ولتاژش از یک‌سوم تغذیه (۳ ولت) پایین‌تر می‌رود. مقایسه‌گر ماشه فلیپ‌فلاپ را روشن می‌کند: خروجی بالا می‌رود، LED روشن می‌شود و پایه‌ی ۷ خازن را رها می‌کند.
  3. شمارش زمان: خازن از راه R شارژ می‌شود و ولتاژش طبق منحنی V = 9 × (1 − e^(−t/RC)) بالا می‌رود. دکمه را ول کرده‌ای و دیگر کاری با آن نداریم.
  4. پایان: وقتی ولتاژ خازن به دوسوم تغذیه (۶ ولت) رسید، مقایسه‌گر آستانه فلیپ‌فلاپ را خاموش می‌کند. خروجی پایین می‌آید و پایه‌ی ۷ خازن را در یک لحظه خالی می‌کند. مدار به حالت آماده برگشته است.

ضریب ۱٫۱ از این‌جا می‌آید: خازنی که از صفر شارژ می‌شود، برای رسیدن به دوسوم ولتاژ تغذیه RC × ln 3 ≈ 1.0986 × RC ثانیه وقت می‌خواهد. نکته‌ی جالب این است که ولتاژ باتری در فرمول نیست؛ تایمر با ۶ ولت و ۱۲ ولت تقریباً همان زمان را می‌دهد، چون هم سرعت شارژ و هم آستانه‌ی دوسوم با ولتاژ تغذیه بالا و پایین می‌روند.

دو رفتار را از قبل بدان: اگر وسط زمان دوباره دکمه را بزنی، زمان از اول شروع نمی‌شود (این تایمر «بازتریگرپذیر» نیست). و اگر دکمه را بیشتر از T نگه داری، خروجی تا وقتی دکمه را ول نکرده‌ای بالا می‌ماند.

فرمول T = 1.1 × R × C و مثال عددی

T = 1.1 × R × C — مقاومت بر حسب اهم، خازن بر حسب فاراد و جواب بر حسب ثانیه.

مثال: طراحی تایمر ۱۰ ثانیه

  1. یک خازن رایج انتخاب کن: C = 100 µF = 0.0001 F.
  2. فرمول را برای R حل کن: R = T / (1.1 × C) = 10 / (1.1 × 0.0001) ≈ 90909 اهم.
  3. نزدیک‌ترین مقدار استاندارد ۹۱ کیلواهم است: T = 1.1 × 91000 × 0.0001 ≈ 10.01 s.

همین حساب برای زمان‌های دیگر:

زمان دلخواهRCزمان حساب‌شده
۱ ثانیه۹۱ کیلواهم۱۰ میکروفاراد۱٫۰ ثانیه
۵ ثانیه۴۷ کیلواهم۱۰۰ میکروفاراد۵٫۲ ثانیه
۱۰ ثانیه۹۱ کیلواهم۱۰۰ میکروفاراد۱۰٫۰ ثانیه
۳۰ ثانیه۲۷۰ کیلواهم۱۰۰ میکروفاراد۲۹٫۷ ثانیه
۱ دقیقه۵۶۰ کیلواهم۱۰۰ میکروفاراد۶۱٫۶ ثانیه
حدود ۲ دقیقه۱ مگااهم۱۰۰ میکروفاراد۱۱۰ ثانیه
قابل تنظیم۱۰ کیلواهم + پتانسیومتر ۱ مگااهم۱۰۰ میکروفاراد۱٫۱ تا حدود ۱۱۱ ثانیه

حاصل‌ضرب R × C را ماشین‌حساب ثابت زمانی RC برایت حساب می‌کند؛ کافی است جوابش را در ۱٫۱ ضرب کنی. یادت باشد خازن الکترولیتی تا ۲۰ درصد با عدد رویش فرق دارد؛ تایمر ۱۰ ثانیه‌ای واقعی ممکن است ۸ یا ۱۲ ثانیه کار کند. اگر عدد دقیق می‌خواهی، یک مقاومت ثابت کوچک‌تر با یک پتانسیومتر تریم سری کن و با کرنومتر تنظیمش کن. برای این‌که بفهمی خازن چرا این‌طور شارژ می‌شود، مقاله‌ی خازن به چه دردی می‌خورد را بخوان.

خروجی تایمر: LED، بازر یا رله

LED

ساده‌ترین خروجی: پایه‌ی ۳ ← مقاومت ۳۳۰ اهم ← LED ← منفی. خروجی بالای NE555 روی ۹ ولت حدود ۷٫۳ ولت است، پس جریان یک LED قرمز حدود ۱۶ میلی‌آمپر می‌شود.

بازر

یک بازر اکتیو (Active Buzzer) را مستقیم بین پایه‌ی ۳ و منفی بگذار؛ در تمام مدت T صدا می‌دهد. این برای «زمان هنوز تمام نشده» خوب است، مثلاً تایمر مسواک. ولی اگر می‌خواهی بازر در پایان زمان بوق بزند، یا باید یک ۵۵۵ دوم را با لبه‌ی پایین‌رونده‌ی خروجی تریگر کنی، یا از نسخه‌ی آردوینو استفاده کنی که پایین‌تر آمده و این کار را با یک خط کد انجام می‌دهد.

رله (Relay)

برای روشن کردن یک لامپ، پنکه یا پمپ کوچک، خروجی را به سیم‌پیچ یک رله بده و بار را با کنتاکت‌های رله جدا وصل کن:

همین نسخه‌ی رله‌ای را در شبیه‌ساز امتحان کردیم: با R = ۴۷ کیلواهم و C = ۱۰۰ میکروفاراد، رله حدود ۵ ثانیه وصل ماند و LEDی که روی کنتاکت NO بود هم‌زمان روشن و خاموش شد.

دکمه‌ی لغو و روشن شدن ناخواسته

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

همه‌ی قطعه‌های این مدار در مود ساده‌ی شبیه‌ساز هست. نمونه‌ی آماده‌ی مونواستابل نداریم، پس این بار خودت می‌بندی؛ دقیقاً همان کاری که روی بردبورد واقعی می‌کنی:

  1. شبیه‌ساز را باز کن، مود ساده را انتخاب کن و یک باتری ۹ ولت، یک «تایمر 555»، سه مقاومت، یک خازن، یک کلید فشاری و یک LED بگذار.
  2. مقاومت‌ها را روی ۴۷ کیلواهم، ۱۰ کیلواهم و ۳۳۰ اهم تنظیم کن و ظرفیت خازن را در پنل تنظیمات ۱۰۰ میکروفاراد بگذار.
  3. سیم‌کشی جدول بالا را انجام بده: پایه‌ی ۸ و ۴ به مثبت، ۱ به منفی، ۶ و ۷ به هم، ۴۷ کیلواهم از مثبت به ۶، خازن از ۶ به منفی، ۱۰ کیلواهم از مثبت به ۲، دکمه بین ۲ و منفی، و پایه‌ی ۳ از راه ۳۳۰ اهم به LED.
  4. ▶ را بزن، دکمه را کوتاه فشار بده و ول کن. LED حدود ۵ ثانیه روشن می‌ماند؛ ما ۵٫۱ ثانیه اندازه گرفتیم و فرمول ۵٫۲ ثانیه می‌گوید.
  5. مقاومت ۴۷ کیلواهم را ۹۱ کیلواهم کن تا تایمر ۱۰ ثانیه‌ای بسازی، یا LED را با «بازر زنگی» عوض کن.

یک نکته‌ی شبیه‌ساز: اگر وسط شمارش مقدار یک قطعه را عوض کنی، مدار از اول راه‌اندازی می‌شود. پس اول مقدارها را تنظیم کن، بعد اجرا کن و دکمه را بزن. اگر هنوز با شارژ خازن راحت نیستی، اول درس خازن: باتری فسقلی و نمونه‌ی محو شدن آرام را ببین؛ دومی یک تاخیر خاموش شدن (Delay-Off) فقط با خازن است و پایه‌ی فکری همین تایمر است. و اگر هنوز با آی‌سی ۵۵۵ کار نکرده‌ای، از نمونه‌ی چشمک‌زن ۵۵۵ شروع کن.

تایمر ۵۵۵ را در شبیه‌ساز ببند ⏲️

تایمر آردوینو با millis() (Arduino Timer)

همین تایمر را با آردوینو هم می‌شود ساخت، با چند امتیاز: زمان خیلی دقیق‌تر است (دیگر خطای ۲۰ درصدی خازن نداریم)، با یک پتانسیومتر از ۱ تا ۳۰ ثانیه تنظیم می‌شود، در پایان بوق می‌زند و زمان باقی‌مانده را در سریال مانیتور نشان می‌دهد. خروجی، یک ماژول رله است که همان کار پایه‌ی ۳ را می‌کند.

قطعهپایه‌ی قطعهوصل به آردوینو
کلید فشاری (شروع و لغو)یک پایه / پایه‌ی قطریپین ۲ / GND
پتانسیومتردو سر کناری / وسط5V و GND / A0
LED + مقاومت ۲۲۰ اهمآند (از راه مقاومت) / کاتدپین ۸ / GND
بازر پسیو+ / −پین ۹ / GND
ماژول رلهVCC / GND / IN5V / GND / پین ۷
// تایمر آردوینو با millis — نسخه‌ی کدی مدار تایمر ۵۵۵
const int BUTTON = 2;    // دکمه‌ی شروع و لغو، به GND
const int RELAY  = 7;    // پایه‌ی IN ماژول رله
const int LED    = 8;    // LED وضعیت با مقاومت 220 اهم
const int BUZZER = 9;    // بازر برای بوق پایان
const int POT    = A0;   // پتانسیومتر تنظیم زمان (1 تا 30 ثانیه)

bool running = false;
unsigned long startTime = 0;
unsigned long duration = 10000;   // میلی‌ثانیه
unsigned long lastPrint = 0;
int lastButton = HIGH;

void startTimer() {
  int seconds = map(analogRead(POT), 0, 1023, 1, 30);
  duration = seconds;             // اول خود عدد ثانیه
  duration = duration * 1000;     // بعد تبدیل به میلی‌ثانیه
  startTime = millis();
  lastPrint = startTime;
  running = true;
  digitalWrite(RELAY, HIGH);      // مثل بالا رفتن پایه‌ی ۳
  digitalWrite(LED, HIGH);
  Serial.print("Start: ");
  Serial.print(seconds);
  Serial.println(" s");
}

void stopTimer() {
  running = false;
  digitalWrite(RELAY, LOW);
  digitalWrite(LED, LOW);
  tone(BUZZER, 2000, 400);        // بوق پایان
  Serial.println("Time is up!");
}

void setup() {
  pinMode(BUTTON, INPUT_PULLUP);
  pinMode(RELAY, OUTPUT);
  pinMode(LED, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  Serial.begin(9600);
  Serial.println("Timer ready");
}

void loop() {
  int b = digitalRead(BUTTON);
  if (b == LOW && lastButton == HIGH) {   // لحظه‌ی فشار دادن
    if (running) {
      running = false;                    // لغو؛ مثل پایه‌ی ریست ۵۵۵
      digitalWrite(RELAY, LOW);
      digitalWrite(LED, LOW);
      Serial.println("Canceled");
    } else {
      startTimer();
    }
    delay(30);                            // لرزش دکمه
  }
  lastButton = b;

  if (running) {
    unsigned long elapsed = millis() - startTime;
    if (elapsed >= duration) {
      stopTimer();
    } else if (millis() - lastPrint >= 1000) {
      lastPrint = millis();
      Serial.print("Left: ");
      Serial.println((duration - elapsed + 999) / 1000);   // گرد به بالا
    }
  }
}

سه نکته در این کد هست که در هر تایمر آردوینویی به کارت می‌آید:

این کد در مود آردوینوی شبیه‌ساز با برد اونو و قطعه‌های پایه رایگان اجرا می‌شود. برای تمرین بیشتر، نمونه‌ی چند کار هم‌زمان و درس کرنومتر دقیق با millis را ببین. اگر می‌خواهی زمان باقی‌مانده روی نمایشگر بیاید، تایمر معکوس با TM1637 همین ایده را روی نمایشگر چهاررقمی پیاده کرده است؛ ماژول TM1637 جزو قطعه‌های اشتراک Plus است.

۵۵۵ یا آردوینو برای تایمر؟

موضوعتایمر ۵۵۵تایمر آردوینو
دقتحدود ۲۰٪ به خاطر خازنخیلی دقیق‌تر
بیشترین زمان عملیچند دقیقهساعت‌ها و روزها
تنظیم زمانعوض کردن R یا C، یا پتانسیومتریک عدد در کد یا پتانسیومتر
بوق در پایان، شمارش معکوس، نمایشگرقطعه‌ی اضافه لازم داردچند خط کد
سادگیچند قطعه‌ی ارزان، بدون برنامه‌نویسیبرد آردوینو و کد

انواع مدار تایمر (Variations)

#اسم فارسیEnglishایده
۱تایمر ۵۵۵ ساده555 Monostable Timerهمین مدار: یک فشار، T ثانیه روشن
۲تایمر قابل تنظیمAdjustable 555 Timerپتانسیومتر سری با یک مقاومت ثابت به‌جای R
۳تایمر چراغ راه‌پلهStaircase Light Timerچند دکمه‌ی موازی در طبقه‌ها، یک رله برای لامپ
۴تاخیر در خاموش شدنDelay-Off Timerخازنی که بعد از ول کردن دکمه، ترانزیستور را کمی روشن نگه می‌دارد
۵تاخیر در روشن شدنDelay-On / Power-On Delayبار چند ثانیه بعد از وصل شدن برق روشن می‌شود
۶تایمر رله‌ای555 Relay Timerخروجی به رله برای لامپ یا پنکه
۷تایمر معکوس با نمایشگرCountdown Timer with Displayآردوینو + نمایشگر هفت‌قسمتی یا TM1637
۸کرنومترStopwatchبرعکس تایمر: زمان را از صفر می‌شمارد؛ نمونه‌ی کرنومتر
۹تایمر طولانی با CD4060Long-Duration Timer (CD4060)یک نوسان‌ساز و شمارنده‌ی ۱۴ مرحله‌ای برای زمان‌های چندساعته
۱۰تایمر آردوینوArduino millis() Timerکد همین مقاله

اشتباه‌های رایج

نکته‌های ایمنی

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

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

فرمول زمان تایمر 555 چیست؟

در حالت مونواستابل، خروجی به اندازه‌ی T = 1.1 × R × C ثانیه روشن می‌ماند؛ R بر حسب اهم و C بر حسب فاراد. با R برابر 91 کیلواهم و C برابر 100 میکروفاراد زمان حدود 10 ثانیه می‌شود.

چرا تایمر 555 با وصل کردن باتری خودش یک بار روشن می‌شود؟

بعضی آی‌سی‌ها در لحظه‌ی وصل شدن برق یک تریگر ناخواسته می‌گیرند. پایه‌ی 4 را با یک مقاومت 10 کیلواهم به مثبت و با یک خازن کوچک (حدود 1 تا 10 میکروفاراد) به منفی وصل کن تا آی‌سی در لحظه‌ی اول ریست بماند.

حداکثر زمان تایمر 555 چقدر است؟

با مقاومت حدود 1 مگااهم و خازن 100 میکروفاراد به حدود 2 دقیقه می‌رسی. بیشتر از چند دقیقه، جریان نشتی و خطای 20 درصدی خازن الکترولیتی زمان را نامطمئن می‌کند؛ برای زمان‌های طولانی آردوینو یا آی‌سی شمارنده‌ای مثل CD4060 بهتر است.

فرق تایمر مونواستابل و آستابل چیست؟

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

چطور با تایمر 555 یک لامپ یا موتور را روشن کنم؟

خروجی پایه‌ی 3 را به سیم‌پیچ یک رله بده و یک دیود هرزگرد موازی سیم‌پیچ بگذار؛ کنتاکت رله مدار لامپ یا موتور را جدا وصل می‌کند. کار با برق 220 ولت فقط باید توسط یک فرد متخصص و داخل جعبه‌ی ایمن انجام شود.

مقاله‌های دیگر

💫

مدار چشمک‌زن با آی‌سی ۵۵۵ (555 LED Flasher / Astable)

🧲

مدار رله (Relay Driver): راه‌اندازی رله با ترانزیستور و آردوینو

⏰

چرا delay برنامه‌ات را خراب می‌کند — و millis چطور نجاتش می‌دهد