/*
본 프로그램은 "아두이노 우노"를 사용하여 4대의 무전기에 고주파 동축 케이블의 래치 릴레이 또는 일반 릴레이를 제어하고 동시에 해당 무전기 전원을 공급하는 릴레이 또는 SSR을 작동하게 하여 One Toutch로서 4대의 무전기에 안테나와 전원을 안전하게 동작시키는 편리한 장치 임.
* 이번 동작은 무전기 선택을 1 (정논리)일때 작동함.
따라서 이 프로그램의 동작은 "아두이노"에 전원을 공급했을때 한번만 작동 함.
*/
void setup()
{
#define Relay1 9 // Latch Relay1 이 연결되는 출력 단자
#define Relay2 10 // LatchRelay2 가 연결되는 출력단자
#define Relay3 11 // Latch Relay3 이 연결되는 출력 단자
#define Relay4 12 // Latch Relay4 가 연결되는 출력단자
#define Relay5 2 // 1 무전기 전원 Relay 출력단자
#define Relay6 3 // 2 무전기 전원 Relay 출력단자
#define Relay7 4 // 3 무전기 전원 Relay 출력단자
#define Relay8 5 // 4 무전기 전원 Relay 출력단자
#define Relay9 8 // AC SSR 드라이머 5V 출력단자
#define TRCV1 A0 // 무전기1 선택용 스윗치 연결단자
#define TRCV2 A1 // 무전기2 선택용 스윗치 연결단자
#define TRCV3 A2 // 무전기3 선택용 스윗치 연결단자
#define TRCV4 A3 // 무전기4 선택용 스윗치 연결단자
pinMode(Relay1, OUTPUT); // 1 무전기 래치 릴레이 출력 설정
pinMode(Relay2, OUTPUT); // 2 무전기 래치 릴레이 출력 설정
pinMode(Relay3, OUTPUT); // 3 무전기 래치 릴레이 출력 설정
pinMode(Relay4, OUTPUT); // 4 무전기 래치 릴레이 출력 설정
pinMode(Relay5, OUTPUT); // 5 무전기 전원 출력 설정
pinMode(Relay6, OUTPUT); // 6 무전기 전원 출력 설정
pinMode(Relay7, OUTPUT); // 7 무전기 전원 출력 설정
pinMode(Relay8, OUTPUT); // 8 무전기 전원 출력 설정
pinMode(Relay9, OUTPUT); // 9 무전기 Power Supply SSR 출력 설정
pinMode(TRCV1, INPUT); // 1 무전기 선택 입력 설정
pinMode(TRCV2, INPUT); // 2 무전기 선택 입력 설정
pinMode(TRCV3, INPUT); // 3 무전기 선택 입력 설정
pinMode(TRCV3, INPUT); // 4 무전기 선택 입력 설정
int val1; // 무전기 1의 선택 스윗치 신호 감지
int val2; // 무전기 2의 선택 스윗치 신호 감지
int val3; // 무전기 3의 선택 스윗치 신호 감지
int val4; // 무전기 4의 선택 스윗치 신호 감지
val1 = digitalRead(TRCV1); // 스윗치1 신호를 감지 한 변수.
val2 = digitalRead(TRCV2); // 스윗치2 신호를 감지 한 변수
val3 = digitalRead(TRCV3); // 스윗치1 신호를 감지 한 변수.
val4 = digitalRead(TRCV4); // 스윗치2 신호를 감지 한 변수
digitalWrite(Relay1, HIGH); // 1-4 래치 릴레이를 초기화.
digitalWrite(Relay2, HIGH);
digitalWrite(Relay3, HIGH);
digitalWrite(Relay4, HIGH);
digitalWrite(Relay5, LOW); // 1-4 무전기 전원 초기화
digitalWrite(Relay6, LOW);
digitalWrite(Relay7, LOW);
digitalWrite(Relay8, LOW);
digitalWrite(Relay9, HIGH); // 무전기 AC Power Supply ON (Relay 또는 SSR 구동)
if(val1 == HIGH) // 무전기 1이 선택되면 안테나, 전원 연결
{
digitalWrite(Relay1, LOW); // 첫번째 래치 릴레이 동작 신호출력
delay(1000); // 1초동안 신호가 출력되도록 함
digitalWrite(Relay1, HIGH);
digitalWrite(Relay6, LOW);
digitalWrite(Relay7, LOW);
digitalWrite(Relay8, LOW);
digitalWrite(Relay5, HIGH); //무전기 1 동작 신호 출력
val2 = LOW; // 무전기 1 이후의 무전기선택 스윗치 동작을 무효화 함.
val3 = LOW;
val4 = LOW;
}
if(val2 == HIGH) // 무전기 2가 선택되면 Relay2로 래치 신호 출력
{
digitalWrite(Relay2, LOW); // 두번째 래치릴레이 동착 신호출력
delay(1000);
digitalWrite(Relay2, HIGH);
digitalWrite(Relay5, LOW); // 앞서 작동한 무전기 전원 OFF
digitalWrite(Relay7, LOW);
digitalWrite(Relay8, LOW);
digitalWrite(Relay6, HIGH); // 무전기 2 동작 신호 출력
val1 = LOW;
val3 = LOW;
val4 = LOW;
}
if(val3 == HIGH) // 무전기 3 이 선택되면 Relay1으로 래치 신호 출력
{
digitalWrite(Relay3, LOW); // 세번째 일반 릴레이 신호출력.
delay(1000);
//digitalWrite(Relay3, HIGH); // 일반릴레이를 제어.
digitalWrite(Relay5, LOW); // 앞서 작동한 무전기 전원 OFF
digitalWrite(Relay6, LOW);
digitalWrite(Relay8, LOW);
digitalWrite(Relay7, HIGH); // 무전기 3 동작 신호출력
val1 = LOW;
val2 = LOW;
val4 = LOW;
}
if(val4 == HIGH) // 무전기 4가 선택되면 Relay4로 래치 신호 출력
{
digitalWrite(Relay4, LOW); //네번째 래치 릴레이 신호출력
delay(1000);
digitalWrite(Relay4, HIGH);
digitalWrite(Relay5, LOW); // 앞서 작동한 무전기 전원 OFF
digitalWrite(Relay6, LOW);
digitalWrite(Relay7, LOW);
digitalWrite(Relay8, HIGH); // 무전기 4 동작 신호출력
val1 = LOW;
val2 = LOW;
val3 = LOW;
}
}
void loop() { // 위 Relay 동작은 전원이 공급되면 1회 만 작동 함.
}