본문 바로가기
만들기/Arduino

[Arduino]아두이노 #2 digitalWrite 함수로 전기를 주자

by 인성패밀리 2022. 9. 16.
반응형

LED에 전기를 주면 불이 켜지게 됩니다. 이전 포스팅에서는 아두이노의 5V 핀에 선을 연결하였기 때문에 계속 켜졌습니다. digitalWrite 함수로 핀을 조작하면 전기를 주었다 주지 않을 수 있습니다.

https://www.youtube.com/watch?v=bxOGu4wi_1I&list=PLT3wBGSbC9DzAfxuzxItvRcMNDsyEuZro&index=2 

 

먼저 선행으로 알아야 할 점들이 있습니다.

 

1. Arduino 보드 정보

2. Arduino 프로그램 설치

3. 아두이노가 사용하는 programming language

4. code 구조

5. pinMode 함수, digitialWrite 함수

 

1. Arduino 보드 정보

아두이노 보드는 종류가 여러가지 있습니다. 그 중에서 영상에 사용한 보드는 Arduino Uno R3 입니다. 이 보드에 대해서 핵심만 보려고 합니다.

 

여담으로 말하자면 아두이노는 오픈소스 프로젝트라 보드를 만드는 방법이 모두 공개가 되어있습니다. 따라서 굳이 말하자면 정품이라는 것은 없습니다. 그러나 제가 우노 R3 보드를 3가지 종류를 만져보았는데 모두 다 정품이지만 정품 중의 정품은 아래 제품 같다고 생각됩니다.

 

이제 아두이노에 써져있는 글씨를 한 번 알아보겠습니다.

① : 여기에 선을 연결하면 3.3V가 흐르게 됩니다.

② : 여기에 선을 연결하면 5V가 흐르게 됩니다.

③ : 전류는 +에서 -로 흐른다고 그랬는데 여기가 - 부분입니다.

④ : 아날로그 신호를 입력받을 수 있는 핀 입니다. A0부터 A5까지 있습니다.

⑤ : 여기 보면 RX, TX가 있는데 TX는 데이터를 전송받으면 깜빡이고 RX는 데이터를 받으면 깜빡거립니다.

⑥ : 여기에도 - 핀이 있습니다.

6번 아래에 13~2번까지 디지털 신호를 입력 출력을 할 수 있는 핀입니다.

 

보드에 대해서 이정도만 이해하고 있어도 지금은 충분할 것 같습니다.

 

2. Arduino 프로그램 설치

https://www.arduino.cc/en/software

 

Software

Open-source electronic prototyping platform enabling users to create interactive electronic objects.

www.arduino.cc

해당 경로에서 다운 받아 설치 할 수 있습니다.

알맞은 것을 설치하면 됩니다. 보통 윈도우를 사용하니  맨 위의 것을 클릭하여 설치하면 됩니다.

설치에 크게 어려움이 없어 그냥 설치하는 과정은 생략하겠습니다.

 

3. 아두이노가 사용하는 programming language

아두이노는 기본적으로 C 언어를 사용하고 있습니다. 따라서 코드를 작성하기 위해서는 C언어 문법을 알고 있어야합니다. C언어를 알고 있다면 전기적으로 부품을 연결하는 방법만 이해하면 되겠지만 그렇지 않다면 간단한 C 문법을 이해해야 합니다. 하지만 그리 어렵지 않으니 걱정하지 않아도 됩니다.

 

복잡한 코드는 나중에 다른 부품들도 사용하면서 같이 알아보아도 충분합니다.

 

4. code 구조

아두이노 프로그램을 설치하고 더블클릭하여 실행하면 다음과 같은 코드가 보일 것입니다.

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

첫 번째 라인은 setup 함수라고 합니다. 아두이노를 실행할 때 초기 값을 설정할 일이 있으면 설정하는 부분입니다. {} 안에 그 내용을 작성하면 됩니다.

 

여섯 번째 라인은 loop 함수라고 합니다. 여기에 코드를 넣으면 아두이노가 반복적으로 계속 실행하게 됩니다. 그렇다면 이제 LED를 켜기 위해서 어떤 코드가 필요한지 알아보겠습니다.

 

아 그리고 코드는 항상 위에서 아래로 실행하게 됩니다.

 

5. pinMode 함수, digitialWrite 함수

영상에서 나왔던 코드를 알아보겠습니다.

void setup(){
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
}

void loop(){
  digitalWrite(2, 1);
  delay(1000);
  digitalWrite(3, 1);
  delay(1000);
  digitalWrite(4, 1);
  delay(1000);
  digitalWrite(2, 0);
  delay(1000);
  digitalWrite(3, 0);
  delay(1000);
  digitalWrite(4, 0);
  delay(1000);
}

setup 부분은 초기 설정을 하는 부분이라 설명했습니다. 무슨 초기 설정이냐면 2번 3번 4번 핀을 사용하기 위해서 OUTPUT 모드(출력 모드)로 초기 설정을 해주어야 핀을 사용할 수 있습니다. 그게 pinMode(2, OUTPUT); 입니다.

 

loop 부분은 코드가 계속 반복적으로 실행하는 부분입니다. digitalWrite 함수는 사용하고 싶은 핀의 전기를 주거나 끌 수 있는 기능입니다. 1 또는 HIGH라 입력하면 전기를 준다는 것이고, 0 또는 LOW라 쓰면 전기를 끄는 것입니다.

 

delay 함수는 다음 코드로 넘어갈 때 잠시 기다릴 수 있습니다. 1000은 1초를 의미하며 단위는 밀리초 단위입니다. 그래서 1초를 기다리려면 1000이라 작성해야합니다.

 

아두이노로 코딩을 배우는 것은 올바른 일이 아니라 생각합니다. 기본적으로 C언어의 포인터 이전의 개념을 미리 알고 있으면 편하다고 생각합니다. 아두이노에서 사용하는 각 함수들은 당연히 추가적으로 배워야하는 부분이며 기본적인 C언어 문법은 베이스로 깔고 가야한다고 생각합니다. 추후 C언어에 대해서 가장 기본적인 문법들을 소개해보겠습니다.

반응형

댓글