int C4 = 262;
int D4 = 294;
int E4 = 330;
int F4 = 349;
int G4 = 392;
void setup() {
Serial.begin(9600);
}
void loop() {
int light = analogRead(A0);
Serial.println(light);
if (light <= 50) {
notone(11);
} else if (light <= 200) {
tone(11, C4, 100);
} else if (light <= 400) {
tone(11, D4, 100);
} else if (light <= 600) {
tone(11, E4, 100);
} else if (light <= 800) {
tone(11, F4, 100);
} else {
tone(11, G4, 100);
}
delay(150);
}
int C4 = 262; ... int G4 = 392;: 여기서는 다양한 음들, 즉 도(C4)부터 솔(G4)까지 각각의 주파수를 변수로 선언해 놓았어요.
Serial.begin(9600);: 이 명령어로 Arduino는 컴퓨터와 9600 보레이트의 속도로 통신할 수 있게 됩니다.
int light = analogRead(A0);: 이 명령어는 아날로그 핀 A0에서 빛의 양에 따른 값을 light 변수에 저장합니다. 저장되는 값은 0에서 1023 사이입니다.
Serial.println(light);: 이 명령어는 light 변수의 값을 컴퓨터로 보내서 시리얼 모니터에 출력합니다.
그 다음 여러 개의 if-else 구문으로 light 값에 따라 어떤 음을 낼지를 결정합니다:
light <= 50: 아주 어두우면 noTone(11);이 호출되어 아무 소리도 나지 않습니다.
light <= 200: 어두우면 도(C4)를 연주합니다.
light <= 400: 적당히 밝으면 레(D4)를 연주합니다.
light <= 600: 밝으면 미(E4)를 연주합니다.
light <= 800: 매우 밝으면 파(F4)를 연주합니다.
light > 800: 굉장히 밝으면 솔(G4)를 연주합니다.
delay(150);: 각 음 사이에 150밀리초의 간격을 두어 연주합니다.
int C4 = 262;
int D4 = 294;
int E4 = 330;
int F4 = 349;
int G4 = 392;
void setup() {
Serial.begin(9600);
}
void loop() {
int light = analogRead(A0);
Serial.println(light);
if (light <= 50) {
noTone(11);
} else if (light > 50 && light <= 200) {
tone(11, C4, 100);
} else if (light > 200 && light <= 400) {
tone(11, D4, 100);
} else if (light > 400 && light <= 600) {
tone(11, E4, 100);
} else if (light > 600 && light <= 800) {
tone(11, F4, 100);
} else {
tone(11, G4, 100);
}
delay(150);
}
int C4 = 262; ... int G4 = 392;: 각 음의 주파수를 정의한다. 여기서는 도(C4)부터 솔(G4)까지의 주파수 값을 저장한다.
이 함수는 Arduino가 시작될 때 한 번만 실행된다.
Serial.begin(9600);는 시리얼 통신을 9600 보레이트의 속도로 초기화한다. 이를 통해 Arduino는 컴퓨터와 통신할 수 있게 된다.
이 함수는 setup() 함수 이후에 계속 반복 실행된다.
int light = analogRead(A0);: 아날로그 핀 A0에서 값을 읽어 light 변수에 저장한다. 아날로그 입력의 범위는 0에서 1023이다.
Serial.println(light);: 읽은 아날로그 값을 시리얼 모니터로 출력한다.
연속적인 if-else 구조를 통해 light 값에 따라 음을 결정한다.
light <= 50: 아주 어두울 때는 아무런 소리도 내지 않는다. noTone(11); 함수는 현재 핀 11에서 나오고 있는 소리를 멈춘다.
50 < light <= 200: 도 (C4) 연주
200 < light <= 400: 레 (D4) 연주
400 < light <= 600: 미 (E4) 연주
600 < light <= 800: 파 (F4) 연주
light > 800: 솔 (G4) 연주
delay(150);: 음과 음 사이에 간격을 주기 위해 150ms 동안 대기한다.
Copyright ⓒ TECH79 All right reserved