View on GitHub

docs

Arduino のシリアル通信のアレコレ

Serial.write()Serial.print()の比較

以下のコードを用いて0~127の範囲でAsciiコードとシリアルモニタに表示される文字の関係を調べてみました
また、isAlpha()関数などの実行結果も出力させます

#define BaudRate 9600

void setup() {
  Serial.begin(BaudRate);

  delay(250);

  Serial.println("Start...");

  delay(250);

  Serial.println("|number|data|isAlpha|isAlphaNumeric|isAscii|isControl|isDigit|isGraph|isHexadecimalDigit|isLowerCase|isUpperCase|isPrintable|isPunct|isSpace|isWhitespace|");
  Serial.println("|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|");

  for (uint8_t i = 0; i < 128; i++) {
    Serial.print("|");
    Serial.print(i);                       Serial.print("|");
    Serial.write(i);                       Serial.print("|");
    Serial.print(isAlpha(i));              Serial.print("|");
    Serial.print(isAlphaNumeric(i));       Serial.print("|");
    Serial.print(isAscii(i));              Serial.print("|");
    Serial.print(isControl(i));            Serial.print("|");
    Serial.print(isDigit(i));              Serial.print("|");
    Serial.print(isGraph(i));              Serial.print("|");
    Serial.print(isHexadecimalDigit(i));   Serial.print("|");
    Serial.print(isLowerCase(i));          Serial.print("|");
    Serial.print(isUpperCase(i));          Serial.print("|");
    Serial.print(isPrintable(i));          Serial.print("|");
    Serial.print(isPunct(i));              Serial.print("|");
    Serial.print(isSpace(i));              Serial.print("|");
    Serial.print(isWhitespace(i));         Serial.println("|");
  }
}

void loop() {
}

出力結果は以下の通り。一部変更していますが意味は変えていません

