私のプロジェクトは、私が作成した Visual Basic プログラムを使用して LED ライトを制御しています。
arduino
プロジェクトに少し問題があります。PC からコマンドをさらに送信するにはどうすればよいですか?
例えば、
これは私がアップロードしたArduinoコードです:
{int ledPin = 13; // the number of the LED pin
void setup() {
Serial.begin(9600); // set serial speed
pinMode(ledPin, OUTPUT); // set LED as output
digitalWrite(ledPin, LOW); //turn off LED
}
}
{void loop(){
while (Serial.available() == 0); // do nothing if nothing sent
int val = Serial.read() - '0'; // deduct ascii value of '0' to find numeric value of sent number
if (val == 1) { // test for command 1 then turn on LED
Serial.println("LED on");
digitalWrite(ledPin, HIGH); // turn on LED
}
}
if (val == 0) // test for command 0 then turn off LED
{
Serial.println("LED OFF");
digitalWrite(ledPin, LOW); // turn off LED
}
ご覧のとおり、( Val = 1 ) は LED 1 をオンにし、( Val = 2) は LED 1 をオフにし、さらに 2 つの LED ライトを同じarduino
スケッチに追加したので、( val = 3 ) は LED 2 をオンにしますon, (val = 4 ) は LED 2 をオフにし、同じプロセスをもう一方の LED に適用します。
しかし、LED をもう 1 つ追加して ( val = 10 ) と入力すると、LED 1 がオンになり、
val = 10 を指定したときに LED 1 が点灯した理由がわかりません。
vbで作成したプログラムから(Val)を送信する方法は次のとおりです。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
SerialPort1.Open()
SerialPort1.Write("1") 'this will turn LED 1 On
SerialPort1.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
SerialPort1.Open()
SerialPort1.Write("0") 'this will turn LED 1 off
SerialPort1.Close()
End Sub
Valに応じて、他のLEDについても同じプロセスが続きます。
この問題を解決するには?