こんにちは、私の問題は、変数「var」の値を入力してから出力するときです。全く違う価値を与えてくれる。たとえば、「5」と入力すると、10 進数の値 ( 53 ) が出力されます。これは、ある数値を別の数値と一致させようとしていることがわかり、これが問題を引き起こしていることがわかります。
注: if (Serial.available() > 0) を while 条件に変更しようとしましたが、うまくいきませんでした。また、16x2 液晶ディスプレイも使用しています。
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int backLight = 13;
int var=0;
int password=5320;
void setup()
{
Serial.begin(9600);
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH);
lcd.begin(16,2);
lcd.clear();
Serial.println("Enter password");
}
void loop()
{
if (Serial.available() > 0) {
var = Serial.read();
Serial.println(var);
if (var==password)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Access granted");
}
else
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Access denied");
}
delay(100);
}
}