Arduino에서 Serial을 사용해 출력할 때, 문자열과 변수의 값을 코드 한 줄로 출력하는 방법

요즘 학교에서 아두이노를 사용해 LiDAR와 같은 센서들로부터 값을 읽어오고 그 값들을 바탕으로 모터를 제어하는 소스코드를 작성하고 있습니다. 추후 탱크의 형태로 만들어질 하드웨어에 연결해 RC 컨트롤러로 제어하거나 여러 센서들을 사용해 주변과 부딪히지 않고 스스로 움직이도록 하는 것이 목표입니다.

이를 위해 오늘은 LiDAR 센서로부터 값을 읽어오는 코드를 작성하고 있었습니다. 아두이노에서 계산한 값을 Serial 모니터로 출력하기 위해서는, 아두이노의 하드웨어에서 지원되는 Serial(HardwareSerial 이라고 합니다.)을 사용해 출력해야 합니다.

1
2
Serial.println();
Serial.print();

Serial 모니터에 문자열, 정수 등을 출력할 때에는 주로 이 두가지 메소드를 사용합니다.

헌데, 제가 변수의 값을 출력할때 자주 사용하던 방식대로 출력할 수 없었습니다.

1
2
var = 10;
Serial.println("var = " + var);

위 코드와 같은 형태로 출력시 의도한대로 var = 10 이 출력되는것이 아닌, 전혀 다른 이상한 값들이 출력되더군요.

정말로 함수를 새로 만들어서 더 깔끔하게 출력할 수 있도록 해야할지 고민하던 도중, 구글링을 통해 보게된 스택오버플로우의 한 글은 제게 간단한 해결책을 제안했습니다.

1
2
var = 10;
Serial.println((String) "var = " + var);

이라는 코드였죠.

“var = “ + var 이라는 문자열과 정수의 덧셈 결과를 문자열로 캐스팅하면 바로 사용이 가능했습니다.

앞으로는 번거롭게 여러줄의 Serial.print()를 사용하는 대신, 위 코드로 깔끔하면서도 보기 좋은 디버깅을 할 수 있겠네요 :D

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×