개발자인가,디자이너인가,다능인인가

Arduino 101(Genuino 101) 제누이노 기울기 활용하기 2탄 - 부저울리기 본문

- 프로그래밍/Arduino

Arduino 101(Genuino 101) 제누이노 기울기 활용하기 2탄 - 부저울리기

PRO HYEON 2016. 9. 14. 06:32

안녕하세요 :)


http://enth.tistory.com/7 에 이어서 2탄으로 기울기를 활용해 Event를 활용하는 내용을 담아보려고 합니다.


이 편을 따라하시려면 위 링크에서 기울기 코드까지 업로드 하셔서 확인을 하신 다음에 아래 과정을 따라 하셔야 합니다.





일단 이런식으로 평평한곳에 Arduino101 (Genuino : 제누이노) 를 위치하면 대부분 값이





이런식으로 나오게 될겁니다.


뭐, 이런식으로 안나와도 상관 없습니다.


그럼 저는 여기서 Arduino101 (Genuino : 제누이노) 를 90도 기울여보도록 하겠습니다.





이런식으로 말이죠


그러면 Serial 창의 수치가 어떻게 변했나 볼까요?





두번째 수치와 세번째 수치가 많이 바뀌었네요


그럼 저는 두번째 수치가 1이 되면 90도가 넘어간것으로 판단하고


이때 부저를 울려보도록 하겠습니다.




부저를 하나 준비해보도록 하죠


제 부저는 3핀이며 G V S 라고 마크가 되어있습니다.


그러면 선에 맞게


Arduino101 (Genuino : 제누이노) 에도


G - GND

V - 5V

S - PIN


에 꼽아주시면 됩니다.


PIN은 코드내에서 지정할 수 있으므로, 몇번핀에 꽂았는지만 기억하시면 됩니다.



그러면 아두이노 코드로 다시 넘어가겠습니다.




일단은 buzzer을 선언해줘야겠죠


저는 아까 9번에 꽂아서 맨 위에


int BuzzerPin = 9;


라고 선언해줬습니다.


9는 자신이 꽂은 PIN 숫자를 넣으시면 됩니다.



그리고 loop() 함수 안에


tone(BuzzerPin, 261);


tone 함수인데, 9번에 261이 '도' 로 알고있는데,


수치에 따라서 특정 음계를 낼 수 있습니다.


이렇게 해서 업로드를 해주시고, 부저에서 소리가 나면 정상입니다.


그러면, 부저에서 소리도 울렸겠다 본격적으로 시작해보죠



아까, 부저코드를 심었던 곳에 조건문을 하나 심어주죠.


if (ay >= 1)


저는 두번째 수치가 1이 되면 90도가 된것이라고 판단한다고 위에서 말씀드렸습니다.


직접 작성하시고 업로드 하시면


처음부터 부저가 울리는 것이 아닌 90도를 기울였을 때


울리는것을 알 수 있습니다.


그런데!


"부저는 잘 울리는데 원래의 각도로 돌아와도 계속 울려요"


tone함수는 ON/OFF 형식이라서 그렇습니다.




이런식으로 if 문 아래에 else 문을 넣어서


else { noTone(BuzzerPin); }


noTone을 해주면 2번째 수치가 원래대로 돌아왔을 때


부저는 다시 울리지 않을겁니다.



이렇게 해서 Arduino101 (Genuino : 제누이노)의 기울기를 이용해


부저를 울리게(Event) 해보았는데요.



이로서, 다양하게 응용이 가능합니다.


자신이 지정한 기울기의 조건을 만족시키면


LED 를 빛나게 한다던지 말이죠 :)




아, 수치가 - 때문에 고민이시라면 코드내에서 if문을 이용해


간단하게 절댓값으로도 바꿔서 양의 수치만 뜨게할 수 있으니


이렇게 응용하시는 것도 좋을 듯 합니다 :)


이상 글을 마치도록 하겠습니다.


Comments