1 //버튼을 누를 때마다 LED 를 모두 켜거나 끄는 프로그램 ver.3 2 //LED 초기상태 0 0 0 0
3 //버튼 한번 누름1 1 1 1 4 //다시 한번 누름0 0 0 0 5 //다시 한번 누름1 1 1 1 6 //같은 형태로 반복함 7
8 #include <wiringPi.h>
9
10 #define BUTTON 21 //버튼이 연결된 핀번호 11 const char LED[4]={27, 28, 29, 25}; //LED 가 연결된 핀번호 12 const char LED_count=sizeof(LED)/sizeof(LED[0]);
13 char input_last=HIGH, input_now=HIGH;
14
15 void init();
16 char read_button();
17
18 int main(void){
19 char led=LOW;
20
21 init();
22
23 while(1){
24 if(read_button())
25 led=!led;
26
27 for(int i=0;i<LED_count;i++) 28 digitalWrite(LED[i], led);
29
30 delay(20);
31 }
32 return 0;
33 } 34
35 void init() 36 {
37 wiringPiSetup();
38 pinMode(BUTTON, INPUT);
39 for(int i=0;i<LED_count;i++){
40 pinMode(LED[i],OUTPUT);
41 digitalWrite(LED[i], LOW);
42 } 43 } 44
45 char read_button() 46 {
47 char result=FALSE;
48 input_now=digitalRead(BUTTON);
49 if(input_last==HIGH && input_now==LOW) 50 result=TRUE;
51 input_last=input_now;
52
53 return result;
54 }