드라이기로 껐다 켰다하면서 원하는 온도에 맞추기
릴레이 : GPIO 신호를 주면 회로가 연결됨(스위치같은 동작)

릴레이의 스위치를 HIGH로 두면 - 기본적으로 LOW로 있다가 HIGH신호에 동작함
릴레이의 스위치를 LOW로 두면 - HIGH에 있다가 LOW신호에 동작




#include "heaterController.h"
#include "ds18b20.h"
static uint8_t m_state = 0;
float getCurrentTemper(void) {
return ds18b20[0].Temperature;
}
void heaterControll(uint8_t onOFF){
HAL_GPIO_WritePin(PB5_RELAY_ON_OFF_CTRL_GPIO_Port, PB5_RELAY_ON_OFF_CTRL_Pin, onOFF);
m_state = onOFF;
}
uint8_t getHeaterState(){
return m_state;
}
#ifndef SRC_HEATERCONTROLLER_H_
#define SRC_HEATERCONTROLLER_H_
#include "main.h"
enum{
t_OFF = 0,
t_ON = 1
};
uint8_t getHeaterState();
float getCurrentTemper(void);
void heaterControll(uint8_t onOFF);
#endif /* SRC_HEATERCONTROLLER_H_ */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
Ds18b20_ManualConvert();
digit4_temper((int)ds18b20[0].Temperature*10,10000); //온도 표시
if(getCurrentTemper() > 50 && getHeaterState() == t_ON){
heaterControll(t_OFF);
}else if(getCurrentTemper() < 45 && getHeaterState() == t_OFF){
heaterControll(t_ON);
}
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
온도가 45도 이하이고 드라이기가 꺼져있으면 드라이기 ON
온도가 50도 이상이고 드라이기가 켜져있으면 드라이기 OFF