본문 바로가기

코딩과 교육/아두이노

[CEA-009~13] LED 3개를 스위치로 점멸시키기

[CEA-009~13] LED 3개를 스위치로 점멸시키기











지난 시간에 이어 3개의 LED 를 점멸시켜보겠습니다. 아두이노 우노에는 0 번에서 13번까지 총 13개의 디지털 입출력이 가능한 핀이 있습니다. 여기에 A0 에서 A5 까지 6개의 아날로그 입력 핀이 있습니다. 합치면 19개의 핀이 있고 모두 디지털입출력이 가능합니다.



3개의 LED 를 2, 3, 4번에 연결하고, 스위치는 9번에 연결합니다. 스위치를 연결할 때 주의항 내용이 있습니다. 플로팅(Floating) 상태에 두지 않기 위해서 풀업 또는 풀다운 상태를 만들어주어야 합니다.



하드웨어 연결이 끝났으면 소프트웨어를 만들어봅시다. 코딩의 시작입니다.



LED 는 초기에 켜져있다가 스위치를 누르면 LED 가 꺼지게 만들어봅시다. 



앞에서 만들어 본 코드를 조금씩 고쳐서 원하는 대로 LED 불빛이 바뀌게 해봅시다.



스위치가 눌려있는 동안 2, 3, 4 번에 연결된 LED 는 순서대로 켜지고 꺼지게 됩니다. 간단한 조건인 if 문을 사용할 수 있으면 됩니다. 변수를 하나 만들어 두고 반복할 때마다 1씩 증가하게 합니다. 1일대는 첫번째 LED를, 2일때는 두번째 LED를, 3일때는 세번째 LED를 켜고, 그 외의 다른 수(4)일때는 0이 되게 합니다.



위에서 만들었던 코드를 수정해봅시다.



% 연산은 나누고 남은 수, 나머지를 반환합니다. 그래서 i 를 계속 증가시킬때 i%3 은 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, ... 이렇게 세개 숫자를 반복해서 보내줍니다. 

여기에 버튼을 누를 때마다 LED의 빛을 하나씩 옆으로 이동하게 해봅시다. 위 소스를 실행시키면 약간 이상합니다. 그 부분을 찾아보세요.



앞에서 내준 숙제의 답입니다. 미리 보지 마시고 꼭 세번째 동영상을 보고 프로그램을 고쳐본 다음에 보세요.



답은 동영상을 확인하세요. 잘 보면 보입니다.