[질문사항]
아두이노 serial 질문
Serial.print() 경우
()안에 그냥 숫자 45를 넣어도 45가 출력되나요? 그럼 "45"도 똑같은 값이 나오나요?
숫자는 각 숫자에 대한 아스키 문자로 사용하여 인쇄된다는게 무슨 뜻인가요?
Serial.println()
이건 위에랑 결과는 똑같은데 줄 바꿈해주는 거라고 생각하면 되는건가요?
Serial.write()
괄호안에 (char 데이터)를 넣어서 char 데이터에 해당하는 ASCII 코드 값을 문자로 출력이라 하는데
이건 Serial.write(65) 하면 A가 출력되는 건가요?
Serial.print("A") =
Serial.write("A") =
Serial.print(2+0x20) =
Serial.write(2+0x20) =
답은 뭔가요 이해가 안돼서 설명도 부탁드려요

[답변]
Serial 통신 함수들은 아두이노와 컴퓨터 또는 다른 장치 간의 데이터 통신을 위해 사용됩니다. 각 함수의 작동 방식과 결과를 살펴보겠습니다.
1. Serial.print()
- `Serial.print(45)`를 호출하면 숫자 45가 출력됩니다. 이 경우, 45는 숫자로 해석됩니다.
- `Serial.print("45")`를 호출하면 문자열 "45"가 출력됩니다. 따라서 따옴표 안에 있는 내용은 그대로 문자열로 출력됩니다.
2. Serial.println()
- `Serial.println()`은 줄 바꿈 문자(\n)를 출력하므로 출력 결과가 줄 바꿈됩니다. 예를 들어, `Serial.println("Hello")`을 호출하면 "Hello" 다음에 줄 바꿈이 추가되어 출력됩니다.
3. Serial.write()
- `Serial.write(65)`를 호출하면 ASCII 코드 65에 해당하는 문자 'A'가 출력됩니다. ASCII 코드에 따라 문자가 출력됩니다. 따라서 `Serial.write("A")`는 문자열 출력이 아니라 문자 'A'를 출력합니다.
4. Serial.print("A") = Serial.write("A") = Serial.print(2+0x20) = Serial.write(2+0x20)**
- 위 네 가지 표현은 다른 결과를 가집니다.
- `Serial.print("A")`와 `Serial.write("A")`는 문자 'A'를 출력합니다.
- `Serial.print(2+0x20)`는 34 (2 + 0x20 = 2 + 32)를 출력합니다.
- `Serial.write(2+0x20)`는 ASCII 코드 34에 해당하는 문자 '"'를 출력합니다.
요약하면, `Serial.print()`는 인자를 숫자나 문자열로 출력하고, `Serial.write()`는 주어진 숫자를 해당하는 ASCII 문자로 출력합니다. 결과는 입력한 내용과 데이터 형식에 따라 달라집니다.
'무근본 IT 지식 공유' 카테고리의 다른 글
CC BY-SA 라이센스란? (1) | 2023.11.21 |
---|---|
FTP 서버가 보안에 취약한 이유 (0) | 2023.11.21 |
AWS의 eks 사용법에 대하여 (0) | 2023.09.20 |
시스템 프로그래밍 makefile 간단 문제 예시 (0) | 2023.09.19 |
[파이썬,C언어] 행렬 M에서, N번째로 큰 수를 찾아야 합니다. (0) | 2023.09.17 |
댓글