C#으로 아두이노led on/off하기

신동원·2021년 9월 26일
0

c#

목록 보기
2/2


먼저 아두이노를 컴퓨터와 연결한 후 장치관리자에 들어가 포트번호를 확인해준다.

그 이후 아두이노스케치에서 포트번호와 아두이노 종류를 맞춰준다.


void setup() {
//13번 핀 아웃풋으로 설정 pinMode(13, OUTPUT);
//통신속도 9600
Serial.begin(9600);
}
void loop() {
//만약 시리얼포트로 신호가 들어왔다면
if(Serial.available())
{
//시리얼포트를 읽어서 c에 대입
int c = Serial.read();
if(c == '1')
{
digitalWrite(13,HIGH);
}
else if(c == '0')
{
digitalWrite(13,LOW);
}

아두이노 소스이다.
C#에서 시리얼통신으로 신호를 보내주면 led를 켰다껐다 하는 소스이다.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports; //serialport클래스를 사용하려면 선언해줘야한다.

namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        //아두이노 보드가 연결된 포트의 이름
        serialPort1.PortName = "COM7";
        //아두이노 보드 통신속도
        serialPort1.BaudRate = 9600;
        //지정한 포트 열기
        serialPort1.Open();
    }

    //켜기 버튼을 눌렀을 때 작동하는 클래스
    private void button1_Click(object sender, EventArgs e)
    {
        //시리얼 포트로 "1"을 보낸다.
        serialPort1.Write("1");

        //레이블에 LED켜짐 표시
        label1.Text = "LED 켜짐";
        button1.Enabled = false;
        button2.Enabled = true;
    }

    //끄기 버튼을 눌렀을 때 작동하는 클래스
    private void button2_Click(object sender, EventArgs e)
    {
        //시리얼 포트로 "0"을 보낸다.
        serialPort1.Write("0");

        //레이블에 LED켜짐 표시
        label1.Text = "LED 꺼짐";
        button1.Enabled = true;
        button2.Enabled = false;
    }
    
    //폼이 닫히는 도중에 작동하는 클래스
    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        //만약 시리얼포트가 열려있다면
        if(true == serialPort1.IsOpen)
        {
            //시리얼포트를 꺼라
            serialPort1.Close();
        }
    }
}
}

C#소스이다. 주석으로 설명은 자세히 적어놨다.



UI모습이다.


https://youtu.be/L4TaRqTaXhY

profile
오늘보다 내일 더 나은 사람이 되기 위해 노력하자

0개의 댓글