블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

250x250
728x90
반응형

DC5V 4채널 릴레이 모듈을 사용하면 아두이노와 같은 마이크로 컨트롤러를 사용하여 고전압 및 고전류 장치들을 제어할 수 있다. 각 채널을 개별적으로 제어할 수 있으며 다양한 장치들을 작동 시킬 수 있다.

 

릴레이 핀 설명 :

1. DC+ : 5V 전원 공급 핀

2. DC- : GND 전원 접지 핀

3. IN1, IN2, IN3, IN4 : 각 릴레이 채널을 제어하는 입력 핀

4. COM : 공동 핀 (제어할 장치에 연결)

5. NO(Normally Open) : 평소에 열려있는 접점(신호를 보냈을 때 연결된다.)

6. NC(Normally Closed) : 평소에 닫혀있는 접점(신호를 보냈을 때 차단된다.)

 

오늘은 아두이노 우노 R3에 DC5V 4채널 릴레이 모듈을 사용하여 LDE 다이오드를 제어하는 실습을 해보겠다.

 

준비품 : 

제품에 사용될 부품으로는 아두이노 UNO R3, DC5V 4채널 릴레이, LCD1602 디스플레이, LED다이오드 4개, 220옴 저항 4개 등이 사용된다.

아두이노 우노 R3 DC5V 4채널 릴레이 LCD1602 디스플레이 LED 다이오드

 

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/cdnaEv

 

아두이노 우노 R3 개발 보드 [ATmega328P 마이크로 컨트롤러 포함] - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

https://link.coupang.com/a/cdm8hq

 

아두이노 5V 4채널 릴레이 모듈 - 기타소형기계 | 쿠팡

쿠팡에서 5.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 2 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

https://link.coupang.com/a/b2vTO0

 

아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

 

위와 같이 부품들이 준비되면 다음과 같이 회로를 구성한다.

아래에 있는 이미지는 실제 회로연결 상태이다.

4채널 릴레이 회로 실물

 

위와 같이 회로 연결이 끝나면 다음과 같이 코딩을 한다.

 

코딩 설명 : 

먼저 4채널 릴레이 1, 2, 3, 4를 아두이노 디지털 핀 D4, D5, D6, D7로 설정한다.

// 릴레이 핀 정의
int relay1 = 4;
int relay2 = 5;
int relay3 = 6;
int relay4 = 7;

 

직렬 통신은 9600으로 설정하고, LCD1602 디스플레이를 초기화 한다음, 백라이트를 ON 상태로 설정한다.

다음 릴레이 핀모드를 출력으로 정하고, 릴레이 초기 상태를 LOW(꺼짐)으로 설정한다.

void setup() {

  Serial.begin(9600);
                                                                                                             

  lcd.init();    // LCD 초기화 
  lcd.backlight();  // LCD 백라이트 켬

  // 릴레이 핀을 출력으로 설정
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(relay4, OUTPUT);

  
  // 릴레이 초기 상태 설정 (LOW 상태는 OFF)
  digitalWrite(relay1, LOW);
  digitalWrite(relay2, LOW);
  digitalWrite(relay3, LOW);
  digitalWrite(relay4, LOW);

}

 

void loop 함수에서는 릴레이 1번부터 4번까지 3초 간격으로 켜졌다 꺼졌다 하는 방식으로 순차적으로 순환하도록 하였다. LCD1602 디스플레이는 각 채널에 연결된 LED 다이오드의 색상에 따라 빨간색이면 LED : R, 파란색이면  LED : B, 노란색이면 LED : Y, 초록색이면 LED : G로 디스플레이에 현시되도록 하였다.

