اتصال رله به میکرو با ترانزیستور

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

آشنایی با رله :

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

شماتیک رله در اتصال رله به میکرو با ترانزیستور

تا اینجا با رله آشنا شدیم و احتمالا این سوال براتون پیش اومده که این قطعه چه مزایا و کاربردهایی دارد؟ و چرا به یکی از پرکاربردترین قطعات الکترونیک تبدیل شده است ؟

  • یکی از مهم ترین مزایا رله این است که برای فعال شدن،اغلب به ولتاژ کوچکی نیازمند است. با این وجود این قطعه توانایی کنترل جریان های بزرگ را نیز دارد.
  • کنترل از راه دور نیز یکی مزایا جذاب رله ها است که به ما در هوشمند سازی کمک بسیاری می نماید.
  • اگر به تصویر زیر دقت کنید، خواهید دید که رله یک بخش مغناطیسی نیز دارد. این بخش  مدار الکترونیکی فرمان را از قدرت با جریان ها بالا  ایزوله می کند. در نتیجه در کاربرد هایی مانند محافظت از مدار، وجود رله بسیار مفید خواهد بود.

 

ساختار داخلی رله در اتصال رله به میکرو با ترانزیستور

فراموش نکنید که رله ها هم مانند هر قطعه دیگری کاملا بی عیب و نقص نیستند و در کنار تمام این مزایا، معایبی نیز دارند.این معایب عبارتند از:

 

  • اگر تعداد دفعات قطع و وصل برق در پروژه تان به هزاران یا میلیون ها بار در ثانیه می رسد، بهتر است از رله استفاده نکنید! زیرا رله ها قطعات بسیار کندی هستند. در نتیجه نمی توان با استفاده از رله فرکانس های برق (فرکانس های بالا چند کیلو هرتز یا مگاهرتز) بالا را قطع و وصل نمود.

 

  • ابدا از رله قطعه در محیط هایی که گاز های مشتعل شونده☠️، مواد شیمیایی منفجره  و مواد حساس به الکتریسیته وجود دارند،استفاده نکنید. زیرا در زمان تغییر وضعیت  رله،ممکن است جرقه تولید شود، در نتیجه استفاده از این قطعه در اماکن ذکر شده بسیار خطرناک است .

وسایل مورد نیاز در اتصال رله به میکرو با ترانزیستور :

[icon name=”key” style=”solid” class=”” unprefixed_class=””] رله

[icon name=”key” style=”solid” class=”” unprefixed_class=””] تعدادی سیم بربرد

[icon name=”key” style=”solid” class=”” unprefixed_class=””] یک برد برد

[icon name=”key” style=”solid” class=”” unprefixed_class=””] یک میکرو که ما atmega32 استفاده کردیم

[icon name=”key” style=”solid” class=”” unprefixed_class=””] ترانزیستور C945 یا bd139

[icon name=”key” style=”solid” class=”” unprefixed_class=””] یک دیود معمولی(1n4007)

 

 

[icon name=”key” style=”solid” class=”” unprefixed_class=””] رله:

تصویر Relay در آموزش راه انداز رله با ترانزیستور

تصویر Relay-Pin در آموزش راه انداز رله با ترانزیستور

 

[icon name=”key” style=”solid” class=”” unprefixed_class=””] ترانزیستور:

ترانزیستور C945 یک  ترانزیستور از نوع NPN است. و همان طور که در تصویر می بینید، این ترانزیستور هم مانند سایر ترانزیستور ها از 3 بخش اصلی به نام های امیتر، کلکتور و بیس تشکیل شده است!

 

circuit

علت استفاده از ترانزیستور C945 :

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

[icon name=”star-half-o” class=”” unprefixed_class=””] شما می توانید از هر ترانزیستور NPN دیگری نیز استفاده کنید.

اما برای اتصال رله به میکرو با ترانزیستور ما نمی توانیم فقط از رله و ترانزیستور استفاده نماییم و برای این کار به یک مدار راه انداز یا درایور رله نیز نیاز داریم. این مدار در اصل یک ترانزیستور در حالت سوئیچینگ تشکیل شده است! اگر به شکل نگاه کنید،خواهید دید که این مدار به جز رله و ترانزیستور C945 از دو قطعه دیگر نیز تشکیل شده است. این دو قطعه عبارتند از:

  • مقاومت 10 کیلو اهم
  • دیود 1N4007

C945 در اتصال رله به میکرو با ترانزیستور

[icon name=”star-half-o” class=”” unprefixed_class=””] I/O PIN OF uc به پین PORTB.0 میکرو متصل می شود.

 

[icon name=”key” style=”solid” class=”” unprefixed_class=””] دیود 1N4007:

تصویر 1N4007-Pinout در آموزش راه انداز رله با ترانزیستور

 

