몇 가지 개선이 필요해 보입니다.
첫째, Serial.end()와 Serial.begin()을 loop() 안에서 반복적으로 호출하고 있습니다.
이는 불필요하며, 데이터 통신에 문제를 일으킬 수 있습니다.
따라서 Serial.begin()은 setup()에서 한 번만 호출하도록 수정해야 합니다.
둘째, Serial.available()를 사용하는 방식에 문제가 있습니다.
현재 코드에서는 입력 데이터를 기다리며 무한 대기를 하기 때문에 프로그램이 멈출 수 있습니다.
이를 해결하기 위해 while 대신 if 조건문을 사용하여 입력이 있을 때만 데이터를 처리하도록 수정해야 합니다.
셋째, 워터펌프를 끄는 명령이 누락되어 있습니다.
digitalWrite(4, HIGH)로 펌프를 켠 후, 지연 시간(delay)이 지나면 반드시 digitalWrite(4, LOW)로 펌프를 꺼야 합니다.
넷째, Serial.println(float(acid)); 부분에서 float 형 변환은 필요하지 않습니다. 단순히 Serial.println(acid);로 수정하면 됩니다.
아래는 수정한 코드입니다.
void setup() { Serial.begin(9600); pinMode(3, INPUT); pinMode(4, OUTPUT); digitalWrite(4, LOW); } void loop() { if (digitalRead(3) == LOW) { Serial.print("Put numbers: "); if (Serial.available() > 0) { float acid = Serial.parseFloat(); Serial.println(acid); digitalWrite(4, HIGH); // 펌프 켜기 delay(acid * 1000); // 입력값만큼 지연 digitalWrite(4, LOW); // 펌프 끄기 } } }
그리고 하드웨어 연결 상태도 확인해 보세요.
워터펌프가 제대로 전원을 공급받고 있는지, 4번 핀과 펌프가 올바르게 연결되어 있는지 점검해보시기 바랍니다.
3번 핀에 연결된 버튼이나 센서가 올바르게 작동하는지도 확인해 보세요.
몇 가지 개선이 필요해 보입니다.
첫째, Serial.end()와 Serial.begin()을 loop() 안에서 반복적으로 호출하고 있습니다.
이는 불필요하며, 데이터 통신에 문제를 일으킬 수 있습니다.
따라서 Serial.begin()은 setup()에서 한 번만 호출하도록 수정해야 합니다.
둘째, Serial.available()를 사용하는 방식에 문제가 있습니다.
현재 코드에서는 입력 데이터를 기다리며 무한 대기를 하기 때문에 프로그램이 멈출 수 있습니다.
이를 해결하기 위해 while 대신 if 조건문을 사용하여 입력이 있을 때만 데이터를 처리하도록 수정해야 합니다.
셋째, 워터펌프를 끄는 명령이 누락되어 있습니다.
digitalWrite(4, HIGH)로 펌프를 켠 후, 지연 시간(delay)이 지나면 반드시 digitalWrite(4, LOW)로 펌프를 꺼야 합니다.
넷째, Serial.println(float(acid)); 부분에서 float 형 변환은 필요하지 않습니다. 단순히 Serial.println(acid);로 수정하면 됩니다.
아래는 수정한 코드입니다.
void setup() { Serial.begin(9600); pinMode(3, INPUT); pinMode(4, OUTPUT); digitalWrite(4, LOW); } void loop() { if (digitalRead(3) == LOW) { Serial.print("Put numbers: "); if (Serial.available() > 0) { float acid = Serial.parseFloat(); Serial.println(acid); digitalWrite(4, HIGH); // 펌프 켜기 delay(acid * 1000); // 입력값만큼 지연 digitalWrite(4, LOW); // 펌프 끄기 } } }
그리고 하드웨어 연결 상태도 확인해 보세요.
워터펌프가 제대로 전원을 공급받고 있는지, 4번 핀과 펌프가 올바르게 연결되어 있는지 점검해보시기 바랍니다.
3번 핀에 연결된 버튼이나 센서가 올바르게 작동하는지도 확인해 보세요.