정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노를 처음다뤄봐서...
김해성 | 2016-12-30

안녕하세요. 다두이노 홈페이지를 통해 처음으로 오렌지보드, 코코아팹을 알게 되었습니다.

오렌지보드를 사서 처음으로 아두이노 프로그래밍을 해보게 되었습니다.

프로그래밍하다 궁금한게 있어서 질문드리게 되었습니다.

 

LED1개를 0.1초 작동시키고 0.1초 정지

또 다른 LED 한개를 0.5초 작동그리고 0.5초 정지

이렇게 프로그래밍했더니 제가 프로그래밍 한 순서대로 작동하더라구요..

 

그러니까.. LED 한개가 0.1초 작동, 정지가 바로바로 반복되지 않고

처음 LED가 0.1초 켜지자마자 다른LED가 0.5초 작동하고 처음 LED가0.1초 동안 꺼지면 다음LED가 0.5초 동안 꺼지는 순으로...

 

첫번째 LED를 0.1초 켜짐꺼짐 다른 LED 0.5초 켜짐꺼짐으로 프로그래밍했습니다. 그랬더니  첫번째 LED가 꺼지고 나서 0.1초후에 다시 켜지지 않고  다른 LED가 작동하는 것을 끝내야 그제서야 작동하더군요...

 

저는 정확하게 두개의 LED를 각각 0.1초 켜짐꺼짐 0.5초 켜짐꺼짐 따로따로 작동하길 원했는데 그게 안되더라구요..

원래 오렌지보드가 그런건지 아니면 이런 문제를 해결 할 수 있는지 궁금합니다.

 

프로필사진

Klant 2017-01-02 08:30:14

안녕하십니까? 김해성님!

 

아두이노에 입문하신 것을 진심으로 축하드립니다. 

 

저 역시 아두이노를 시작하였을 때 김해성님과 같은 고민을 했었습니다^^

 

우선 아두이노의 소스 코드는 위에서 아래로 한 줄 한 줄 순차적으로 진행됩니다. 

 

질문 주신 내용에 대한 이슈는 delay() 함수 때문이죠. delay() 함수가 가지고 있는 속성을 이해하시면 원인에 대해 쉽게 파악할 수 있으실 것이라고 생각됩니다. 

 

아래 링크는 아두이노에서 사용되는 함수의 목록입니다. 참고해보시면 좋을 것 같네요!

 

http://www.kocoafab.cc/tutorial/view/38

 

추가적으로 delay() 함수는 delay 함수 안에 들어가는 파라미터(ms) 만큼 프로그램을 일시 중지 시키는 함수입니다. 즉 해당 시간만큼 프로그램은 아무 동작도 하지 않는 대기 상태가 된다는 점 알아두세요! ;) 

이전글   |    아두이노의 비콘 송출 값 자동 수신이 가능한가요??... 2016-12-30
다음글   |    아두이노와 선풍기 접목에 관력해서 질문드립니다.... 2017-01-02