아두이노 C# 연동(시리얼 통신) 아두이노2017. 9. 18. 00:56
<목표>
아두이노와 C#을 시리얼통신으로 연결한다.
<해야할 것>
비주얼 스튜디오에서 할 것
- UI 디자인 : 버튼
- 아두이노로 LED제어를 위한 데이터 전송(버튼과 바인딩)
아두이노IDE에서 할 것
- PC로부터 시리얼 통신을 타고 온 데이터로 LED 제어하는 코드 작성
아두이노에서 할 것
- 회로 꾸미기
<UI 디자인>
<C# 코드>
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace MyForm { public partial class Form1 : Form { private SerialPort sp = new SerialPort(); public Form1() { InitializeComponent(); sp.PortName = "COM3"; sp.BaudRate = 9600; sp.Open(); } private void Form1_Load(object sender, EventArgs e) { } private void label1_Click(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { sp.Write("1"); } private void button2_Click(object sender, EventArgs e) { sp.Write("0"); } private void button3_Click(object sender, EventArgs e) { if (sp.IsOpen) { sp.Close(); } } ~Form1() { if (sp.IsOpen) { sp.Close(); } } } } |
<아두이노 코드>
void setup() { Serial.begin(9600); pinMode(8, OUTPUT); } void loop() { char c = Serial.read(); if (c == '1') { digitalWrite(8, HIGH); } else if (c == '0') { digitalWrite(8, LOW); } } |
<회로>
<주의사항>
아두이노 IDE와 C#의 프로그램이 같은 포트를 쓸 경우 프로그램 충돌이 난다.
여러가지 해결 방법이 있겠지만, 그냥 C# 프로그램을 실행시킬 때는 아두이노 IDE를 잠시 꺼주면 되겠다.
'아두이노' 카테고리의 다른 글
서보 모터 구동 예제 (0) | 2017.10.04 |
---|---|
초음파 거리 측정기(아두이노, 초음파센서) (1) | 2017.09.30 |
블루투스로 LED, 서보모터 동작 (0) | 2017.09.16 |
스마트폰으로 원격으로 LED 껐다 켜기 (0) | 2017.09.16 |
능동부저 초간단 코드 (0) | 2017.09.10 |