프로젝트: RJT520 릴레이 타이머, 555, 6V에서 18V, 20A
이 튜토리얼에서는 RJT520 릴레이와 6V에서 18V의 전압 범위에서 작동하는 555 타이머 IC를 사용하여 릴레이 타이머 회로를 구축할 것입니다. 이 프로젝트는 조명이나 가전제품과 같이 켜지거나 꺼지기 전에 지연이 필요한 장치를 제어하는 데 이상적입니다. 결과물은 최대 20A의 전류를 처리할 수 있는 기능성 릴레이 타이머로, 다양한 응용 프로그램에 사용할 수 있습니다.

우리는 555 타이머 IC를 단일 안정 모드에서 사용하여 지연 타이머를 만들 것입니다. 트리거가 작동하면 타이머는 지정된 시간 동안 릴레이를 활성화한 후 꺼집니다. 이 프로젝트는 간단하면서도 효과적이어서 전자 공구 키트에 훌륭한 추가 요소가 됩니다. 더 시각적인 설명을 원하신다면 비디오(비디오에서 :15)를 확인해 보세요.
하드웨어 설명
이 프로젝트의 주요 구성 요소에는 RJT520 릴레이, 555 타이머 IC 및 전원 공급 장치가 포함됩니다. RJT520 릴레이는 최대 20A의 부하를 전환할 수 있는 고전력 릴레이로, 더 큰 장치를 제어하는 데 적합합니다. 555 타이머 IC는 다양한 모드로 구성할 수 있는 다목적 구성 요소로, 우리는 타이머에 단일 안정 모드를 사용할 것입니다.

릴레이는 전자석을 사용하여 접점을 기계적으로 전환하는 방식으로 작동합니다. 555 타이머 출력이 높아지면 릴레이 코일에 전원이 공급되어 접점이 닫히고 연결된 부하로 전류가 흐를 수 있게 됩니다. 이 설정은 원격 작동이나 자동화가 필요한 응용 프로그램에 유리합니다.
데이터시트 세부정보
| 제조업체 | RJT |
|---|---|
| 부품 번호 | RJT520 |
| 공급 전압 | 6-18 V |
| 출력 전류 | 20 A 최대 |
| 코일 전류 | 70 mA 전형. |
| 전환 전압 | 250 V AC / 30 V DC |
| 연락처 구성 | SPDT |
| 작동 온도 | -40에서 85 °C |
| 패키지 | 표준 릴레이 패키지 |
- 릴레이가 부하 전류(최대 20 A)를 처리할 수 있는지 확인하십시오.
- 릴레이가 고온에서 작동할 경우 적절한 열 방산을 사용하십시오.
- 555 타이머가 손상되지 않도록 전압 수준을 확인하세요.
- 555 타이머 전원 핀 근처에 디커플링 커패시터를 사용하세요.
- 릴레이 접점의 마모를 확인하고 필요시 교체하십시오.
- 유도 부하를 전환할 때 역기전력(back EMF)에 주의하세요.
배선 지침

RJT520 릴레이 타이머 회로를 배선하려면, 먼저 555 타이머 IC를 연결합니다. 555 타이머의 핀 1(GND)을 전원 공급 장치의 접지에 연결합니다. 그런 다음 핀 8(VCC)을 전원 공급 장치의 양극(6V에서 18V)과 연결합니다.