void loop() {

  // 릴레이를 순차적으로 켜고 끄기
  digitalWrite(relay1, HIGH);  // 릴레이1 켜기
  delay(3000);                 // 3초 대기
  digitalWrite(relay1, LOW);   // 릴레이1 끄기
  delay(3000);
  lcd.setCursor(0,0);
  lcd.print("LED:");
  lcd.print("Y"); 
  
  digitalWrite(relay2, HIGH);  // 릴레이2 켜기
  delay(3000);                 // 3초 대기
  digitalWrite(relay2, LOW);   // 릴레이2 끄기
  delay(3000); 
  lcd.setCursor(0,1);
  lcd.print("LED:");
  lcd.print("G");
  
  digitalWrite(relay3, HIGH);  // 릴레이3 켜기
  delay(3000);                 // 3초 대기
  digitalWrite(relay3, LOW);   // 릴레이3 끄기
  delay(3000);
  lcd.setCursor(7,0);
  lcd.print("LED:");
  lcd.print("R"); 
  
  digitalWrite(relay4, HIGH);  // 릴레이4 켜기
  delay(3000);                 // 3초 대기
  digitalWrite(relay4, LOW);   // 릴레이4 끄기
  delay(3000); 
  lcd.setCursor(7,1);
  lcd.print("LED:");
  lcd.print("B");   
 
  
  delay(100); // 3초 대기
  lcd.clear();  // lcd 지우기

}

 

전체 코드 :

#include <Wire.h>
#include <LiquidCrystal_I2C.h> 

// 릴레이 핀 정의
int relay1 = 4;
int relay2 = 5;
int relay3 = 6;
int relay4 = 7;

LiquidCrystal_I2C lcd (0x27,16,2);   


// 릴레이 상태를 저장할 변수
bool relay1State = false;
bool relay2State = false;
bool relay3State = false;
bool relay4State = false;


void setup() {

  Serial.begin(9600);
                                                                                                             

  lcd.init();    // LCD 초기화 
  lcd.backlight();  // LCD 백라이트 켬

  // 릴레이 핀을 출력으로 설정
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(relay4, OUTPUT);

  
  // 릴레이 초기 상태 설정 (LOW 상태는 OFF)
  digitalWrite(relay1, LOW);
  digitalWrite(relay2, LOW);
  digitalWrite(relay3, LOW);
  digitalWrite(relay4, LOW);

}

void loop() {

  // 릴레이를 순차적으로 켜고 끄기
  digitalWrite(relay1, HIGH);  // 릴레이1 켜기
  delay(3000);                 // 3초 대기
  digitalWrite(relay1, LOW);   // 릴레이1 끄기
  delay(3000);
  lcd.setCursor(0,0);
  lcd.print("LED:");
  lcd.print("Y"); 
  
  digitalWrite(relay2, HIGH);  // 릴레이2 켜기
  delay(3000);                 // 3초 대기
  digitalWrite(relay2, LOW);   // 릴레이2 끄기
  delay(3000); 
  lcd.setCursor(0,1);
  lcd.print("LED:");
  lcd.print("G");
  
  digitalWrite(relay3, HIGH);  // 릴레이3 켜기
  delay(3000);                 // 3초 대기
  digitalWrite(relay3, LOW);   // 릴레이3 끄기
  delay(3000);
  lcd.setCursor(7,0);
  lcd.print("LED:");
  lcd.print("R"); 
  
  digitalWrite(relay4, HIGH);  // 릴레이4 켜기
  delay(3000);                 // 3초 대기
  digitalWrite(relay4, LOW);   // 릴레이4 끄기
  delay(3000); 
  lcd.setCursor(7,1);
  lcd.print("LED:");
  lcd.print("B");   
 
  
  delay(100); // 3초 대기
  lcd.clear();  // lcd 지우기

}

 

코딩 작성이 전부 끝나면 아두이노에 컴파일 후 업로드 하여준다.

그러면 아래 영상과 같이 릴레이 각 채널에 연결된 LED 다이오드가 제어되는 모습을 볼 수 있다.

 

시연 영상 : 

https://www.youtube.com/watch?v=HrvhQfr7nDo

 

이와 같은 방법으로 8채널 릴레이, 16채널 릴레이 모듈을 사용할 수 있다.

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/cd1SSL

 

아두이노 8채널 릴레이 모듈 | 작동전압 DC 5V - 기타전기설비부자재 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/cd1VxK

 

아두이노 5V 16채널 릴레이 모듈 - 기타전기설비부자재 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

 

 

728x90
반응형
posted by 조이키트 블로그