본문 바로가기

Programming/Embeded

[2] 아두이노 첫 프로젝트 - LED 깜빡거리게 하기

반응형

바로 프로젝트에 돌입하고 싶지만, 우선 아두이노를 동작시키기 위한 기초적인 강의를 들어보고 시작하는 것이 현명하다고 판단했다.

 

아두이노 IDE 설치

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

 

Software

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

www.arduino.cc

여기서 나는 윈도우앱으로 설치를 했다.

 

앱을 깔면 이러한 창을 볼 수 있다.

 

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

}

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

}

셋업과 루프 두 가지 함수가 지정되어 있는 데 둘 중 하나라도 없으면 컴파일 오류가 나온다.

 

셋업은 초기에 한 번만 실행된다.

 

루프는 말그대로 아두이노는 전원이 끊기지 않는 이상 무한 반복한다. 

 

 

아두이노 예제 blink

아두이노 파일탭의 예제 -> 01. Basics -> Blink를 누르면

이러한 창이 새롭게 뜨는 것을 볼 수 있다.

 

체크표시를 눌러 컴파일을 해보자.

 

 

 

그러면 이렇게 정상 컴파일이 완료되는 것을 볼 수 있다.

 

코드를 업로드하기 전에 설정해줘야 하는 것이 있는데, 바로 아두이노가 연결된 포트를 설정해주는 것이다.

 

툴 탭에서 아두이노가 연결된 포트로 변경해주고 업로드해보자.

 

 

업로드가 완료된 것을 확인할 수 있다.

 

 

 

 

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

이 코드는 우노의 경우 13번 핀에 연결된 L LED의 불을 1초간 켰다가 1초간 쉬는 것을 반복하는 코드다.

 

HIGH와 LOW, LED_BUILTIN은 모두 상수이다.

 

void setup() {
  pinMode(13, 1);
}

void loop() {
  digitalWrite(13, 1); 
  delay(1000);                    
  digitalWrite(13, 0);    
  delay(1000);                      
}

이렇게 작성해도 동일하게 작동하는 것을 확인할 수 있다.

 

 

코드를 업로드하고나서 작동하는 모습

 

pinMode 는 특정 핀을 모드(Input, Output, Inputpool)로 바꿔주는 셋업하는 역할을 한다. 아두이노 IDE에 있는 라이브러리를 사용하는 것 같은데, 이후에는 이런 것 없이도 동작할 수 있도록 하면 좋지 않을까 싶다.

 

 

이해한다는 것과 추상화된 것을 부셔보는 용기

안다는 것은 추상화된 무엇인가를 쪼개보는 것에서 온다. 그래서 이해한다는 것은 이치를 쪼개본다는 뜻이고, 일본어로도 分카루고, 분석하여 하는 것도 역시 쪼개본다는 의미의 Analysis가 된다.

mrlazydev.tistory.com

추상화된 것들을 이해해보려는 시도는 실력향상에 있어서 큰 도움이 되기 때문이다.

 

 

 

LED 깜빡

짧은 다리를 GNU핀에, 긴다리를 13번 핀에 넣자 불이 이렇게 깜빡인다. 깜빡거리는 속도는 매우 빠르게 수정해봤다.

 

다만, 저항이 없이 이렇게 사용하면 아두이노나 LED에 데미지를 줄 수 있기 때문에 저항을 연결하는 것을 권장한다고 하지만, 일단 큰 문제는 없다고 해서 해봤다.

 

 

 

 

 

 

반응형