극한의 아두이노 DIY생활 - 시간을 재는 방석9

in kr-dev 커뮤니티4 years ago

안녕하세요!! Jimae입니다.

오늘은 저번에 설명 못드린 부분을 이어가려 합니다.

저번에 뜬금없이 푸쉬스위치가 나왔었죠.

스위치 종류는 많은대

우선 그때당시 썻던걸로 해보죠.

image.png

이걸 왜 써야 했느냐면요.

사람이 자리를 비운사이 시간을 초기화 해줄방법이 없어서요.

앉았던사람이 다시 자리로 돌아와서 앉을수도 있기에 타이머를 초기화 해줄 타이밍이 그때당시에 생각이 나지 않아

직접적으로 사용자가 초기화 할수있게끔 스위치를 달았습니다.

물론 만들어 달라고 하신분도 그걸 동의 해주셨구요. 하하...;;;

그래서 스위치가 눌리면 FND의 시간값을 초기화 하는 기능을 넣고자 추가했습니다.

image.png

조금 지저분하지만 회로를 추가하면 이렇게 됩니다.

아두이노 2번 Pin을 연결하고 나머지 한쪽을 대각선 방향 GND Pin을 연결하면 됩니다.

그러면 어떻게 되냐면요. 스위치를 눌렀을때 2번 Pin과 GND Pin이 물리적으로 연결이 됩니다.

그특성을 이용하여 신호를 받을거에요.

void SwitchInit(void)
{
  pinMode(SWITCHPIN, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(SWITCHPIN), swInput, FALLING);
}

이렇게 설정만 한다면 스위치가 눌렸을때 swInput함수가 실행이 됩니다.

void swInput(void)
{
  TimeCountInit();
}

void TimeCountInit(void)
{ 
  second = 0;
  minute = 0;
  hour = 0;
}

그리고 시간값들을 전부 초기화 시키죠 second, minute, hour 이것들은 저번에 말씀드린 FND에 표시하는 데이터들입니다.

스위치가 눌렸을때 이것들을 0으로 초기화 해버리는거에요.

즉!! 스위치를 인터럽트로 사용하여 FND에 뿌려주는 시간값을 0으로 초기화 해버리는 기능들 입니다.

자!!! 오늘은!! 여기까지 인터럽트에 대해 이해가 안가신다면!!
극한의 아두이노 DIY생활 - 시간을 재는 방석8
이것을 참조해주세요!! 다들 좋은하루 되세요!

극한의 아두이노 DIY생활 - 시간을 재는 방석1
극한의 아두이노 DIY생활 - 시간을 재는 방석2
극한의 아두이노 DIY생활 - 시간을 재는 방석3
극한의 아두이노 DIY생활 - 시간을 재는 방석4
극한의 아두이노 DIY생활 - 시간을 재는 방석5
극한의 아두이노 DIY생활 - 시간을 재는 방석6
극한의 아두이노 DIY생활 - 시간을 재는 방석7
극한의 아두이노 DIY생활 - 시간을 재는 방석8

Sort:  
 4 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.074
BTC 63475.73
ETH 1680.30
USDT 1.00
SBD 0.41