[ASK] Cara mengirim dan menerima Serial Data dari Visual Studio C# ke Arduino dan sebaliknya secara simultan


4 posts / 0 new
Posting terakhir
#1 Min, 09/18/2016 - 13:19

[ASK] Cara mengirim dan menerima Serial Data dari Visual Studio C# ke Arduino dan sebaliknya secara simultan

Hai, Saya sedang mengikuti tutorial Membuat Monitor dan Pencatat Suhu Ruangan dengan Visual Studio C# & MS SQL di Miarana DIY. Namun, ada hal berbeda yang ingin saya lakukan, yaitu saat tombol Start ditekan, saya ingin Visual C# mengirimkan data string "on" ke Arduino. Hal ini saya lakukan karena pada program Arduino yang saya gunakan, saya membuat conditional code

if(Serial.available()>0){
start = Serial.read();
if(start == "on"){
servoMotor.write(40);
}
}

code tersebut untuk memutar servo sebesar 40 derajat ketika arduino menerima data serial "on". Nah setelah code tersebut di eksekusi, maka arduino langsung menjalankan code analog read yang selanjutnya akan diambil oleh Visual C#.

Yang saya bingung adalah, pada tutorial ini prinsip programnya adalah ketika tombol start diklik, maka method detak yang isinya open port arduino (untuk terima data serial) akan berjalan selama satu detik, lalu port arduino akan close. Kalau seperti ini, apakah bisa saya menambahkan code
if (arduino.IsOpen)
{
arduino.WriteLine("on"); //untuk kirim "on" ke Arduino
}

di program Visual C# saya? kalau bisa, pada bagian mana? Kalau tidak bisa, apakah ada cara lain untuk mengirim dan menerima data serial secara simultan?
Terima kasih sebelumnya :)

Sen, 09/19/2016 - 08:54

Menulis Data ke Serial (Visual Studio C#)

Halo, saya coba bantu ya..

 

caranya untuk menulis perintah sebelum pembacaan dimulai, bisa disunting kode pada bagian click eventnya sehingga menjadi seperti berikut:
//event ketuka tombol start diklik
        private void btn_kontrol_start_Click(object sender, EventArgs e)
        {
            //start detak untuk mulai mengaktifkan grapher
            try
            {
                //matikan tombol start
                btn_kontrol_start.Enabled = false;
                //nyalakan tombol stop
                btn_kontrol_stop.Enabled = true;
                //set batas waktu pembacaan serial sebelum dinyatakan gagal
                arduino.ReadTimeout = 1000;
                //set batas waktu penulisan serial
                arduino.WriteTimeout = 1000;

                //Lakukan inisialisasi dengan memutar sudut servo
               arduino.Open();
               if (arduino.IsOpen)
               {
                     arduino.WriteLine("on"); //untuk kirim "on" ke Arduino
               }
               arduino.Close();

                //nyalakan detak
                Detak.Enabled = true;
                //mulai detak
                Detak.Start();                      
            }
            catch (Exception gagal)
            {
                //Error handling
                //MessageBox.Show(gagal.ToString());
            }
        }
prihal cara bagaimana kita dapat melakukan baca tulis dengan simultan, kita bisa menggunakan bantuan threading. Jadi kita buat subproses untuk memproses rutin lain, misal subproreses utama hanya untuk GUI dan satu subproses khusus untuk baca dan tulis... dengan demikian program kita akan terasa simultan.. Untuk cara menggunakan threading di Visual C# bisa coba mengunjungi halaman dokumentasinya. Semoga membantu...

HTSL://HIGH THINKING SIMPLE LIVING . ME

Sab, 01/07/2017 - 21:00

[ASK] Cara mengirim data berupa hasil deteksi objek bagaimana ya

Saya mau menggabungkan hasil deteksi objek menggunakan web cam dan hasil deteksi itu mau dikirim ke Arduino untuk mengaktifkan lampu LED ny,
tapi saya masih belum bisa mengkoneksikan visual c# dengan Arduino, dan menampung hasil data di Arduinonya selalu gagal.
mohon bantuannya

Sen, 01/16/2017 - 11:15 (Reply to #3)

Lempar data ke arduino melalui serial C#

Caranya sama dengan yg ditulis oleh TS, dan yg saya tulis diatas...

pada dasarnya kita cukup menggunakan serial.WriteLine() pada C# dan Serial.read() pada arduino

misal mas bisa kirim 1 sebagai tanda led hidup atau 0 sebagai tanda led mati, tinggal ganti saja string "on" itu menjadi 0 atau 1

Kira2 begitu, jika kurang jelas silahkan post kode contoh yg mas buat biar bisa kami bantu

HTSL://HIGH THINKING SIMPLE LIVING . ME