질문
아두이노 Serial통신 관련 질문입니다.
41****
조회수 1,881
작성일2018.10.03
int incomingByte=0; // for incoming serial data
//
void setup(){
Serial.begin(9600); // opens serial port,sets data rate to 9600 bps
}
//
void loop(){
if(Serial.available()>0){ // send data only when you receive data:
incomingByte=Serial.read(); // read the incoming byte:
//
void setup(){
Serial.begin(9600); // opens serial port,sets data rate to 9600 bps
}
//
void loop(){
if(Serial.available()>0){ // send data only when you receive data:
incomingByte=Serial.read(); // read the incoming byte:
Serial.print("I received: ");
Serial.print(incomingByte); // say what you got:
}}
위 소스에서 제가 시리얼모니터 창에 숫자 1을 입력한다면, 아두이노 버퍼 메모리에 숫자 1이 저장이 될테고, Serial.read로 불러들여서 incomingByte에 저장이 되겠지요. 그럼 이 값을 Serial.print로 출력을 하면, 어쨌든 시리얼 모니터에는 1 값으로 보여야 하는것 아닌가요? 그런데 왜, 1의 아스키코드값이 뜨는건가요? Serial.print가 1의 아스키코드값으로 변환해서 PC로 보내줘도 결국 시리얼모니터에서 다시 1로 변환시켜 주는거 아닌가요?
답변자님,
정보를 공유해 주세요.
1번째 답변
Serial.read(); // 입력받은 데이터를 변형없이 그대로 수신
Serial.write(); // 데이터를 변형없이 그대로 송신
Serial.print(); // 데이터를 문자로 변형해서 송신
PC에서 키보드로 입력하는 '1' 키는 문자입니다.
'1' = 0x31 = 49
incomingByte='1';
Serial.print(incomingByte); 이렇게 출력하면 "49"가 출력됩니다.
1바이트 받아서 2바이트를 전송하는 것이죠
Serial.write(incomingByte); 이렇게 출력하면 '1' 1바이트가 출력되서 모니터에 1이 표시 됩니다.
Table of ASCII Characters
LSN | |||||||||||||||||
00 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | ||||||||||
01 | (DC1) | 11 | 21 | 31 | 41 | 51 | 61 | 71 | |||||||||
02 | 12 | 22 | 32 | 42 | 52 | 62 | 72 | ||||||||||
03 | 13 | 23 | 33 | 43 | 53 | 63 | 73 | ||||||||||
04 | 14 | 24 | 34 | 44 | 54 | 64 | 74 | ||||||||||
05 | 15 | 25 | 35 | 45 | 55 | 65 | 75 | ||||||||||
06 | 16 | 26 | 36 | 46 | 56 | 66 | 76 | ||||||||||
07 | 17 | 27 | 37 | 47 | 57 | 67 | 77 | ||||||||||
08 | 18 | 28 | 38 | 48 | 58 | 68 | 78 | ||||||||||
09 | 19 | 29 | 39 | 49 | 59 | 69 | 79 | ||||||||||
0A | 1A | 2A | 3A | 4A | 5A | 6A | 7A | ||||||||||
0B | 1B | 2B | 3B | 4B | 5B | 6B | 7B | ||||||||||
0C | 1C | 2C | 3C | 4C | 5C | 6C | 7C | ||||||||||
0D | 1D | 2D | 3D | 4D | 5D | 6D | 7D | ||||||||||
0E | 1E | 2E | 3E | 4E | 5E | 6E | 7E | ||||||||||
0F | 1F | 2F | 3F | 4F | 5F | 6F | 7F |
0x31 |
2018.10.03.
-
채택
질문자가 채택한 답변입니다.
도움이 되었다면 UP 눌러주세요!
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.
최근 공지사항이 없습니다.