number data isAlpha isAlphaNumeric isAscii isControl isDigit isGraph isHexadecimalDigit isLowerCase isUpperCase isPrintable isPunct isSpace isWhitespace
0 Esc 0 0 1 1 0 0 0 0 0 0 0 0 0
1  0 0 1 1 0 0 0 0 0 0 0 0 0
2  0 0 1 1 0 0 0 0 0 0 0 0 0
3  0 0 1 1 0 0 0 0 0 0 0 0 0
4  0 0 1 1 0 0 0 0 0 0 0 0 0
5  0 0 1 1 0 0 0 0 0 0 0 0 0
6  0 0 1 1 0 0 0 0 0 0 0 0 0
7  0 0 1 1 0 0 0 0 0 0 0 0 0
8  0 0 1 1 0 0 0 0 0 0 0 0 0
9 Tab 0 0 1 1 0 0 0 0 0 0 0 1 1
10   0 0 1 1 0 0 0 0 0 0 0 1 0
11   0 0 1 1 0 0 0 0 0 0 0 1 0
12   0 0 1 1 0 0 0 0 0 0 0 1 0
13   0 0 1 1 0 0 0 0 0 0 0 1 0
14  0 0 1 1 0 0 0 0 0 0 0 0 0
15  0 0 1 1 0 0 0 0 0 0 0 0 0
16  0 0 1 1 0 0 0 0 0 0 0 0 0
17  0 0 1 1 0 0 0 0 0 0 0 0 0
18  0 0 1 1 0 0 0 0 0 0 0 0 0
19  0 0 1 1 0 0 0 0 0 0 0 0 0
20  0 0 1 1 0 0 0 0 0 0 0 0 0
21  0 0 1 1 0 0 0 0 0 0 0 0 0
22  0 0 1 1 0 0 0 0 0 0 0 0 0
23  0 0 1 1 0 0 0 0 0 0 0 0 0
24  0 0 1 1 0 0 0 0 0 0 0 0 0
25  0 0 1 1 0 0 0 0 0 0 0 0 0
26  0 0 1 1 0 0 0 0 0 0 0 0 0
27  0 0 1 1 0 0 0 0 0 0 0 0 0
28  0 0 1 1 0 0 0 0 0 0 0 0 0
29  0 0 1 1 0 0 0 0 0 0 0 0 0
30  0 0 1 1 0 0 0 0 0 0 0 0 0
31  0 0 1 1 0 0 0 0 0 0 0 0 0
32   0 0 1 0 0 0 0 0 0 1 0 1 1
33 ! 0 0 1 0 0 1 0 0 0 1 1 0 0
34 0 0 1 0 0 1 0 0 0 1 1 0 0
35 # 0 0 1 0 0 1 0 0 0 1 1 0 0
36 $ 0 0 1 0 0 1 0 0 0 1 1 0 0
37 % 0 0 1 0 0 1 0 0 0 1 1 0 0
38 & 0 0 1 0 0 1 0 0 0 1 1 0 0
39 0 0 1 0 0 1 0 0 0 1 1 0 0
40 ( 0 0 1 0 0 1 0 0 0 1 1 0 0
41 ) 0 0 1 0 0 1 0 0 0 1 1 0 0
42 * 0 0 1 0 0 1 0 0 0 1 1 0 0
43 + 0 0 1 0 0 1 0 0 0 1 1 0 0
44 , 0 0 1 0 0 1 0 0 0 1 1 0 0
45 - 0 0 1 0 0 1 0 0 0 1 1 0 0
46 . 0 0 1 0 0 1 0 0 0 1 1 0 0
47 / 0 0 1 0 0 1 0 0 0 1 1 0 0
48 0 0 1 1 0 1 1 1 0 0 1 0 0 0
49 1 0 1 1 0 1 1 1 0 0 1 0 0 0
50 2 0 1 1 0 1 1 1 0 0 1 0 0 0
51 3 0 1 1 0 1 1 1 0 0 1 0 0 0
52 4 0 1 1 0 1 1 1 0 0 1 0 0 0
53 5 0 1 1 0 1 1 1 0 0 1 0 0 0
54 6 0 1 1 0 1 1 1 0 0 1 0 0 0
55 7 0 1 1 0 1 1 1 0 0 1 0 0 0
56 8 0 1 1 0 1 1 1 0 0 1 0 0 0
57 9 0 1 1 0 1 1 1 0 0 1 0 0 0
58 : 0 0 1 0 0 1 0 0 0 1 1 0 0
59 ; 0 0 1 0 0 1 0 0 0 1 1 0 0
60 < 0 0 1 0 0 1 0 0 0 1 1 0 0
61 = 0 0 1 0 0 1 0 0 0 1 1 0 0
62 > 0 0 1 0 0 1 0 0 0 1 1 0 0
63 ? 0 0 1 0 0 1 0 0 0 1 1 0 0
64 @ 0 0 1 0 0 1 0 0 0 1 1 0 0
65 A 1 1 1 0 0 1 1 0 1 1 0 0 0
66 B 1 1 1 0 0 1 1 0 1 1 0 0 0
67 C 1 1 1 0 0 1 1 0 1 1 0 0 0
68 D 1 1 1 0 0 1 1 0 1 1 0 0 0
69 E 1 1 1 0 0 1 1 0 1 1 0 0 0
70 F 1 1 1 0 0 1 1 0 1 1 0 0 0
71 G 1 1 1 0 0 1 0 0 1 1 0 0 0
72 H 1 1 1 0 0 1 0 0 1 1 0 0 0
73 I 1 1 1 0 0 1 0 0 1 1 0 0 0
74 J 1 1 1 0 0 1 0 0 1 1 0 0 0
75 K 1 1 1 0 0 1 0 0 1 1 0 0 0
76 L 1 1 1 0 0 1 0 0 1 1 0 0 0
77 M 1 1 1 0 0 1 0 0 1 1 0 0 0
78 N 1 1 1 0 0 1 0 0 1 1 0 0 0
79 O 1 1 1 0 0 1 0 0 1 1 0 0 0
80 P 1 1 1 0 0 1 0 0 1 1 0 0 0
81 Q 1 1 1 0 0 1 0 0 1 1 0 0 0
82 R 1 1 1 0 0 1 0 0 1 1 0 0 0
83 S 1 1 1 0 0 1 0 0 1 1 0 0 0
84 T 1 1 1 0 0 1 0 0 1 1 0 0 0
85 U 1 1 1 0 0 1 0 0 1 1 0 0 0
86 V 1 1 1 0 0 1 0 0 1 1 0 0 0
87 W 1 1 1 0 0 1 0 0 1 1 0 0 0
88 X 1 1 1 0 0 1 0 0 1 1 0 0 0
89 Y 1 1 1 0 0 1 0 0 1 1 0 0 0
90 Z 1 1 1 0 0 1 0 0 1 1 0 0 0
91 [ 0 0 1 0 0 1 0 0 0 1 1 0 0
92 |0 0 1 0 0 1 0 0 0 1 1 0 0  
93 ] 0 0 1 0 0 1 0 0 0 1 1 0 0
94 ^ 0 0 1 0 0 1 0 0 0 1 1 0 0
95 _ 0 0 1 0 0 1 0 0 0 1 1 0 0
96 ` 0 0 1 0 0 1 0 0 0 1 1 0 0
97 a 1 1 1 0 0 1 1 1 0 1 0 0 0
98 b 1 1 1 0 0 1 1 1 0 1 0 0 0
99 c 1 1 1 0 0 1 1 1 0 1 0 0 0
100 d 1 1 1 0 0 1 1 1 0 1 0 0 0
101 e 1 1 1 0 0 1 1 1 0 1 0 0 0
102 f 1 1 1 0 0 1 1 1 0 1 0 0 0
103 g 1 1 1 0 0 1 0 1 0 1 0 0 0
104 h 1 1 1 0 0 1 0 1 0 1 0 0 0
105 i 1 1 1 0 0 1 0 1 0 1 0 0 0
106 j 1 1 1 0 0 1 0 1 0 1 0 0 0
107 k 1 1 1 0 0 1 0 1 0 1 0 0 0
108 l 1 1 1 0 0 1 0 1 0 1 0 0 0
109 m 1 1 1 0 0 1 0 1 0 1 0 0 0
110 n 1 1 1 0 0 1 0 1 0 1 0 0 0
111 o 1 1 1 0 0 1 0 1 0 1 0 0 0
112 p 1 1 1 0 0 1 0 1 0 1 0 0 0
113 q 1 1 1 0 0 1 0 1 0 1 0 0 0
114 r 1 1 1 0 0 1 0 1 0 1 0 0 0
115 s 1 1 1 0 0 1 0 1 0 1 0 0 0
116 t 1 1 1 0 0 1 0 1 0 1 0 0 0
117 u 1 1 1 0 0 1 0 1 0 1 0 0 0
118 v 1 1 1 0 0 1 0 1 0 1 0 0 0
119 w 1 1 1 0 0 1 0 1 0 1 0 0 0
120 x 1 1 1 0 0 1 0 1 0 1 0 0 0
121 y 1 1 1 0 0 1 0 1 0 1 0 0 0
122 z 1 1 1 0 0 1 0 1 0 1 0 0 0
123 { 0 0 1 0 0 1 0 0 0 1 1 0 0
124 | 0 0 1 0 0 1 0 0 0 1 1 0 0
125 } 0 0 1 0 0 1 0 0 0 1 1 0 0
126 ~ 0 0 1 0 0 1 0 0 0 1 1 0 0
127  0 0 1 1 0 0 0 0 0 0 0 0 0

0true,1falseを意味しています
一部Asciiでないもの(制御文字等)は表示されていないか文字化けしていると思います