2017-11-19 18 views
2

私はArduino Unoに基本的な問題があります。
私のサンプルコードはシリアルポートで数値を取得し、それを元に戻すべきです。私のArduinoシリアルポートはなぜ私に準乱数を与えるのですか?

int incomingByte = 0; 

void setup() { 
    Serial.begin(9600); 
    Serial.println("Hello World"); 
} 

void loop() { 
    if (Serial.available() > 0) { 

    // read the incoming byte: 
    incomingByte = Serial.read(); 

    // say what you got: 
    Serial.print("I received: "); 
    Serial.println(incomingByte, DEC); 
    } 
} 

私は0を送って、私はなぜそれが私に戻って同じ番号を送信しません48

0->48 
1->49 
2->50 
3->51 

a->97 
b->98 
A->65 

を受けますか?

答えて

5

Arduinoが受け取る入力の出力はASCII equivalentです。 ASCIIに相当する0は48、1は49、aは97、Aは65などです。

理由は、あなたがincomingByte変数(incomingByte = Serial.read();)へのご入力を格納しているされていますが、intとしてincomingByte変数を宣言します。文字が整数変数に代入されると、対応するASCII値がinteger variableに格納されます。

Arduinoに送信する文字を印刷する場合は、int incomingByte = 0;char incomingByte;に変更します。

関連する問題