Arduino Serial.print()とSerial.write()の違い



Difference Between Arduino Serial

最初に送信についてお話ししましょう。

Send Arduino IDEウィンドウのモニターボックスに文字列(数字、文字、記号があります)を入力すると、プログラムは文字列内の文字をASCIIコードに順次変換して送信します。
例えとして、「aA1&」と入力すると、「97」、「65」、「49」、「38」が順番に送信されます(ここと以下の変換はASCIIルールです)。 arduinoのSerial.read()関数は、これら4つの値を変数に格納します。彼は、data [1]、deta [2]、data [3]、data [4]であると想定しています。

データ[1]を例として取り上げ、受信と表示について説明します。

Serial.write(data [1])の場合、より直接的に表示され、arduinoは直接data [1]を送り返し、シリアルポートの受信側は97を受信し、97に対応する文字を「a」として検索します。 Showusを表示します。 (これは、下の最初の図でOKとabcの間にスペースがあり、0に対応する文字はnullである必要があることも説明しています。)
Serial.print(data [1])の場合、さらに面倒になります。arduinoは「97」を「9」と「7」に分解し、最初に「9」「57」を変換し、IDEに送信してから「7」を変換します。 'から' 55 '、IDEに送信します。 IDEは「57」と「55」を受け取り、それを「9」と「7」に変換して見せてくれました。



テストコードと側面図

WindowsプラットフォームIDEバージョン1.8.9

byte data[3] byte count=1 void setup() { Serial.begin(9600) Serial.print('OK') } void loop() { while(Serial.available()>0) { data[count]=Serial.read() count++ delay(100) } count=1 delay(1000) Serial.print/write(data[1]) Serial.print(' ') Serial.print/write(data[2]) Serial.print(' ') Serial.print/write(data[3]) Serial.println(' ') }

次の2つの画像はYong ** Serial.write()です。 数字と文字の結果を別々に印刷する abc
次の2枚の写真を使用しています
Serial.print()**数字と文字を別々に印刷します
日付:2020.2.16