본문 바로가기
Study/Coding

아두이노 float 값을 byte 배열로 저장하기

by LovEnable 2020. 12. 22.

센서를 사용하다보면, 값을 통신으로 값을 전달하는 경우가 있습니다.

데이터가 byte인 경우에는 큰 문제가 없지만 float 형식과 같은 경우에는 처리하기가 귀찮아집니다.

데이터를 쪼개서 나누어서 저장하고 보내고 해야하기 때문입니다.

이런 경우에는 union 형식으로 변수를 만들어서 관리하면 편하게 관리가 됩니다.

자유롭게 원하는 형식으로 가져다 사용할 수 있습니다.

union
{
  unsigned long l;
  byte c [4];
  float f;
} temperature;

void setup()
{
  Serial.begin(57600);

  temperature.f = 175.63;

  Serial.println("temperature is: ");
  Serial.println(temperature.f);
  Serial.println(temperature.l, HEX);
  Serial.println(temperature.c[0], HEX);
  Serial.println(temperature.c[1], HEX);
  Serial.println(temperature.c[2], HEX);
  Serial.println(temperature.c[3], HEX);
}

void loop() 
{
}

 

 

다음과 같이 저장된 내용을 확인할 수 있습니다.

보내는 쪽도 받는 쪽도 간단하게 처리가 가능합니다.