私はC#とArduinoの間で通信できる必要があるプロジェクトに取り組んでいます。私は、Arduinoからデータが受信されたときにC#でタイマーを起動できるようにする必要がある問題に固執しています。タイマーがなくなると、電源を切るリレーが起動します。コードは次のようになります。レーザがトリガされたときC#シリアル受信制限
アルドゥイーノ
char incoming_char=0;
#define RECEIVER_PIN A0
#define THRESHOLD 80
void setup() {
Serial.begin(9600); //for debug
pinMode(13, OUTPUT);
}
void loop() {
incoming_char=Serial.read();
// read the input on RECEIVER_PIN
int sensorValue = analogRead(RECEIVER_PIN);
if(sensorValue > THRESHOLD) {
Serial.print("A"); //Send a letter back to VS
}
}
C#
public void TimerTick(object source, ElapsedEventArgs e)
{
Tick++;
System.Diagnostics.Debug.WriteLine("Ticking! " + Tick);
if (Tick > 10)
{
UPCTimer.Stop();
}
}
private void ArduinoSerial_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
System.Diagnostics.Debug.WriteLine("We GOT DATA!");
if (UPCTimer.Enabled == false)
{
UPCTimer.Start();
System.Diagnostics.Debug.WriteLine("We started the timer!");
Tick = 0;
}
は今、それはちょうどそれがアイテムが通過するまで、私たちは無限にデータを取得したスパム。私ができることをしたいのは、ArduinoからVSに送られた最初のキャラクターだけであり、タイマーが再び無効になるまで、他のすべての入力を無視します。とにかくこれを行うにはそこにいますか?