해결된 질문
작성
·
38
0
난방실 만들기(온도에 따른 드라이기 제어)4 수강중
온도변화에 따른 드라이기 동작은 됩니다.
(45도미만 에서 드라이기 켜짐 / 50도 이상에서 드라이기꺼짐)
그런데 드라이기가 켜질때 이전 강의에서 AC Relay를 이용해 2초마다 드라이기를 끄고 켰던것처럼 동작합니다 (드라이기가 지속적으로 동작하는게 아니라 2초마다 켜졌다 꺼졋다합니다)
// HAL_GPIO_TogglePin(PB5_RELAY_ON_OFF_CTRL_GPIO_Port, PB5_RELAY_ON_OFF_CTRL_Pin);
// HAL_Delay(2000);
위 코드를 주석처리하거나 지운상태로 디버그를 해도 그렇게 동작합니다
하드웨어적으로도 확인 해봤는데 문제가 없는 것 같습니다..
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
여러 가지 문제로 인해 원하는 방식으로 드라이기가 동작하지 않아 고민이 많으셨을 것 같습니다. 말씀하신 드라이기 작동 문제를 해결하는 데 도움이 될 수 있는 몇 가지 기존 질문과 답변을 공유드리겠습니다.
GPIO 핀 상태 지속 확인 필요성
드라이기가 2초마다 꺼졌다 켜지는 상황은 코드 상에서 혹은 하드웨어적으로 핀이 반복해서 토글되는 것이 원인일 수 있습니다. 특히, 온도 변화에 대한 핀 상태를 지속적으로 확인하고 유지하는 부분이 필요합니다. 관련된 질문으로 GPIO 라이브러리없이 LED ON/OFF하기-주소번지 다른 이유?를 참고해 보세요. 해당 게시물에서는 GPIO 제어와 관련된 질문 및 해결방안을 다루고 있습니다.
하드웨어 및 소프트웨어 디버깅 시 필요 사항
간혹 예상치 못한 전류나 신호가 릴레이나 회로에 영향을 줄 수 있습니다. 첫째, 하드웨어에서 릴레이가 안정적으로 작동하는지 확인하시고, 둘째, 소프트웨어적으로 관련된 모든 코드가 제대로 작동하는지 검토가 필요합니다. 비슷한 사례를 섹션 5. Hello GPIO!! 에서 프로젝트 생성해보기 문의에서 확인할 수 있습니다.
위의 링크들은 유사한 문제를 해결하는 데 있어 유용한 지침을 제공합니다. 관련 내용을 참고하셔서, 드라이기가 의도한 대로 작동할 수 있도록 점검해 보시면 좋겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아 해결했습니다. 단순 코드오타 였네요..ㅎㅎ
Ds18b20_ManualConvert();
if(getCurrentTemper() > 50 && getHeaterState() == t_ON){
heaterControll(t_OFF);
}else if(getCurrentTemper() < 45 && getHeaterState() == t_OFF){
heaterControll(t_ON);
}
getCurrentTemper() 가 getCurrentTemper로 되어있었습니다
다음부터는 좀 더 신중하게 살펴보고 질문글 올리겠습니다