433 MHzの受信機433レシーバArduinoのif文
Arduinoの環境
送信は正常に動作しますY、NまたはMを送信します。問題は、レシーバのコードにあります。目標は、受信者が値メッセージをNに等しいとした後、事を行うifステートメントをトリガーすると仮定します。私は、レシーバが特定の値を取るかどうかを判断できるシステムを持つだけです。
void loop()
{
if (vw_get_message(message, &messageLength)) // Non-blocking
{
Serial.print("Received: ");
for (int i = 0; i < messageLength; i++)
{
Serial.write(message[i]);
const char *p = reinterpret_cast<const char*>(message);
if(p == "N")
{
Serial.print("if statement works when = N");
}
}
}
}
問題は、それは単に仕事をしないで、そして闘争の2週間後、私は途方に暮れて完全にしています。このコードはコンパイルされて実行されますが、if文は完全に無視されます。
'char'と' string'を比較しています。引用符はC++に違いがあります。それを確認します。 – ray
ここで 'p'は変数へのポインタであり、' 'N''は定数へのポインタです。したがって、それらの値が等しいことはほとんど不可能です。 –