🔌 ماژول رله با آردوینو: روشن و خاموش کردن یک مدار جدا، با نکات ایمنی

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

آردوینو از هر پایه فقط ۵ ولت و جریانی کم می‌دهد؛ برای یک LED کافی است، ولی برای یک پمپ آب ۱۲ ولتی، نوار LED یا فن، نه. این‌جا ماژول رله به کار می‌آید: یک کلید برقی که آردوینو آن را می‌زند و خود کلید یک مدار کاملاً جدا را وصل و قطع می‌کند. در این آموزش رله با آردوینو را قدم‌به‌قدم راه می‌اندازیم: طرز کارش، پایه‌ها، سیم‌کشی امن با باتری، کد کامل و یک چراغ خودکار.

⚠️ هشدار ایمنی مهم: روی خیلی از رله‌ها نوشته «10A 250VAC»، یعنی می‌توانند برق شهر را قطع و وصل کنند. ولی برق ۲۲۰ ولت پریز کشنده است و حتی یک لمس کوتاه می‌تواند جان آدم را بگیرد. پشت ماژول رله، لحیم‌ها و مسیرهای مسی لخت‌اند و هیچ محافظی ندارند. اگر نوجوانی یا تجربه‌ی برق‌کاری نداری: هرگز رله را به پریز، لامپ خانه یا هر وسیله‌ای که به پریز وصل می‌شود نزن. همه‌ی تمرین‌ها را با باتری یا آداپتور ۵ تا ۱۲ ولت انجام بده. اگر پروژه‌ات واقعاً برق شهر لازم دارد، طراحی را خودت انجام بده و سیم‌کشی را به یک برق‌کار بزرگسال بسپار که آن را داخل جعبه‌ی بسته و با فیوز ببندد. مقاله‌ی ایمنی الکترونیک برای بچه‌ها را هم بخوان.

رله چطور کار می‌کند؟

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

سیم‌پیچ رله‌ی ۵ ولتی حدود ۷۰ میلی‌آمپر می‌کشد که برای پایه‌ی آردوینو زیاد است. برای همین ماژول رله یک ترانزیستور، یک دیود محافظ (برای ولتاژ برگشتی سیم‌پیچ) و یک LED نشانگر دارد و بعضی‌ها یک اپتوکوپلر هم دارند. تو فقط پایه‌ی IN را با یک پایه‌ی دیجیتال فرمان می‌دهی.

پایه‌های ماژول رله

سمتپایهکار
فرمانVCC۵ ولت آردوینو
فرمانGNDزمین آردوینو
فرمانINسیگنال از یک پایه‌ی دیجیتال
بارCOMمشترک؛ تیغه‌ی متحرک
بارNONormally Open؛ فقط وقتی رله فعال است به COM وصل می‌شود
بارNCNormally Closed؛ وقتی رله غیرفعال است به COM وصل است

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

ازبهتوضیح
VCC رله5V آردوینو—
GND رلهGND آردوینو—
IN رلهD7فرمان روشن/خاموش
دکمهD2 و GNDبا INPUT_PULLUP مقاومت نمی‌خواهد
مثبت باتری ۹ ولتCOM رلهمدار بار جداست
NO رلهمقاومت، بعد پایه‌ی بلند LEDیا پایه‌ی مثبت فن
پایه‌ی کوتاه LEDمنفی باتریبه GND آردوینو وصل نمی‌شود

کد کامل: دکمه‌ای که رله را روشن و خاموش می‌کند

// Relay module: a push button toggles a separate low-voltage load.
const int RELAY = 7;
const int BUTTON = 2;
const bool ACTIVE_LOW = false;   // true if your module switches ON with LOW

bool relayOn = false;
bool wasPressed = false;

void setRelay(bool on) {
  relayOn = on;
  if (ACTIVE_LOW) {
    digitalWrite(RELAY, on ? LOW : HIGH);
  } else {
    digitalWrite(RELAY, on ? HIGH : LOW);
  }
  Serial.println(on ? "Relay ON" : "Relay OFF");
}

void setup() {
  Serial.begin(9600);
  setRelay(false);              // write the OFF level first...
  pinMode(RELAY, OUTPUT);       // ...then make the pin an output: no click at start-up
  pinMode(BUTTON, INPUT_PULLUP);
}

void loop() {
  bool pressed = digitalRead(BUTTON) == LOW;
  if (pressed && !wasPressed) {
    setRelay(!relayOn);         // each press flips the relay
  }
  wasPressed = pressed;
  delay(30);                    // simple debounce
}

توضیح بخش‌های مهم

