본문 바로가기
Arduino(아두이노) 키트 강좌

Step.3-Arduino Uno 로 스위치를 사용해 LED 깜박이기

by 오마이엔지니어 2015. 5. 22.
반응형

Arduino Uno 로 스위치를 눌러서 LED를 깜박이게 하는 프로젝트 입니다
Tact 스위치는 단추 모양에 4개의 단자로 구성되어 있습니다
단자는 대각선 방향이 한쌍으로 연결되어 있으므로 배선시 이를 숙지 하는게 좋습니다


Tact Switch 는 동작시 Tactile 한 느낌 (딸각거림) 을 특징으로 하는 스위치 입니다
보통 2개 또는 4개의 단자로 이루어져 있으나 구조적인 특징으로 인해 보통은 1회로의 제어만 가능합니다
Tact Switch의 회로는 일반적인 4pin의 경우 단자를 한자(漢字)의 두이자 (二)로 놓고 봤을때 직선으로 연결 되어 있습니다
(아래 그림의 1-2번과 3-4번이 연결 되어 있음)

 


 

사용된 부품

Arduino Uno R3 (Italy)

브래드 보드

Blue LED

1K (Ohm) 저항
10K (Ohm) 저항
Tact Switch

점퍼케이블

 

사용된 키트

Arduino Starter kit (클릭)
지니어스 키트 Starter Pack (클릭)



구성 배선도

 

 

 

사용된 예제소스 

button LED.txt

 

/* push button 연결하기
   누르면 LED가 켜지도록 만들어 봅시다.
*/
const int button1Pin = 2;  //푸시버튼과 연결된 핀 번호(2)를 저장할 변수 선언
const int ledPin =  13;    //LED와 연결된 핀 번호(13)를 저장할 변수 선언


void setup()
{
  //2번 핀을 입력용으로 설정
  pinMode(button1Pin, INPUT);

  //13번 핀을 출력용으로 설정
  pinMode(ledPin, OUTPUT);     
}

void loop()
{
  int button1State;     //읽어 올 디지털 값을 저장할 변수 선언
 
  button1State = digitalRead(button1Pin);    //버튼이 눌렸는 지 아닌지를 읽어와서 앞에 선언한 변수에 저장
 
  if(button1State == LOW) {         //눌렸다면
    digitalWrite (ledPin, HIGH);    //LED를 on
  } else {                          //눌리지 않았다면
    digitalWrite(ledPin, LOW);      //LED를 OFF
  }
}

주의사항
스위치 쪽의 저항이 10K (Ohm)

LED 쪽의 저항이 1K (Ohm) 입니다

LED를 점등시키는 배선을 할때는 적당한 용량의 막대저항을 같이 사용해 줍니다
이유는 전압이 높아지면 전류가 많이 흐르게 되고 이로인해 LED가 손상이 될수 있기 때문입니다
자세한 것은 '저항의 기능과 용도' 포스팅을 참고 합시다

 

프로젝트 동영상


추가로 State 문구를 넣어서 스위치를 한번 누르면 LED가 켜지고
다시 한번 누르면 LED가 꺼지도록 하는 예제입니다

사용된 예제소스

button LED2.txt
0.00MB

예제코드를 살펴보면
const int buttonPin = 2;
const int ledPin = 13;
버튼은 2번핀 세팅, LED는 13번핀 세팅입니다

int buttonState = LOW;
int ledState = 0;
기본 buttonState 가 LOW일때 ledState 가 0 이 되며 LED가 꺼지도록 세팅되며

if(ledState == 0)
{
digitalWrite(ledPin, HIGH);
ledState=1;
if문을 사용해서 buttonState 가 HIGH 가 되어 
ledState 가 1 일때 LED가 켜지도록 추가해 줍니다


첫번째 예제 배선도와 동일하게 배선하여 구성하면 되지만
프로젝트 동영상을 참조하여 스위치쪽 배선은 크로스로 배선되게 합니다

프로젝트 동영상

button LED.txt
0.0MB
반응형

댓글