BASIC4MCU | 질문게시판 | 8체널 릴레이 delay 타임에 대한 질문입니다
페이지 정보
작성자 왕왕초a 작성일2025-06-06 16:39 조회120회 댓글1건본문
아두이노에 8체널릴레이와 보튼스위치를 결합하여 6대의 펌프를 작동시키고있습니다
작동은 잘되나 보턴스위치를 누를때 약간의 접촉불량 스파크가 발생하고 있습니다
하여 보턴스위치를 켤때 약간의 지연타임을 주려고합니다
그런데 릴레이마다 지연타임을 동일한 시간을주어도 1번에서 6번릴레이 쪽으로 갈수록 작동시간이
점점 길어지고 꺼지는 시간까지도 길어짐니다(1번은 정상작동되구요 2번부터가 문제)
지연시간을 삭제하면 정상으로 작동됩니다
며칠 고민하다가 질문드립니다
int relay1 = 1;
int relay2 = 2;
int relay3 = 3;
int relay4 = 4;
int relay5 = 5;
int relay6 = 6;
int button1 = 8;
int button2 = 9;
int button3 = 10;
int button4 = 11;
int button5 = 12;
int button6 = 13;
void setup() {
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(relay5, OUTPUT);
pinMode(relay6, OUTPUT);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
pinMode(button4, INPUT_PULLUP);
pinMode(button5, INPUT_PULLUP);
pinMode(button6, INPUT_PULLUP);
}
void loop() {
if (digitalRead(button1) == HIGH) {
digitalWrite(relay1, HIGH);
delay(4000);//릴레이 1번은 정상작동 2번에서 6번으로 가는사이 지연시간이(꺼지는시간포함) 점점 길어짐
} else {
digitalWrite(relay1, LOW);
}
if (digitalRead(button2) == HIGH) {
digitalWrite(relay2, HIGH);
delay(4000);
} else {
digitalWrite(relay2, LOW);
}
if (digitalRead(button3) == HIGH) {
digitalWrite(relay3, HIGH);
delay(4000);
} else {
digitalWrite(relay3, LOW);
}
if (digitalRead(button4) == HIGH) {
digitalWrite(relay4, HIGH);
delay(4000);
} else {
digitalWrite(relay4, LOW);
}
if (digitalRead(button5) == HIGH) {
digitalWrite(relay5, HIGH);
delay(4000);
} else {
digitalWrite(relay5, LOW);
}if (digitalRead(button6) == HIGH) {
digitalWrite(relay6, HIGH);
delay(4000);
} else {
digitalWrite(relay6, LOW);
}}
감사합니다
댓글 1
조회수 120master님의 댓글
master 작성일
int relay1=1
0번핀과 1번핀은 시리얼통신(업로드 및 시리얼모니터)에 사용되므로 다른 용도로 사용하지 않는 것이 좋습니다.
7번을 사용하지 않고 있으니 하나씩 밀면 되겠습니다.