극한의 아두이노 DIY생활 - 곡률측정기6

in kr-dev 커뮤니티2 years ago

안녕하세요 Jimae입니다.

로터리 스위치를 하려면 외부인터럽트 Pin필요한대요.

기존에 Pin연결을 다시 말해보자면

아두이노 메가 기준으로 로터리 배선은 Pin 10번에 CLK를 연결하고 Pin 11번에 DP를 연결합니다.

스위치는 Pin A8번에 연결을 하였습니다.

image.png

위의 사진을 그대로 보면 겹치는게 없습니다.

10,11,A8 번의 Pin을 사용하고있거든요.

왜냐하면 아무래도 레이저 거리측정 모듈이 시리얼통신이 3개가 필요하기 때문에 Pin이 겹쳐서 다른 Pin으로 넘긴것 같습니다.

이것을 해결할 방법은 바로 PinChangeInt.h 를사용하는 것입니다.

외부 인터럽트 Pin을 바꿔주는 역활을 하고있습니다.

이것을 사용하여 기존에 사용하고있던 Pin의 외부인터럽트를 자기가 사용하고 싶은 곳으로 옮겨주죠.

image.png

아두이노에서 공식적으로 지원하는 기능입니다.

이것의 사용법은

#include <PinChangeInt.h>

#define BACK  0
#define ENTER  1

unsigned char switchInputCount = 0;
unsigned long switchTime = 0;



#define SWITCHPIN A8

void setup() {
    pinMode(SWITCHPIN, INPUT_PULLUP);
    attachPinChangeInterrupt(SWITCHPIN, SwitchInput, FALLING);
}

void loop() {
.....
}

void SwitchInput(void)
{
  switchTime = millis();
  switchInputCount++;
}

이렇게 사용을 합니다.

pinMode(SWITCHPIN, INPUT_PULLUP);
attachPinChangeInterrupt(SWITCHPIN, SwitchInput, FALLING);

이렇게 SwitchInput 함수를 attachPinChangeInterrupt로 초기화를 시켜준다면

A8 번 Pin에 신호가 들어오는 즉시

SwitchInput 함수를 실행하게 됩니다.

되게 간단하죠?

이렇게 외부인터럽트를 바꿔주는 방법에대해 알았습니다.

다들 좋은하루 되세요.

극한의 아두이노 DIY생활 - 곡률측정기1
극한의 아두이노 DIY생활 - 곡률측정기2
극한의 아두이노 DIY생활 - 곡률측정기3
극한의 아두이노 DIY생활 - 곡률측정기4
극한의 아두이노 DIY생활 - 곡률측정기5

Sort:  
 2 years ago 

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

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 57800.38
ETH 3127.30
USDT 1.00
SBD 2.40