[WinForms / 아두이노] LED 제어

00·2025년 2월 9일

프로젝트

목록 보기
7/14

C# 프로그램으로 아두이노의 LED 제어하기

  1. 컴퓨터에 C# 프로그램을 실행하고,
  2. 아두이노에 스케치 프로그램을 실행.
  3. USB 케이블로 컴퓨터와 아두이노를 연결.
  4. 시리얼 통신을 통해 서로 데이터와 명령을 주고 받는다.
    (시리얼 통신을 할 수 있게 양쪽에 코드를 작성한다.)

아두이노의 회로 구성 및 스케치 코드

  • 개발 환경

    • 아두이노 우노(UNO) 보드
    • LED
    • 저항
    • 브레드보드
    • 점퍼케이블MM
  • 아두이노 회로 구성

    • LED의 긴 쪽 다리(에노드) -> 13번 핀에 연결
    • 짧은 쪽 다리(캐소드) -> 그라운드에 연결
  • 스케치 코드

// c# code
//
void setup()
{
  Serial.begin(9600); // 1초에 9600비트 전송
  pinMode(13, OUTPUT); // 디지털 13번 핀을 출력 모드로 설정
}


// loop() 함수 : 
// 컴퓨터에서 실행 중인 C# 프로그램에서 전달된 명령에 따라 LED를 켜고 끄는 코드
void loop()
{
  if(Serial.availavble()) // Serial.available(): 시리얼 통신으로 어떤 데이터가 전달될 때 참(True)을 반환
    					  // (컴퓨터에서 시리얼 통신을 통해 데이터가 전달되면,)
  {
    char ch = Serial.read(); // (Serial.read() 메서드로 1 바이트(byte)를 읽어 그 값을 비교한다)
    
    if(ch == '1') // 읽은 값이 문자 '1'인 경우
      digitalWrite(13, HIGH); // digitalWrite() 메서드로 13번 핀에 HIGH 신호를 전달해 13번 핀에 5V가 걸리게 하여 LED를 켜고,
    else // 읽은 값이 문자 '1'이 아닌 경우
      digitalWrite(13,LOW); // digitalWrite() 메서드로 13번 핀에 LOW 신호를 전달해 LED를 끕니다. 
  }
  delay(100); //  loop() 함수는 매우 빠르게 반복하기 때문에 100 밀리초 지연시간을 줘 프로그램이 원활히 동작하도록 합니다.
}
* 시리얼 통신으로 9600으로 통신 속도를 맞춰 준다.
* 13번 핀을 출력 모드로 썼기 때문에, 13번 핀으로 LED를 제어한다.
  • 윈폼 디자인

  • 소스 코드

0개의 댓글