WORK - 5 (과제)

JMIN·2025년 4월 11일

사물인터넷

목록 보기
13/23

🚀 도전과제

  • 버튼을 누르면 음악이 시작되도록 한다. 버튼 2개에 각각 다른 음악이 연주되도록 한다.

⚡ 회로도


내부 풀업을 사용했기 때문에, 외부에 10kΩ 저항을 따로 연결하지 않았다.

📜 코드


원래는 "pitches.h" 헤더 파일을 따로 만들어 #include로 불러오지만, Tinkercad에서는 해당 파일을 사용할 수 없어 필요한 음계#define으로 직접 정의해서 사용했다.


for문을 이용해 배열의 모든 값을 순서대로 출력하며 소리를 내기 때문에,
동요 작은 별곰 세 마리음계와 박자에 맞춰 배열을 선언했다.


digitalRead() 함수를 사용해 btn1btn2의 값을 각각 btnValue1, btnValue2에 저장하였다.
시리얼 모니터를 통해 버튼 입력이 정상적으로 들어오는지 확인한 후,
if() 조건문을 사용해 버튼 1을 누르면 '작은 별', 버튼 2를 누르면 '곰 세 마리'가 재생되도록 구성했다.

🌟 결과물

버튼1

버튼2

📌 마무리

오늘은 지금까지 배운 내용을 토대로 if(), for() 배열 등을 활용하여 간단한 동요 출력 과제를 했다. 동요의 음계와 박자 구성은 GPT의 도움을 받았지만, 이해 없이 복사하진 않도록 노력했다. 인상 깊었던 점은 박자(duration)를 시간으로 변환한 후 tone() 함수에 적용하는 방식이 흥미로웠다. 단순히 음계만 출력하는 것이 아니라, 박자까지 고려해서 코드로 구현하는 과정이 신기했다. 하지만 너무 GPT에 의존하면 사고력이 무뎌질 수 있다는 생각이 들어서, 앞으로는 스스로 먼저 고민하고 필요한 부분에만 도움을 받는 방식으로 활용해야겠다.

profile
🐂처럼 살기;

0개의 댓글