시리얼 모니터란?


시리얼 모니터는, 아두이노에서 보내주는 데이터를 아두이노 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);
}
}