본문 바로가기

메이커 프로젝트/아두이노 +

[모듈 1-2] 아두이노 스위치 제어(feat. if-else 구문)

● 모듈 구성 안내

1-2-1. 풀업 스위치 & 풀다운 스위치의 이해

1-2-2. 아두이노 풀업 스위치 기본 제어

1-2-3. RGB LED 스위치 제어


 

● 1-2-2. 아두이노 풀업 스위치 기본제어

 [실습 1-2-2] 풀업 스위치 기본제어

   - 아래 아두이노 회로 구성해 보자.

   - 아래 코드를 복사 붙여 넣기를 통해 입력해 보자.

int sw1 = 12;
int led1 = 10;
int sw2 = 5; 
int led2 = 3;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(sw1, INPUT_PULLUP);
  pinMode(sw2, INPUT_PULLUP);
  //sw를 인풋_풀업으로 하여 스위치가 열려있다면 HIGH
  //스위치가 닫혀있다면 LOW값을 반환
}
 
void loop() {
  if(digitalRead(sw1) == LOW) //스위치가 눌리면
    digitalWrite(led1, HIGH); //led On
  else
    digitalWrite(led1, LOW);  //스위치가 닫히면 Off
  
  if(digitalRead(sw2) == LOW)
    digitalWrite(led2, HIGH);
  else
    digitalWrite(led2, LOW);
}

 

 

 

 [도전과제 1-2-2] 스위치 2개 입력시 새로운 동작

 - 동작 목표 : 스위치 2개를 동시에 눌렀을 때 새로 추가된 led만 불이 켜지게 하시오

                   기존 스위치 각각 한개 눌렀을때 동작은 그대로 유지한다.

 

 - 아래와 같이 기존 회로에 led 하나를 더 추가하시오.

 

- 아래 코딩을 복붙하고 주석처리 된 부분을 채워 동작을 완수 하시오

int sw1 = 12;
int led1 = 10;
int sw2 = 5; 
int led2 = 3;
int led3 = 7;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(sw1, INPUT_PULLUP);
  pinMode(sw2, INPUT_PULLUP);
}


void loop() {
  if((digitalRead(sw2) == LOW)&&(digitalRead(sw1) == LOW))
  {
	// 스위치 2개 모두 눌렸을때 경우 코딩

  }

  else
  {
  // 스위치 2개 모두 안눌렸을 때 코딩

  if(digitalRead(sw1) == LOW)
  // sw1 하나만 눌렸을때 코딩

  else if(digitalRead(sw2) == LOW)
  // s2 하나만 눌렸을때 코딩

  else
  // sw1, sw2 모두 안눌렸을때 코딩
  
  }
}

 

 

 


● 1-2-3. RGB 스위치 제어

 [실습 1-2-3] RGB 3색 스위치 제어하기

 - 아래 그림을 통해 RGB led 핀의 4개지 구성을 알아본다.

출처 : 코딩런

 

 

 - 아래 처럼 RGB LED 구동 회로를 제작해 준다.

출처 : 코딩런

 

 

 - 아래 처럼 코드를 복붙하고 빈칸을 채워준다.

int R = 7;
int G = 5;
int B = 3;
 
int sw1 = 12;
int sw2 = 10;
int sw3 = 8;

void setup() {
  pinMode(R, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(sw1, INPUT_PULLUP);
  pinMode(sw2, INPUT_PULLUP);
  pinMode(sw3, INPUT_PULLUP);
}
 
void loop() {
// 빨간색 스위치 구동 회로
  if(digitalRead(sw1) == LOW)
    digitalWrite(R, HIGH);
  else
    digitalWrite(R, LOW);

   /*

     초록색 스위치 구동회로 코드를 작성해 주세요

   */
 
   /*

     파란색색 스위치 구동회로 코드를 작성해 주세요

   */
}

- 스위치를 다양하게 눌러 7가지 색이 나오는지 확인한다.

 

 

 

 [도전과제 1-2-3] RGB 7가지 색깔 제어 회로

 - 기존 회로 하드웨어에 스위치를 한개 더 연결한 뒤 4번째 스위치 추가

 - 4번째 스위치 누르면 RGB LED의 7가지 색이 0.3초 주기로 연속적으로 나오게 코딩하시오.

 - 아래 영상을 보고 도전과제 완료 기준을 이해하시오.

 

 

영상제공 : 2020학년도 3학년 유수민 학생

 

 


FINISH


 

 

 

글쓴이 : Wonking / 교사 성원경