Merhaba arkadaşlar.Arduino’ma bi tane big sound microphone sensoru ekledim. Arduino kodunda gelen değer 0.1 den büyükse,Serial.Println yaparak yazdırıyorum. C# programımda da port işlevlerini yaptıktan sonra,serialport1.WriteLine (Arduino da satır da ekliyodum) kodunu kullanıp o değerin okunmasını sağlıyorum.Şöyle ki; bir alkış ya da düşük sesle (0.1 den büyük.Yani düşük bi alkış ya olur) konuştuğunuzda C# projemdeki label i değiştirebiliyorum.Tabi sadece label değil herhangi istediğim bir şeyi yaptırabilirim.Fakaaaat.İlk alkışı veya sesi duyduktan ve program onu işledikten sonra,program tıkanıyor ve tıklanmıyor.Anca Visual Studio dan durdurman gerekiyo.Eğer bu sorun çözülürse düşük alkış-orta- ve yüksek ses çıkaran 3 tane davranış için 3 tane işlev uygulatmayı düşünüyorum.Tabi ilkinden sonra çıkarmazsa. Yardımlarınızı bekliyorum. Not: Kodu Arduino dan gönderip Programdan alıyorum.Input tarafı Arduino da çünkü.Ayrıca: arduino da yazdırmada kullandığım kod şu if (volts > 0.01) { Serial.println(“Ses 0.1-0.5 Arasinda\n”); } C# ta da: string yazi = serialport1.ReadLine(); if (yazi == “Ses 0.1-0.5 Arasinda”) { label1.Text = “Ses Çıkardın”; }
esref bey, kısa ve net bi şekilde anlatırsanız yardımcı olmaya çalışayım.
Bence internetten başkalarının yaptığı benzer projelerin kodlarıylada deneyin .
C# tarafında okumayı timer içinde mi yapıyorsun yoksa serial port elemanının data receive olayı içinde mi?
öncelikle olarak veri alma kısmını timer_tick içinde yapın ve try, catch içinde deneyin bi,
C# ta serial komudunu ReadLine değil de ReadExisting kullanınca tıkanma gidiyor.Fakat şöyle bi sorun var.Şimdi ben yeni projemde IR üzerine çalışıyorum.Bu uzaktan kumandadan gönderdiğim komuduArduino kodunda seri porta yazdırıp, C# deneme programında ReadExisting diyip seri porttan yazılan tanımı textboxa okutabiliyorum. Fakat textBox1.text == “bla bla” veya ReadExisting olayını bir stringe eşitliyip stringdegiskeni == diyince bir türlü görmüyor.Denemediğim şey kalmadı…