Giao tiếp với arduino bằng ngôn ngữ c#

Dạ em chào mọi người. Em đang gặp vấn đề như thế này.
Em dùng class SerialPort trong c# để thao tác với arduino. Em có thể gửi dữ liệu cho arduino và xài hàm Serial.available() và hàm Serial.read() trong code nạp vô arduino để đọc được dữ liệu gửi từ ứng dụng trên c#. Dạ mọi người có thể cho em hỏi là em muốn từ arduino gửi ngược lại ứng dụng c# như thế nào ạ. Serial có hỗ trợ hàm nào như thế không ạ. Và có phương thức nào của class SerialPort dùng để nhận dữ liệu đó không ạ. Em cám ơn nhiều ạ. Rất mong được mọi người giải đáp.

class:

System.IO.Ports.SerialPort

Các cài đặt quan trọng:

Name // tên cổng
Baudrate // tốc độ baudrate
Parity //
DataBits //
RecivedBytesThreshold // số byte trong bộ đệm đủ để sinh ra event DataReceived.

hàm gửi dữ lieu:

Write(string text); // gửi chuỗi string
Write(byte[] data, int offset, int count); //gửi dữ lieu trong mảng byte bắt đầu từ offset và tiếp sau đó là count byte
Write(char[] data, int offset, int count); // tương tự trên

hàm nhận:

Read(byte[] data, int offset, int count); // nhận dữ lieu vào mảng data, bắt đầu từ byte thứ offset tiếp sau đó count byte trong bộ đệm.
Read(char[] data, int offset, int count); // tương tự trên
ReadExisting(); // trả về chuỗi string trong bộ đệm  + xóa bộ đệm
ReadLine(); // trả về chuỗi string trong bộ đệm khi nhận được ký tự Enter vào bộ đệm
ReadTo(string text); đọc chuỗi vào string text.

Sự kiện (event)

DataReceived // xảy ra khi số byte trong bộ đệm đạt tới ReceivedBytesThreshold
2 Likes

Dạ em cảm ơn anh nhiều. Cái hàm Read nó đọc trực tiếp bộ đệm của arduino đúng không ạ. Vậy để ghi vào bộ đệm của arduino trong đoạn code mình nạp vô arduino thì làm như thế nào ạ. Em cám ơn ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?