(위는 2년전 대학원선배였던 강은영선생이 만든 회로사진입니다. 파워는 레드, 그라운드는 블랙, 각 인풋은 다른 색으로 깔끔히 정리되어있지요? 이렇게 색으로 잘 정리를 하는 습관을 두어야 스케일이 큰 졸전같은 작품을 할때 교통정리도 잘 되고, debug도 쉽게 할 수 있으며 수리도 빠릅니다.) 참고로 스위치는 1K Ohm, LED는 220 Ohms 의 저항을 사용합니다.
아래는 6개의 스위치 인풋을 사용하여 6개의 다른 LED를 키는 코드 샘플입니다.
한글로 설명을 덧붙인 코드는 아래와 같습니다.
——————————————————————
// your LED를 Digital pins 번호와 동일하게 intialize 한다
int ledPin5 = 5;
int ledPin6 = 6;
int ledPin9 = 9;
int ledPin10 = 10;
int ledPin11 = 11;
int ledPin13 = 13;// 스위치도
int switchPin2 = 2;
int switchPin3 = 3;
int switchPin4 = 4;
int switchPin7 = 7;
int switchPin8 = 8;
int switchPin12 = 12;// 각 스위치의 상태를 initialize한다. OFF상태에서 시작한다.
int switchState1 = 0;
int switchState2 = 0;
int switchState3 = 0;
int switchState4 = 0;
int switchState5 = 0;
int switchState6 = 0;int inByte = 0;
void setup(){
//9600은 baud rate입니다. (baud rate 설명은 아래에 있습니다.)
Serial.begin(9600);//각 스위치를 INPUT으로 pinMode function을 사용하여 이니셜한다.
pinMode(switchPin2, INPUT);
pinMode(switchPin3, INPUT);
pinMode(switchPin4, INPUT);
pinMode(switchPin7, INPUT);
pinMode(switchPin8, INPUT);
pinMode(switchPin12, INPUT);// 각 LED를 OUTPUT으로 pinMode function을 사용하여 이니셜한다.
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin9, OUTPUT);
pinMode(ledPin10, OUTPUT);
pinMode(ledPin11, OUTPUT);
pinMode(ledPin13, OUTPUT);
}void loop(){
// the state of your switch는 digitalRead command를 사용하여 스위치를 READING함을 뜻한다.
switchState1 = digitalRead(switchPin2);
switchState2 = digitalRead(switchPin3);
switchState3 = digitalRead(switchPin4);
switchState4 = digitalRead(switchPin7);
switchState5 = digitalRead(switchPin8);
switchState6 = digitalRead(switchPin12);// if your switch state reads “on“, then…
if(switchState1 == 1){
// ledPin5를 켜라
digitalWrite(ledPin5, HIGH);// switch1= 을 시리얼모니터에 프린트함.
Serial.print(“switch1=”);// binary 즉 0와1 상태를 한라인에 프린트하는 function, 8bit data를 읽을 경우에는 BYTE를 사용한다.
Serial.println(switchState1,BIN);}
else{
digitalWrite(ledPin5, LOW);
Serial.print(“switch1=”);
Serial.println(switchState1,BIN);
}if(switchState2 == 1){
digitalWrite(ledPin6, HIGH);
Serial.print(“switch2=”);
Serial.println(switchState2,BIN);
}
else{
digitalWrite(ledPin6, LOW);
Serial.print(“switch2=”);
Serial.println(switchState2,BIN);
}if(switchState3 == 1){
digitalWrite(ledPin9, HIGH);
Serial.print(“switch3=”);
Serial.println(switchState3,BIN);
}
else{
digitalWrite(ledPin9, LOW);
Serial.print(“switch3=”);
Serial.println(switchState3,BIN);
}if(switchState4 == 1){
digitalWrite(ledPin10, HIGH);
Serial.print(“switch4=”);
Serial.println(switchState4,BIN);
}
else{
digitalWrite(ledPin10, LOW);
Serial.print(“switch4=”);
Serial.println(switchState4,BIN);
}if(switchState5 == 1){
digitalWrite(ledPin11, HIGH);
Serial.print(“switch5=”);
Serial.println(switchState5,BIN);
}
else{
digitalWrite(ledPin11, LOW);
Serial.print(“switch5=”);
Serial.println(switchState5,BIN);
}if(switchState6 == 1){
digitalWrite(ledPin13, HIGH);
Serial.print(“switch6=”);
Serial.println(switchState6,BIN);
}
else{
digitalWrite(ledPin13, LOW);
Serial.print(“switch6=”);
Serial.println(switchState6,BIN);
}
}
———————————————————————–
baud rate
baud는 변조속도, 즉 컴퓨터의 디지털 신호를 전화선을 통해 전달될 수 있는 아날로그 신호로 바꿔주는 속도를 나타낸다. 프랑스의 발명가 Jean Maurice Emile Baudot가 만든 단위로 예전에는 전신기를 조작할 때 초당 전송하는 클록의 숫자를 나타낼 때 사용했던 단위이지만 현재는 1초에 변조할 수 있는 횟수를 나타낸다.