다음으로, 핀 2(TRIG)를 트리거 스위치나 입력 신호에 연결하세요. 이 핀은 낮은 펄스를 받을 때 타이머를 활성화합니다. 555 타이머의 핀 3(OUT)을 릴레이 코일의 한 단자에 연결하고, 코일의 다른 단자는 접지에 연결하세요. 회로를 역 전자기 유도(EMF)로부터 보호하기 위해 릴레이 코일에 다이오드를 추가하는 것을 잊지 마세요.
릴레이 출력의 경우, 공통 단자 중 하나를 제어하려는 부하에 연결하고 다른 단자를 전원에 연결합니다. 부하의 다른 단자는 공통 접지에 다시 연결해야 합니다. 마지막으로, 원하는 지연을 위해 핀 6과 2에 연결된 타이밍 구성 요소(저항기와 커패시터)를 설정합니다.
코드 예제 및 안내
코드에서 우리는 다음과 같은 주요 식별자를 정의할 것입니다.triggerPin입력 트리거 및relayPin릴레이 출력을 위해. 설정 함수는 이러한 핀을 초기화하고, 루프 함수는 트리거 상태를 모니터링합니다.
const int triggerPin = 2; // Input trigger pin
const int relayPin = 3; // Relay control pin
void setup() {
pinMode(triggerPin, INPUT);
pinMode(relayPin, OUTPUT);
}
void loop() {
if (digitalRead(triggerPin) == HIGH) {
digitalWrite(relayPin, HIGH); // Activate relay
delay(1000); // Keep relay on for 1 second
digitalWrite(relayPin, LOW); // Deactivate relay
}
}
이 발췌는 핀을 초기화하고 트리거 핀이 HIGH 신호를 받을 때마다 릴레이가 1초 동안 활성화되도록 설정합니다. 특정 타이밍 요구 사항에 맞게 지연 시간을 조정하는 것을 잊지 마세요.
void loop() {
if (digitalRead(triggerPin) == HIGH) {
digitalWrite(relayPin, HIGH); // Activate relay
delay(1000); // Keep relay on for 1 second
digitalWrite(relayPin, LOW); // Deactivate relay
}
}
여기에서 우리는 확인합니다.triggerPin높습니다. 그렇다면 릴레이를 켜고 1초 동안 활성화 상태로 유지합니다.delay()기능. 애플리케이션에 맞게 지연 시간을 조정하십시오.
시연 / 기대할 사항
배선 및 프로그래밍이 성공적으로 완료되면, 트리거가 작동할 때 릴레이가 활성화되어야 합니다. 릴레이가 정격 사양 내에서 올바르게 작동하는지 확인하기 위해 다양한 부하를 테스트할 수 있습니다. 일반적인 함정으로는 잘못된 전압 연결과 회로를 손상시킬 수 있는 역기전력(Back EMF)으로부터 보호하지 않는 것이 있습니다.
비디오 타임스탬프
- 00:00- 소개
- 02:15- 배선 설명
- 05:30- 코드 워크스루
- 07:45- 시연
이미지
/*
This code is for:
Building an H-Bridge Motor driver using TIP120 and TIP125 on a breadboard and full PCB Design with Arduino
https://youtu.be/6ugrL5ziPn8
This code has been downloaded from Robojax.com
You can access the resources page and download the Gerber file to produce
the PCB or a fully assembled PCB from PCBX.com
Visit https://robojax.com/tutorial_view.php?id=392
to control a DC motor using TIP120 and TIP125 as an
H bridge
Written by Ahmad Shamshiri
26 Aug 2024
*/
const int PWM1= 9;//pin with ~
const int EN1= 8;
const int PWM2= 3;//pin with ~
const int EN2= 2;
const boolean CW =1;
const boolean CCW =0;
void Motor(boolean, int);//prototype
void brake();//prototype
void setup() {
Serial.begin(9600);
Serial.println("TIP120 H Bridge by Robojax");
pinMode(PWM1, OUTPUT);
pinMode(EN1, OUTPUT);
pinMode(PWM2, OUTPUT);
pinMode(EN2, OUTPUT);
}
void loop() {
Motor(CW, 50);//in CW at 50% speed
delay(5000);
stop();
delay(2000);
Motor(CCW, 80);//in CCW at 80% speed
delay(5000);
brake();
delay(2000);
for (int i=0; i<=100; i++)
{
Motor(CCW, i);
delay(25);
}
delay(5000);
brake();
delay(2000);
}
/*
stop()
stops the output
*/
void stop()
{
Serial.println ("=== Stop");
digitalWrite(PWM1, LOW);
digitalWrite(EN1, LOW);
digitalWrite(PWM2, LOW);
digitalWrite(EN2, LOW);
}
/*
brake()
*/
void brake()
{
Serial.println ("=== Brake");
digitalWrite(PWM1, HIGH);
digitalWrite(EN1, LOW);
digitalWrite(PWM2, HIGH);
digitalWrite(EN2, LOW);
}
void Motor(boolean direction, int speed=0)
{
int speedPWM = map(speed, 0, 100, 0, 255);
Serial.print("Speed: "); Serial.print (speedPWM);
Serial.print ("(");Serial.print (speed);Serial.print ("%)");
if(direction){
Serial.print(" dir: ");Serial.println ("CW");
analogWrite(PWM1, speedPWM);
digitalWrite(EN1, HIGH);
digitalWrite(PWM2, LOW);
digitalWrite(EN2, LOW);
}else{
Serial.print(" dir: ");Serial.println ("CCW");
digitalWrite(PWM1, LOW);
digitalWrite(EN1, LOW);
analogWrite(PWM2, speedPWM);
digitalWrite(EN2, HIGH);
}
}
자원 및 참고자료
-
외부555 Timer Book by Colin Mitchelltalkingelectronics.com
파일📁
Gerber files
-
555 Relay Timer-Gerber File for PCBXincluded the Gerber files 555 Relay Timer-Aug31.zip, 555 Relay Timer-BOM.xls and 555 Relay Timer-coor to place order
555 Relay Timer-Gerber File_3in1.zip0.16 MB