In mijn BMS moet ik per accu een mini boardje bouwen, en deze boardjes moeten communiceren met een centrale unit, om hun status door te geven enzo.
Seriele communicatie is hiervoor het simpelste denk ik, dus een testje gestart met de netduino. Ik heb er twee dus een goede test is om deze met elkaar te laten praten over een seriele verbinding.
Setup:
Pin1 van netduino 1 op pin 2 van netduino 2
Pin2 van netduino 1 op pin 1 van hetduino 2
En de grounds connected natuurlijk
Code op de sender:
2: {
3: SerialPort port = new SerialPort(SerialPorts.COM1,115200);
4: OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
5:
6: port.Open();
7:
8: while (true)
9: {
10: led.Write(true);
11: port.Write(buff, 0, buff.Length);
12: Thread.Sleep(100);
13: led.Write(false);
14: Thread.Sleep(900);
15: buff = Encoding.UTF8.GetBytes(DateTime.Now.TimeOfDay.ToString());
16: }
17: }
2: {
3:
4: SerialPort serial = new SerialPort(SerialPorts.COM1, 115200);
5: serial.ReadTimeout = 8;
6: serial.DataReceived += new SerialDataReceivedEventHandler(serial_DataReceived);
7: serial.Open();
8: while (true)
9: {
10:
11: Thread.Sleep(Timeout.Infinite);
12: }
13:
14: }
15:
16: staticvoid serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
17: {
18: int bytesReceived = ((SerialPort)sender).BytesToRead;
19: byte[] bytes = newbyte[bytesReceived];
20: ((SerialPort)sender).Read(bytes, 0, bytes.Length);
21: string received = newstring(System.Text.Encoding.UTF8.GetChars(bytes));
22: Debug.Print(received);
23:
24: }
Foto: