[Switch를 이용한 LED 제어하기]

 

* Switch와 LED 제어

 

 

* 소스

int b = 7;
int led = 12;
int led2 = 13;

void setup(){
  pinMode(b, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
}

void loop() {
  if(digitalRead(b) == HIGH) {
    	digitalWrite(led, HIGH);
      	digitalWrite(led2, LOW);
      	delay(500);
      	digitalWrite(led, LOW);
      	digitalWrite(led2, HIGH);
      	delay(500);
    	digitalWrite(led2, LOW);
  }
}

 

 

* 스위치 구조

 

 

 - 위의 그림과 회로와 같이 푸시버튼의 구조는 왼쪽 위(1), 왼쪽 아래(2), 오른쪽 위(3), 오른쪽 아래(4)를 기준으로 1번과 2번, 3번과 4번이 연결되어 있는 형태 (푸시버튼의 모델마다 회로는 다를 수 있음)

 

  - 사용할 때는 서로 떨어진 다리를 이용하여 사용함. (1번과 3번, 1번과 4번, 2번과 3번, 2번과 4번)

 

  - 회로의 연결시 버튼이 5V와 GND 모두에 연결되어 쇼트 상황이 나올 수 있어서 저항을 사용하여 풀다운 역할을 하게 함.

 

    = 풀다운 저항 : 버튼이 눌리지 않았을 때 회로를 낮은 상태(GND, 0V)로 묶어주는 저항

  

    = 풀업 저항 : 풀다운 저항과 반대로 버튼이 눌리지 않았을 때 회로를 높은 상태(HIGH, 5V)로 묶어주는 저항

[LED 제어하기]

 

* LED 회로도(브레드보드)

 

 

* LED 소스

int led = 7;

void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(500);
}

 

-> LED를 제어할 핀 번호를 전역변수를 지정하고, setup() 함수에서 pinMode() 메소드로 핀번호의 입출력을 출력형태로 설정합니다.

-> loop() 함수에서 digitalWrite()를 이용하여 LED를 ON, OFF로 번갈아가며 출력합니다.

-> delay()를 이용하여 잠시 프로그램을 기다리게 합니다.

+ Recent posts