icon name=”star-half-o” class=”” unprefixed_class=””] دیود 1N4007، یک دیود هرزگرد ( ضربه گیر )است که ما از آن برای حذف ولتاژ القایی حاصل از بارهای سلف رله استفاده می‌کنیم.

 

 

نحوه اتصالات در اتصال رله به میکرو با ترانزیستور :

 

[su_table responsive=”yes”]

base ترانزیستور این پایه با یک مقاومت 10 کیلو به  PORTB.0 میکرو متصل می شود.
collector ترانزیستور این پایه را به محل اتصال پایه ( + ) دیود و منفی رله، متصل میکنیم .
emitter ترانزیستور به GND متصل می کنیم.
VCC مثبت مدار را به محل اتصال پایه ( – ) دیود و مثبت رله متصل میکنیم .

[/su_table]

icon name=”star-half-o” class=”” unprefixed_class=””] برای درک بهتر جدول به شکل مدار مجددا مراجعه نمایید.

نحوه عملکرد پروژه:

با 1 کردن پین PORTB.0 میکرو ، ترانزیستور فعال شده و باعث فعال شدن رله می شود. همچنین با صفر کردن پین PORTB.0 میکرو، ترانزیستور غیرفعال می شود و در نتیجه رله نیز غیر فعال است. دیود D1 یک دیود هرزگرد یا ضربه گیر است که به منظور حذف ولتاژ القایی حاصل از بارهای سلفی استفاده می‌شود.

icon name=”star-half-o” class=”” unprefixed_class=””] با هر بار قطع و وصل شدن مدار، یک صدای تیک تاک به گوش می رسد.

 

دستورات:

[icon name=”circle-o” class=”” unprefixed_class=””] دستور:

#include <mega32.h>

با این دستور توابع میکروکنترلر Atmega32 را به برنامه فرا می خوانیم.

#include <mega32.h>

 

 

[icon name=”circle-o” class=”” unprefixed_class=””] دستور:

#include <delay.h>

با این دستور تابع تاخیر، که وظیفه اش ایجاد وقفه بین زمان روشن و خاموش کردن پایه است, رابه برنامه فرامی خوانیم.

#include <delay.h>
void main(void)
{
//تابع main

 

 

[icon name=”circle-o” class=”” unprefixed_class=””] دستور:

DDRB.0=1;

با این دستوربیت هفتم پورت D را خروجی میکنیم.

 DDRB.0=1;

 

[icon name=”circle-o” class=”” unprefixed_class=””] دستور:

while (1)
{

این دستور یک حلقه همیشه درسته چون شرط حلقه یک عدد.

که ما دستوراتی که می خواهیم دائما جرا شود را داخل آن می نویسیم

while (1)
      {

 

[icon name=”circle-o” class=”” unprefixed_class=””] دستور:

PORTB.0=1;

با این دستور بیت هفتم پورت D را روشن میکنیم.

PORTB.0=1;

 

[icon name=”circle-o” class=”” unprefixed_class=””] دستور:

delay_ms(500);

با این دستور تاخیر 500ms ایجاد میکنیم.

delay_ms(500);

 

[icon name=”circle-o” class=”” unprefixed_class=””] دستور:

PORTB.0=0;

با این دستور بیت هفتم پورت D را خاموش میکنیم.

PORTB.0=0;

 

 

source کامل پروژه:

#include <mega32.h>
#include <delay.h>

// Declare your global variables here

void main(void)
{
  
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In 
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T 
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Port C initialization
// Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In 
DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
// State: Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T 
PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

// Port D initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In 
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T 
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=(0<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0<<AS2;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00;
OCR2=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<TOIE0);

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);

// USART initialization
// USART disabled
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

// Analog Comparator initialization
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
SFIOR=(0<<ACME);

// ADC initialization
// ADC disabled
ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);

// SPI initialization
// SPI disabled
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

// TWI initialization
// TWI disabled
TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
   DDRD.B=1;
while (1)
      {   
      PORTB.0=1;
      delay_ms(500);      // Place your code here
      PORTB.0=0;
      delay_ms(500);
      }
}

 

 

خب اینم از آموزش رله امیدوارم که لذت برده باشید ودکلی پروژه باحال با رله بسازید و فیلمشو روی صفحه اینستاگرام خودتون بزارید ✌️.

فراموش نکنید که حتما مارو تگ کنید تا از ما کپن تخفیف بگیرید.

 

[icon name=”asterisk” class=”” unprefixed_class=””] حجم فایل : زیر 1 مگابایت – رمز فایل : robotafzar.com

[sdfile url=”https://school.robotafzar.com/wp-content/uploads/2019/07/relay-with-teranzistor.rar”]

 

اگر می‌خواهید از آخرین و محبوب‌ترین مقالات ما در ایمیل خود مطلع شوید، همین الان ایمیل و شماره موبایل خود را در کادر زیر وارد کنید:
تعداد علاقه مندانی که تاکنون عضو خبرنامه ما شده اند: 0 نفر
دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *