В моей программе я использую wpf и arduino uno. Я должен создать программу, которая воспроизводит звук с увеличивающейся громкостью, но когда я нажимаю кнопку на контактной пластине, которая подключена к Arduino, звук должен остановиться. Для воспроизведения звука я использую библиотеку NAudio. Вход кнопки подключен к 5В, выход подключен к цифровому входу 2 в Arduino, а также к входу диода. Выход диода подключен к GND. Моя проблема в том, что, когда работает цикл, я не могу как будто получать данные от Arduino. Когда я нажимаю кнопку до начала цикла, все в порядке. Ниже код от visual studio и arduino.
public partial class MainWindow : Window
{
public string data;
SerialPort port = new SerialPort();
public MainWindow()
{
InitializeComponent();
port.BaudRate = 9600;
port.PortName = "COM4";
port.DtrEnable = true;
port.RtsEnable = true;
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
port.Open();
float volume = 0.000001f;
string filename = "1.mp3";
string source = System.IO.Path.Combine(Environment.CurrentDirectory, @"Sound\", filename);
var reader = new Mp3FileReader(source);
var waveOut = new WaveOut(); // or WaveOutEvent()
waveOut.Init(reader);
waveOut.Play();
waveOut.Volume = (float)volume;
try
{
for (; ; )
{
volume += 0.1f;
data = port.ReadLine();
if (data == "1\r")
{
break;
}
waveOut.Volume = volume;
await Task.Delay(3000);
}
waveOut.Stop();
}
catch
{
MessageBox.Show("it's end");
}
port.Close();
}
}
Arduino:
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorD = digitalRead(2);
Serial.println(sensorD);
delay(100);
}