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는 오른쪽 전원에 연결한 거였다.
오류 검출 방법을 배웠다 친다.
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);
}
디지털 미디어 강의 때 배운 빛의 삼원색을 조절해 색을 만드는 방법과 동일하다.
