본문 바로가기
  • _^**_
무근본 IT 지식 공유

아누이노 Serial에 대해

by 크리드로얄워터 2023. 9. 20.
반응형

[질문사항]

아두이노 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 문자로 출력합니다. 결과는 입력한 내용과 데이터 형식에 따라 달라집니다.

반응형

댓글