シリアルモニターを介して送信されたテキスト文字列をモールス信号に変換するArduinoプログラムを作成しようとしています。これは問題のある機能です:
void serialEvent() {
while (Serial.available()){
char inChar = Serial.read();
input += inChar;
if (inChar == '\0'){
Serial.print("END!");
stringComplete = true;
}
}
}
シリアル入力から文字を1つずつ取得し、シリアル入力の最後に到達するまで入力文字列に追加する必要があります(つまり、ヌル文字)。何らかの理由で、「if」ステートメントは実行されません
inChar == '\0'
しかし、「\0」を次のように任意の文字に置き換えると
inChar == 'g'
それはうまく実行されます。どういうわけかヌル文字「\0」を間違って呼んでいますか?