본문 바로가기
아두이노

아두이노 배열(자료구조)로 피에조 스피커 활용하기

by SwMaker_Jun 2024. 1. 26.
728x90
반응형

1. 배열이란 ?

      배열(Array)은 여러 개의 데이터를 한 곳에 모아서 저장하는 방법입니다.

      예를 들어, 우리가 도, 레, 미, 파, 솔, 라, 시의 음계를 각각 따로따로 변수에 저장하는 대신,

      배열을 사용하면 이 모든 음을 하나의 리스트에 저장할 수 있습니다.

 

2. 배열의 특징 :

  • 동일한 타입의 데이터를 저장합니다. 예를 들어, 모두 정수이거나 모두 문자여야 합니다.
  • 인덱스를 사용하여 배열의 특정 요소에 접근할 수 있습니다. 인덱스는 0부터 시작합니다.

        예를 들어, '도', '레', '미' 음을 배열로 저장한다면:

 

  • notes[0]은 262 (도)
  • notes[1]은 294 (레)
  • notes[2]는 330 (미)를 의미합니다.

 

      1. 인덱스(Index)란 ?

            - 인덱스는 배열에서 특정 위치에 있는 데이터를 가리키는 숫자입니다.   

            -  배열에 있는 각각의 데이터는 **요소(Element)**라고 부르는데,

               이 요소들은 배열 안에서 인덱스를 통해 구별됩니다.       

            - 인덱스는 항상 0부터 시작합니다. 즉, 배열의 첫 번째 요소는 인덱스 0, 두 번째 요소는 인덱스 1,

              세 번째 요소는 인덱스 2... 이런 식으로 번호가 매겨집니다.

      2. 요소(Element)란 ?

           - 요소는 배열에 저장된 각각의 데이터를 말합니다. 

           - 예를 들어, notes 배열에는 262, 294, 330이라는 세 개의 숫자가 저장되어 있습니다.

             이 각각의 숫자가 요소입니다.

      3. 배열에서 인덱스를 사용해 요소를 호출하기

           - 배열 안의 특정 요소를 가져오고 싶을 때, 인덱스 번호를 사용합니다. 

           - 예를 들어, notes[0]이라고 쓰면 notes 배열의 첫 번째 요소인 262를 가져옵니다.

 

 

3. 실습: '학교종이 땡땡땡' 연주하기

     이제 배열을 사용해 피에조 스피커로 '학교종이 땡땡땡'을 연주해 봅시다.

  1. 회로 구성:
    • 피에조 스피커의 한쪽을 아두이노의 디지털 핀(예: 9번)에 연결합니다.
    • 다른 쪽을 GND(접지)에 연결합니다.

 

   

 

 2. 코드 작성: 이제 '학교종이 땡땡땡' 멜로디를 배열로 저장하고, 이를 반복해서 연주해 보겠습니다.

 

    코드 설명:

  • melody[]: '학교종이 땡땡땡'의 각 음을 주파수로 표현한 배열입니다.
  • for 반복문을 사용해 멜로디 배열의 모든 음을 차례대로 재생합니다.

 

4. 배열의 이점:

  • 정리된 코드 : 배열을 사용하면 코드가 간결해집니다. 각각의 음을 하나씩 변수로 선언하는 대신, 배열 하나에 모두 저장할 수 있습니다.
  • 유지보수 용이: 멜로디를 수정하거나 추가할 때, 배열의 값만 바꾸면 됩니다.

 

5. 응용 과제

  • 과제 1: 다른 노래를 배열에 저장하고, 피에조 스피커로 연주해 보세요.
  • 과제 2: 배열을 사용해 음의 길이를 다양하게 설정해 보세요.

이 수업을 통해 학생들은 배열의 기본 개념을 이해하고, 이를 활용해 아두이노로 간단한 음악을 연주할 수 있게 됩니다. 배열의 구조를 이해함으로써, 더 복잡한 프로그래밍에도 도전할 수 있는 기초를 다지게 됩니다.

728x90
반응형