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안에 대치시키면 작동하는데...
왜 분리시키면 작동을 안하는 걸까.
나더 아두이노 관심있는데 비싼가여? 싼것도 있남
ㄴ 걍 중국 카피판 알리바바에서 사셈.