const int LED = 3;
const int button = 2;
int state = 0;
void setup() {
// put your setup code here, to run once:
pinMode(LED, OUTPUT);
pinMode(button, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int Input = digitalRead(button);
if(Input == HIGH) //입력이 1일 때
{
if(state == 0) //상태 0 일때 1로 변환
{
state = 1;
}
else if(state == 1) //상태 1일 때 0으로 변환
{
state = 0;
}
}
if(state == 0 )
{
digitalWrite(LED, LOW); //0이라면 LED끄기
}
else if(state == 1)
{
digitalWrite(LED, HIGH); //1이라면 LED 키기
}
digitalWrite(LED, Input);
}
1. 버튼을 누르면 지속적으로 LED가 켜져있습니다.
2. LED가 켜져있는 상태로 버튼을 누르면 LED가 꺼집니다.
- int state = 0; : state라는 변수에 0을 저장한 변수
- button이 한 번씩 HIGH가 될 때마다 0에서 1로, 1에서 0으로 바뀔 수 있도록 합니다.
즉, button이 한 번 눌러지면 지속적으로 LED가 켜지고 다시 한 번 누르면 LED가 꺼집니다.
사용 센서 : LED 1개 , 저항(10K) , 버튼 센서
다른 방법
현재 값과 이전 값을 저장하는 변수로 선언하고, 이전 값에 현재 값을 저장시켜 불이 들어오고 켜지게 한다.
728x90
'Programming > 아두이노' 카테고리의 다른 글
아두이노 : LED, 점점 밝게 하기 (0) | 2020.07.01 |
---|