목차
이번 포스트는 문자열 (String) 관련 함수들 중에 중요 함수에 대해 알아보도록 하겠습니다. 함수를 코드로 돌리고 확인은 Arduino에서 제공하는 시리얼 모니터로 하겠습니다. 시리얼(Serial) 통신 사용 방법 및 모니터링 방법은 아래 링크를 참조하시면 됩니다. (https://scribblinganything.tistory.com/512)
Arduino 문자열 toInt 함수
toInt 함수(Function)는 문자열(String)을 정수(Integer)로 변경해줍니다. 정수로 변경 뒤에 수식(math)으로 처리하기 용이 합니다. 아래 예제 코드를 통해 쉽게 이해할 수 있습니다.
참고로 Integer 정수는 8비트(bits) 보드에서 사이즈는 2바이트로 16비트 입니다.
예제 코드>>
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
}
void loop() {
String a_var = "100";
String b_var = "10";
String c_var = a_var + b_var;
int d_var = a_var.toInt() + b_var.toInt();
delay(300);
Serial.println("c_var : " + c_var);
Serial.println("d_var : " + String(d_var));
}
12번 라인: 문자열끼리 더하기를 진행하였습니다.
13번 라인: 문자열을 숫자로 바꿔서 더하기를 하였습니다.
결과>>
Arduino 문자열 tofloat 함수
tofloat 함수는 함수명이 말해주는 바와 같이 문자열(String)을 실수로 변경해줍니다. 실수형은 8비트 보드에서 4바이트 사이즈를 가집니다. 그러므로 2^32 의 공간을 가지게 됩니다.
음수 양수 각 각 2^31 공간을 가지게 됩니다.
예제 코드>>
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
}
void loop() {
String a_var = "100.2";
String b_var = "100.3";
String c_var = a_var + b_var;
float d_var = a_var.toFloat() + b_var.toFloat();
delay(300);
Serial.println("c_var : " + c_var);
Serial.println("d_var : " + String(d_var));
}
12번 라인: 문자열끼리 더하기를 진행하였습니다.
13번 라인: 문자열을 실수(float)로 바꿔서 더하기를 하였습니다.
결과>>
Arduino 문자열 toUpperCase, toLowerCase 함수
toUpperCase를 사용할 경우 문자열의 소문자를 대문자로 변경하고 반대로 toLowerCase를 사용할 경우 문자열의 대문자를 소문자로 변경해줍니다.
예제 코드>>
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
}
void loop() {
delay(300);
String a_var = "Hello, World";
Serial.println("a_var : " + a_var);
a_var.toUpperCase();
Serial.println("a_var.toUpperCase : " + a_var);
a_var.toLowerCase();
Serial.println("a_var.toLowerCase : " + a_var);
}
결과>>
참고로 return 값으로 출력이 나오는지 자체 변수에 함수가 적용되는지에 따라 문법에러가 발생할 수있으니 조심해야 합니다.
아래 1번째 줄 예제와 같이 a_var에 대문자로 변경하는 toUpperCase 함수가 바로 적용되는 경우에 2번째 줄과 같이 작성하면 아래와 같은 에러 메세지가 발생합니다.
a_var.toUpperCase();
String b_var = a_var.toUpperCase();
에러메세지>>
exit status 1
conversion from 'void' to non-scalar type 'String' requested
'아두이노 Arduino' 카테고리의 다른 글
[아두이노]메모리 종류와 기능 (Program Memory, Flash Memory, EEPROM) (0) | 2022.05.08 |
---|---|
[아두이노]시리얼 통신: 컴퓨터에서 보드로 메세지 주고 받기(Send, Recieve, Serial) (0) | 2022.05.03 |
[아두이노] String함수: compareTo, equals, equalsIgnoreCase, length, replace (0) | 2022.04.29 |
[아두이노] 문자열, 정수, 실수 크기 비교 하기 (Comparison) (0) | 2022.04.28 |
[아두이노] 시리얼 통신 기본 : 문자열(String) 보내기 (0) | 2022.04.27 |