void loop안에 다 때려박으면 작동하는데,

기능을 이것저것 넣고 싶어서 함수종류를 다양하게 만들고

main(loop) 안엔 핀 상황에서 이 함수를 불러온다고 하고 싶어

함수 빼면서 문제가 생기는거 같은데... 전공자가 아니다보니 이유를 모르겠다.


const byte LED = 11; // 일단 LED 지정하고

const byte Button = 2; //버튼 배정했어


static byte ButtonState;  // 주워들은 정적변수 지정했고

static byte lastState = LOW; // low 할필요 없는거 같긴한데

static byte count = 0; // count로 동작하는 함수야.


void setup() {

  Serial.begin(9600);

  pinMode(LED, OUTPUT);

  pinMode(Button, INPUT);

} // 걍 핀 지정한거.


void loop() {

  ButtonState = digitalRead(Button); // 버튼을 리드해와서 스테이트에 저장할거야


  if(ButtonState && ButtonState != lastState) // 스테이트와 전 스테이트 비교해서

  {button1click; // button 1 click 이라는 함수를 불러올거야

     } 

  lastState = ButtonState; // 그리고 다시 라스트 스테이트는 버튼 스테이트가 될거고

}



int button1click(){ //위에서 만든 함수야

 if(count < 255) // 255까지 카운터를 터하는 방식이고

      count += 100; //목표가 걍 함수 빼서 작동 확인하는거라 걍 눈에 잘 안보여서 100씩 더하게 했음.

    else

      count = 0; // 255이상이면 걍 카운트는 0로 보내서 초기화했어

   analogWrite(LED, count); // 스케치의 아날로그 write는 걍 여튼 255까지 LED output을 지정해주는거야.

    Serial.println(count); // 이건 걍 printf 같은거구.. 걍 눈으로 확인하려고 넣은거

   return count; //count 되돌려 보냈는뎅...

}





=============================================


여기까진데 프로그래밍하는 사람이 아니다보니 뭐가 문젠지 모르겠어..

button1click(){~~~~} 안에 있는거 싹다 걍 loop안에 대치시키면 작동하는데... 

왜 분리시키면 작동을 안하는 걸까.