안녕하세요~


이번시간에는 아두이노를 통한 기초적인 제어를 배워보도록 하겠습니다.



#1 아날로그와 디지털 신호


아두이노는 크게 디지털 신호의 입력과 출력, 아날로그 신호의 입력이 가능하게 고안이 되었습니다.


디지털 신호는 흔이 0 아니면 1의 값 (0=False, 1=True)을 갖는 이진 신호 또는 논리 신호라고 합니다.

굳이 전압으로 따지자면, 0 일때는 0V의 전압이, 1일때는 5V의 전압이 출력된다고 볼 수 있죠!


그럼 아날로그 신호는 무슨 신호일까요?


디지털 신호가 0V와 5V 밖에 없다고 한다면, 아날로그 신호는 0V와 5V 사이의 그 어떤 값도 가능한 신호를 아날로그 신호라 할 수 있습니다.

즉, 0V와 5V 사이의 어떤 연속적인 값이라 보시면 됩니다.



주로 디지털 신호는 통신이나 On/Off 제어를 위해 많이 쓰이는 신호이고, 아날로그 신호는 센서의 값을 받아들일 때 많이 쓰이는 신호입니다.


그럼 디지털 신호를 어떻게 쓰는지 살펴봅시다.



#2 발광다이오드 (LED)


디지털 신호를 통해 제어하는 하드웨어중 대표적인것이 바로 발광다이오드(Light Emitting Diode, LED) 입니다. 




즉, '다이오드' 중에서 빛을 발하는 다이오드를 말합니다. 다이오드는 일정한 방향으로만 전류가 흘러가게 해주는 전자부품으로, 만약 LED의 +,-가 반대로 연결된다면 끊어진 회로와 같게 되는겁니다. 


LED의 극성을 찾을때 흔히들 다리 길이를 보고 찾으시는데, 긴쪽이 +, 짧은쪽이 -입니다. 하지만 다리를 자르고나면 극성은 어떻게 구분할까요~?


LED안을 자세히 보면 위의 그림처럼 내부 쇠막대기가 긴쪽이 있고, 짧은쪽이 있답니다. 내부 쇠막대기가 짧은쪽이 +, 긴쪽이 - 라고 생각하시면, 다리를 잘라도 극성을 구분할 수 있겠죠?



#3 LED 회로 구성


그렇다면 LED를 이용해서 회로를 구성해봅시다.


기본적인 부품으로는 전원이 될 건전지와 LED, On/Off를 가능하게 할 스위치, 그리고 LED에 걸리는 전압을 낮춰주는 저항 이 필요합니다.

저항은 330ohm 내지 1Kohm 정도 사용하면 됩니다.



위 사진처럼 회로를 꾸미고 나면 스위치를 켜고 끄는거에 따라 LED의 불빛이 켜졌다 꺼졌다 할겁니다~



#4 아두이노를 이용한 LED 제어


이번에는 아두이노를 이용해서 LED를 On/Off 해봅시다.

회로에서 전원부분과 스위치를 디지털 아웃풋으로 대체하면 회로는 완성됩니다.




자 그럼 단순하게 1초 간격으로 깜빡이게 만들어볼까요?

불을 켜려면 digital pin에 On 이라는 신호를 넣어주면 됩니다.

아두이노에서 디지털 아웃풋을 주려면 

digitalWrite(핀 넘버, 값(HIGH or LOW)) 을 넣어주면 되죠.


그럼 켤때는 

digitalWrite(13,HIGH);


끌때는

digitalWrite(13,LOW);


를 입력해주면 됩니다. 


그리고 1초라는 시간을 줘야하기때문에,


중간에 delay(1000) 를 넣어 1000ms = 1s 동안 아웃풋이 유지되게 만드는겁니다.



알고리즘을 도식화하면 위와 같이 나타내지고, 코드는 


Arduino IDE -> 파일 -> 예제 -> Basics -> 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
}


위 코드를 입력하면 LED가 1초 간격으로 깜빡이는걸 확인 할 수 있죠!


이렇게 간단하게 디지털 신호의 출력만으로 특정 하드웨어의 전원을 껐다 켰다 할 수 있답니다.

다음시간에는 이 LED의 밝기를 어떻게 조절하는지에 대해 살펴볼게요~

+ Recent posts