Posts Tagged ‘Code’

arduino code sample: 6 switches + 6 output (LEDs)

2010/04/12

(위는 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초에 변조할 수 있는 횟수를 나타낸다.

Advertisements