반응형

 


안녕하세요!
녹칸다입니다!

녹칸다의 산업용 아두이노(fa-duino)의 빠른 내용 전달을 위해서 코드와 작동결과만을 별도로 정리해보도록 하겠습니다~!
녹칸다의 산업용 아두이노 2편에서 6번예제를 정리해보도록 하겠습니다~!

 

이번편에서는 앞으로 딱히 사용할것 같지는 않지만 개념상 인터럽트에 대해서 알아보도록 하겠습니다~~!

산업용 아두이노는 아두이노 메가 보드를 기반으로 했고 외부로 노출되어있는 2,3번핀을 인터럽트핀으로 사용할 수 있습니다~!

 

아두이노에서 인터럽트를 사용하기 위해서는 아래와 같은 함수가 필요합니다~!

인터럽트는 간단해 생각하면 아두이노에서 뭔가 하고있는데 새치기 작업을 즉각적으로 수행하게 되는것을 말합니다~!

여기서 상승엣지(rising edge)나 혹은 하강엣지(falling edge)를 검출해야합니다~!

신호적인 측면에서 보았을때 각 엣지는 아래와 같습니다~!

이번 예제에는 아래와 같은 목표가 있습니다~~!

1.산업용 아두이노 내부에 어떤 작업이 순차적으로 진행되고있음!

2.누름버튼을 2,3번핀에 연결해서 각버튼을 누르게 되면 인터럽트 서비스 루틴이 실행되도록 할것!

 

예제에서 사용한 소스코드는 아래와 같습니다~!

//적색버튼이 2번, 녹색버튼이 3번에 연결되어있다(입력)
//아두이노 loop에서 붕어빵 굽는 작업을 시리얼 출력으로 시뮬레이션한다!
//인터럽트 기능이 작동되면 인터럽트 발생이라는 문구를 출력한다!

void setup() {
  Serial.begin(9600);
  //입력과 출력은 pinMode함수로 방향을 결정해주어야한다!
  pinMode(2,INPUT);
  pinMode(3,INPUT);
                                  
  attachInterrupt(digitalPinToInterrupt(2), Interrup1, RISING);
  attachInterrupt(digitalPinToInterrupt(3), Interrup2, RISING);
}
void loop() {
  Serial.println("붕어빵틀에 뚜껑을 연다");
  delay(1000);
  Serial.println("붕아빵판죽을 빵틀에 붓는다");
  delay(1000);
  Serial.println("돌려가면서 붕어빵을 굽는다");
  delay(1000);
  Serial.println("붕어빵을 빵틀에서 꺼낸다");
  delay(1000);
  Serial.println("봉지에 담아서 배출한다");
  delay(1000);
}

void Interrup1(){
  Serial.println("인터럽트 1번이 호출되었습니다!");
}
void Interrup2(){
  Serial.println("인터럽트 2번이 호출되었습니다!");
}

작동결과는 녹칸다의 라이브방송에서 해당예제의 결과가 나온부분의 위치를 링크걸도록 하겠씁니다~!

https://youtu.be/Y68Il4TQfAw?t=4753 

 

반응형
Posted by 덕력킹
,