시리얼 모니터란?
시리얼 모니터는, 아두이노에서 보내주는 데이터를 아두이노 IDE에 포함되어 있는 별도의 창을 통해 출력하는것을 말한다.
아두이노 IDE화면에서 우측상단에 돋보기 모양 아이콘을 클릭하면 시리얼 모니터를 켤 수 있다.

다음과 같이 회로를 구성하고 코드를 실행하면, 시리얼 모니터에 LED가 꺼지고 켜질때마다 각각 HIGH, LOW가 출력되는것을 볼 수 있다.

void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(13, HIGH);
Serial.println("HIGH");
delay(1000);
digitalWrite(13,LOW);
Serial.println("LOW");
delay(1000);
}택트 스위치란?
택트 스위치는 이렇게 생긴 스위치를 말한다.


택트 스위치의 회로도는 이렇게 생겼으며, 다음과 같이 회로를 구성하고 코드를 실행하면 스위치를 누를때만 LED가 켜지는것을 볼 수 있다.

const int buttonPin = 2;
const int ledPin = 13;
int buttonState = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if(buttonState == HIGH){
digitalWrite(ledPin, HIGH);
}else{
digitalWrite(ledPin, LOW);
}
}가변저항이란?
가변저항은 스위퍼를 돌려 저항값을 가변적으로 조절할 수 있는 저항을 말한다.
가변저항을 분해해보면 아래와 같이 생겼다.

아래와 같이 회로를 구성하고 코드를 실행하면, 가변저항의 스위퍼를 돌리는것에 따라 LED의 밝기도 달라지는것을 알 수 있다.

int LED = 9;
void setup() {
Serial.bigin(9600);
pinMode(LED, OUTPUT);
}
void loop() {
int val = analogRead(A5)/4;
Serial.println(val);
analogWrite(LED, val);
}실습
아래와같이 회로를 구성하고, 코드를 실행하면 스위퍼를 돌리는것에따라 0%는 아무 반응이 없고, 0%초과 20%이하는 LED 1개, 스피커에서는 도 가 출력된다.
20%초과 40%이하는 LED 2개, 스피커에서는 레가 출력되고, 40%초과 60%이하는 LED 3개, 스피커에서는 미가 출력된다.
60%초과 80%이하는 LED 4개, 스피커에서는 파가 출력되고, 80% 초과는 LED가 모두 점등되고 스피커에서는 솔이 출력된다.

int potPin = A0;
int led1 = 8;
int led2 = 9;
int led3 = 10;
int led4 = 11;
int led5 = 12;
int spk = 6;
int potValue;
int percent;
#define a 262 // 도
#define b 294 // 레
#define c 330 // 미
#define d 349 // 파
#define e 392 // 솔
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(spk, OUTPUT);
}
void loop() {
potValue = analogRead(potPin);
percent = map(potValue, 0, 1023, 0, 100);
if (percent == 0) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
else if(percent > 0 && percent <= 20){
tone(spk,a);
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
else if(percent > 20 && percent <= 40){
tone(spk,b);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
else if(percent > 40 && percent <=60){
tone(spk,c);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
else if(percent > 60 && percent <=80){
tone(spk,d);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
}else {
tone(spk,e);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
}