이번에는 아두이노를 활용해서 작은 LED 모듈에 불을 켜볼 거예요!
우선 아두이노와 LED 두 가지는 무조건 필요하겠죠?
그리고 또 하나의 필수 준비물이 있는데요, 바로 저항!
그냥 LED에 불만 키면 되는데 저항이 왜 필요할까요?
그 이유는 LED가 버틸 수 있는 전류가 정해져 있기 때문입니다.
만약 그 이상으로 전류가 흐르게 된다면, LED는 견디지 못하고 망가져버려요!
LED에 전류가 많이 흐르면 안 되는 거랑 저항이랑 무슨 연관이 있는 건지 잘 이해되지 않는다면
중학교 과학시간에 배우는 옴의 법칙 V=IR을 떠올려봅시다...
V는 전압 I는 전류 R은 저항... 여기서 전압은 아두이노가 고정적으로 5V를 출력하니깐 전압은 고정(상수)이 되죠
우리가 제어하고 싶은 건 전류인데, 전류와 저항의 곱이 일정하므로..? 저항이 커지면 전류가 작아지죠!
따라서 저항을 달아서 회로의 저항값은 올리고, 전류는 낮추는 겁니다.
자 그러면 본격적으로 시작해볼까요?
저번 시간에 설치한 아두이노 IDE를 실행하고 새로운 스케치 파일을 열어봅시다.
아직 아무것도 안 썼는데 처음부터 뭔가 영어로 적혀있습니다.
이 "//" 뒤에 적혀있는 글들은 주석으로, 컴퓨터는 볼 수 없는 메모장 같은 역할입니다.
따라서 실행에 아무런 영향을 주지 않으므로 지워도 상관없는 부분입니다.
문제는 주석이 아닌 부분인데, 저것들은 아두이노 코드를 구동하기 위한 기초 함수들입니다.
void setup() 부분은 코드를 실행시킬 때 단 한 번만 실행됩니다.
따라서 굳이 여러 번 작동할 필요 없는 코드들이 이곳에 들어갑니다.
void loop() 부분은 무한히 반복해서 실행됩니다.
따라서 계속 실행되어야 하는 코드들이 이곳에 들어갑니다.
지금은 뭐가 한 번만 실행되어야 하는 건지 뭐가 반복되어야 하는지
감이 잘 안 잡힐 수 있지만, 몇 가지 해보다 보면 느낌이 올 거예요~
기본적인 코드부터 알아야겠죠?
첫 번째는 pinMode 함수입니다. 대소문자 구분하셔야 해요
pinMode 함수는 지정한 핀을 입력으로 사용할지 출력으로 사용할지 선언하는 함수입니다.
그렇다면 먼저 어떤 핀을 사용할지 정해야겠죠?
0번과 1번은 통상적으로 사용하지 않는 핀입니다. 저 두 핀을 사용하면 업로드 과정에서 오류가 생깁니다.
저는 5번 핀을 사용하도록 할게요.
void setup() {
pinMode(5, OUTPUT);
}
우리는 LED를 켤 거니깐 5번 핀을 출력 핀(OUTPUT)으로 설정해줍니다.
이런 선언들은 한 번만 실행되면 되기에 setup부분에 작성합니다.
5번 핀을 출력 핀으로 선언했으니 출력을 해봐야겠죠?
디지털 신호를 줄 때 사용하는 함수인 digitalWrite함수를 사용하여
5번 핀에 전류를 공급하도록 합니다.
void loop() {
digitalWrite(5, HIGH);
}
HIGH는 ON의 개념입니다. 반대로 끄려면 LOW를 넣으면 됩니다.
이 코드를 실행하면 5번 핀에 전기가 들어오는 상태가 됩니다.
하지만 LED를 켜려면 연결을 해줘야겠죠?
LED는 극성이 있어서 반대로 연결하면 전류가 흐르지 않아요
다리가 긴 쪽이 +,짧은 쪽이 -이니 잘 확인하고 연결합니다.
아두이노의 GND핀은 건전지의 -극이라고 보면 돼요.
5번 핀을 출력으로 설정했으니 5번 핀이 +극
그리고 저항을 거쳐서 LED와 연결시켜주면 불이 들어옵니다!
다음엔 피에조 부저를 사용해볼게요