반응형

C#과 아두이노 시리얼 통신을 해 보자.

 

 

 

적외선 온도센서 GY-906을 아두이노에 연결한다.

 

VIN - 5V

GND - GND

SCL - A5

SDA - A4

 

#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  mlx.begin();
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.print("Ambient Temp: ");
  Serial.println(mlx.readAmbientTempC());
  Serial.print("Object Temp: ");
  Serial.println(mlx.readObjectTempC());
  delay(1000);
}

아두이노에 위 코드를 업로드한다.

 

using System;
using System.Threading;
using System.IO.Ports;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            SerialPort serialPort = new SerialPort();

            try
            {
                serialPort.PortName = "COM3"; // 시리얼 포트 이름을 "COM3"으로 설정한다. 실제로 사용하려는 시리얼 포트 이름이다.
                serialPort.BaudRate = 9600; // 시리얼 통신의 전송 속도를 9600 보드로 설정한다. 이는 일반적으로 사용되는 보드레이트 중 하나이다.
                serialPort.DataBits = 8; // 8비트의 데이터 비트를 사용하여 데이터를 전송한다. 이는 일반적으로 가장 많이 사용되는 데이터 비트 설정이다.
                serialPort.StopBits = StopBits.One; // 1비트의 정지 비트를 사용하여 데이터 전송이 끝났음을 나타낸다.
                serialPort.Parity = Parity.None; // 패리티 비트를 사용하지 않는다. 데이터 전송에서 오류 검출을 위해 패리티 비트를 사용할 수 있지만, 여기서는 사용하지 않는다.

                Thread.Sleep(2000); // 시리얼 포트 설정이 완료된 후 잠시 대기하여 안정적으로 연결될 수 있도록 한다.
                serialPort.Open(); // 시리얼 포트를 연다. 이 단계에서 설정된 포트 이름과 통신 속도 등이 적용되어 시리얼 통신이 시작된다.
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            while (serialPort.IsOpen)
            {
                try
                {
                    string data = serialPort.ReadLine(); // 시리얼 포트에서 한 줄의 데이터를 읽어온다. 데이터가 줄 바꿈 문자로 끝날 때까지 읽는다.
                    Console.WriteLine(data);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: " + ex.Message);
                }

                Thread.Sleep(100);
            }
        }
    }
}

C# 코드를 입력하고 실행한다.

 

 

반응형
Posted by J-sean
: