LED 활용1

magicdrill·2025년 1월 14일

LED

일반 LED

page 80 예제

int led1 = 6;//led1이 6번 핀에 연결됨
int led2 = 7;//led2이 7번 핀에 연결됨

void setup() {
  // put your setup code here, to run once:
  pinMode(led1, OUTPUT); //6번 출력모드
  pinMode(led2, OUTPUT); //7번 출력모드

  Serial.begin(9600);
  Serial.println("시리얼 통신 시작");
}

void loop() {
  // put your main code here, to run repeatedly:
  if(Serial.available()){//시리얼 모니터를 통해 입력이 있다면
    char a;

    a = Serial.read();//전송된 문자를 1바이트씩 읽음
    
    if(a == '1'){
      digitalWrite(led1, HIGH);//led1 켜짐
      digitalWrite(led2, HIGH);//led2 켜짐
      Serial.println("led on");
    }
    
    if(a == '0'){
      digitalWrite(led1, LOW);//led1 꺼짐
      digitalWrite(led2, LOW);//led2 꺼짐
      Serial.println("led off");
    } 
  }
}

테스트 과정에서 작동이 안되는 문제가 있었다.
1. LED의 고장인지 파악하기 위해 LED의 교체 또는 해당 LED에 직접 전원을 인가해 고장여부 파악
2. 저항 고장인지 파악하기 위해 저항 제거 또는 저항 교체
3. 핀 단자 고장인지 파악하기 위해 핀 변경
4. 브레드보드 고장인지 파악하기 위해 소자 위치 교체 -> 고장 확인

사실 고장이 아니다...

나는 GND, VIM라인이 전부 연결이라고 생각했는데, 30번 부분처럼 중간에 끊긴 부분이 있다. 처음에 고장이라 생각한것도 사실 왼쪽 전원에 연결해 놓고 LED는 오른쪽 전원에 연결한 거였다.
오류 검출 방법을 배웠다 친다.

RGB LED 모듈

int ledR = 9;
int ledG = 10;
int ledB = 11;

void setup() {
  // put your setup code here, to run once:
  pinMode(ledR, OUTPUT);
  pinMode(ledG, OUTPUT);
  pinMode(ledB, OUTPUT);

  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  //빨강
  digitalWrite(ledR, HIGH); //red 1초동안켜기
  delay(1000);
  digitalWrite(ledR, LOW); //red 끄기
  delay(100);

  //초록
  digitalWrite(ledG, HIGH); //green 1초동안켜기
  delay(1000);
  digitalWrite(ledG, LOW); //green 끄기
  delay(100);

  //파랑
  digitalWrite(ledB, HIGH); //blue 1초동안켜기
  delay(1000);
  digitalWrite(ledB, LOW); //blue 끄기
  delay(100);

  //노랑
  digitalWrite(ledR, HIGH); //red 1초동안켜기
  digitalWrite(ledG, HIGH); //green 1초동안켜기
  delay(1000);
  digitalWrite(ledR, LOW); //red 끄기
  digitalWrite(ledG, LOW); //green 끄기
  delay(100);

  //청록
  digitalWrite(ledG, HIGH); //green 1초동안켜기
  digitalWrite(ledB, HIGH); //blue 1초동안켜기
  delay(1000);
  digitalWrite(ledG, LOW); //green 끄기
  digitalWrite(ledB, LOW); //blue 끄기
  delay(100);
  
  //보라
  digitalWrite(ledB, HIGH); //blue 1초동안켜기
  digitalWrite(ledR, HIGH); //red 1초동안켜기
  delay(1000);
  digitalWrite(ledB, LOW); //blue 끄기
  digitalWrite(ledR, LOW); //red 끄기
  delay(100);

  //하양
  digitalWrite(ledR, HIGH); //red 1초동안켜기
  digitalWrite(ledG, HIGH); //green 1초동안켜기
  digitalWrite(ledB, HIGH); //blue 1초동안켜기
  delay(1000);
  digitalWrite(ledR, LOW); //red 끄기
  digitalWrite(ledG, LOW); //green 끄기
  digitalWrite(ledB, LOW); //blue 끄기
  delay(100);
}

디지털 미디어 강의 때 배운 빛의 삼원색을 조절해 색을 만드는 방법과 동일하다.

0개의 댓글