💡 رله کلید مکانیکی است و عمر محدودی دارد (معمولاً حدود صد هزار بار قطع و وصل). هیچ‌وقت با analogWrite یا PWM به آن فرمان نده؛ برای کم و زیاد کردن سرعت موتور ترانزیستور یا ماسفت لازم است، نه رله.

پروژه‌ی کوچک: چراغ خودکار شب با LDR

یک نوار LED دوازده‌ولتی که خودش با تاریک شدن هوا روشن می‌شود. یک مقاومت نوری (LDR) را از 5V به A0 و یک مقاومت ۱۰ کیلو از A0 به GND بگذار. نوار LED با آداپتور ۱۲ ولت خودش از راه COM و NO رله تغذیه می‌شود.

// Automatic night lamp: an LDR on A0 switches a 12 V LED strip via the relay.
const int RELAY = 7;
const int LDR = A0;
const int DARK = 300;     // below this: turn the lamp on
const int BRIGHT = 400;   // above this: turn it off (the gap is the hysteresis)

bool lampOn = false;

void setup() {
  Serial.begin(9600);
  digitalWrite(RELAY, LOW);
  pinMode(RELAY, OUTPUT);
}

void loop() {
  int light = analogRead(LDR);   // more light = bigger number
  Serial.println(light);

  if (!lampOn && light < DARK) {
    lampOn = true;
    digitalWrite(RELAY, HIGH);
  } else if (lampOn && light > BRIGHT) {
    lampOn = false;
    digitalWrite(RELAY, LOW);
  }
  delay(200);
}

چرا دو عدد (۳۰۰ و ۴۰۰) و نه یکی؟ غروب، نور آرام‌آرام کم می‌شود و دور یک عدد می‌لرزد. با یک آستانه، رله پشت سر هم روشن و خاموش می‌شود و زود خراب می‌شود. فاصله‌ی بین دو عدد، که به آن هیسترزیس می‌گویند، این لرزش را حذف می‌کند. عددها را با دیدن مقدارهای سریال مانیتور برای اتاق خودت تنظیم کن. جزئیات LDR در سنسور نور LDR با آردوینو آمده است.

اجرا در شبیه‌ساز

رله روی آردوینو Uno در تینکرکد فارسی رایگان است و جای خیلی خوبی برای تمرین بی‌خطر است. مثال آماده‌ی رله و چراغ جدا دقیقاً همین ایده است: آردوینو با رله یک LED را که با باتری ۹ ولت جدا تغذیه می‌شود روشن و خاموش می‌کند. درس رله: کلید برقی بزرگ آن را قدم‌به‌قدم توضیح می‌دهد و برای فهمیدن فرق NO و NC، مدار بدون کد رله در حالت NC را ببین. اگر رله کار نکرد، دکمه‌ی «چرا کار نمی‌کند؟» سیم‌کشی را برایت بررسی می‌کند.

اشکال‌های رایج

رله را با یک سنسور ترکیب کن: آبیاری خودکار با سنسور رطوبت خاک با رله یک پمپ کوچک را روشن می‌کند و سنسور حرکت PIR می‌تواند چراغ راه‌پله را راه بیندازد. همه‌ی آموزش‌های ماژول‌ها در بخش سنسورها است.

رله را بی‌خطر در شبیه‌ساز امتحان کن 🔌

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

NO و NC در رله یعنی چه؟

NO یعنی «معمولاً باز»: تا رله فعال نشود، مدار قطع است. NC یعنی «معمولاً بسته»: تا رله فعال نشود، مدار وصل است. COM پایه‌ی مشترک بین این دوست.

چرا رله‌ی من با LOW روشن می‌شود؟

بسیاری از ماژول‌های رله Active Low هستند؛ یعنی با LOW روی پایه‌ی IN فعال می‌شوند. در کد کافی است HIGH و LOW را جابه‌جا کنی یا جامپر H/L روی ماژول را عوض کنی.

می‌توانم با رله لامپ ۲۲۰ ولت را روشن کنم؟

نه، اگر نوجوانی یا تجربه‌ی برق‌کاری نداری. برق شهر کشنده است. با باتری و آداپتور ۵ تا ۱۲ ولت تمرین کن و کار با برق شهر را فقط به یک برق‌کار بزرگسال بسپار.

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

📡

کنترل آردوینو با ریموت کنترل مادون قرمز (IRremote نسخه‌ی جدید)

🟥

ماتریس LED ۸×۸ با MAX7219 و آردوینو: شکلک، انیمیشن و تاس الکترونیکی

🖥️

راه‌اندازی نمایشگر OLED SSD1306 با آردوینو و کتابخانه‌ی Adafruit

🐞

ارورهای رایج آردوینو و معنی‌شان: از was not declared in this scope تا avrdude

همه‌ی آموزش‌های سنسورها و ماژول‌ها ← · همه‌ی مقاله‌ها