Develop/Arduino Uno

[아두이노 우노] 인터럽트와 외부 인터럽트

2023. 12. 17. 23:06
목차
  1. 1. 개념 정리
  2. 2. 실습
728x90

아두이노

1. 개념 정리

인터럽트 : 프로세서가 현재 실행 중인 작업을 중단하고 특정 이벤트에 응답하여 다른 코드 블록을 실행하는 기능

인터럽트가 작동되는 방식은 실행하면 현재 프로세서가 실행중인 작업을 중단한 뒤, 해당 인터럽트 함수를 실행하여 수행한 후, 그 이후에 다시 중단되었던 작업을 마저 실행한다. 이를 통해 외부 이벤트에 빠르게 대응할 수 있다.

외부 인터럽트 : 아두이노 우노의 외부 인터럽트 핀인 D2, D3 핀에서 입력 받으면 실행 중이던 작업을 일시 중단하고 인터럽트 함수를 실행하는 기능이다. 외부 인터럽트를 사용하려면 attachInterrupt(digitalPinToInterrupt(pin), ISR, mode) 함수를 사용하면 된다. 여기서 pin은 외부에서 입력받을 인터럽트 핀, ISR은 인터럽트 발생시에 호출될 함수, mode는 인터럽트가 발생시킬 조(CHANGE, RISING, FALLING, LOW)이다.

 

2. 실습

다음 그림에서 빨간색 led 가 1초마다 깜빡거릴 동안, 시간 지연없이 스위치가 눌러있을 때 초록색 led가 점등하고 떼어져 있을 때 초록색 led가 소등하게 해주는 코드를 작성하시오.

아두이노 우노 - 외부 인터럽트 실습

정답 코드 : 

void setup() {
	pinMode(13, OUTPUT);
    pinMode(8, OUTPUT);
    pinMode(2, INPUT);
	attachInterrupt(digitalPinToInterrupt(2), interrupt, CHANGE);
}

void loop() {
	digitalWrite(13, HIGH);
    delay(1000);
    digitalWrite(13, LOW);
    delay(1000);
}

void interrupt() {
	int buttonState = digitalRead(2);
    digitalWrite(8, buttonState);
}

 

 

저작자표시 (새창열림)

'Develop > Arduino Uno' 카테고리의 다른 글

[아두이노 우노] SoftwareSerial  (0) 2023.12.18
[아두이노 우노] delay() 함수 없이 주기적인 작업 실행하기 - millis() 함수  (0) 2023.12.18
[아두이노 우노] 내부 인터럽트(타이머 인터럽트) 실습하기  (0) 2023.12.18
[아두이노 우노] I2C 통신 (TWI 통신)  (0) 2023.12.17
[아두이노 우노] I2C 통신 방식의 캐릭터 LCD 실습  (0) 2023.12.17
  1. 1. 개념 정리
  2. 2. 실습
'Develop/Arduino Uno' 카테고리의 다른 글
  • [아두이노 우노] delay() 함수 없이 주기적인 작업 실행하기 - millis() 함수
  • [아두이노 우노] 내부 인터럽트(타이머 인터럽트) 실습하기
  • [아두이노 우노] I2C 통신 (TWI 통신)
  • [아두이노 우노] I2C 통신 방식의 캐릭터 LCD 실습
JuniTech
JuniTech
프로그래밍을 정복하기 위한 좌충우돌 코린이의 기록
JuniTech
Juni IT Technology
JuniTech
전체
오늘
어제
  • 분류 전체보기 (84)
    • Develop (29)
      • C, C++ (13)
      • Python (9)
      • Java (1)
      • JavaScript (0)
      • Arduino Uno (6)
    • CodingTest (38)
      • Baekjoon (36)
    • Project (0)
    • IT Issue (1)
    • Computer Science (11)
      • 프로그래밍 언어론 (3)
      • Open Source (3)
      • Data Structure (5)
    • Paper (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 🧑‍💻Github
  • 😎Juni의 잡동사니(일상 블로그)
  • 💰Juni의 투자일기(주식 블로그)

공지사항

인기 글

태그

  • 10797
  • 아두이노 우노
  • 구문법
  • 10810
  • 2083번
  • 생존시간
  • 11000
  • C
  • 파이썬
  • 10988
  • Python
  • 프어론
  • c++
  • 25206
  • 10811
  • 포인터
  • 27866
  • 문자열
  • pygame
  • 10812
  • 프로그래밍 어론
  • LCD
  • 프로그래밍어론
  • 파스트리
  • 백준
  • Backjoon
  • 프로그래밍 역사
  • 10798
  • 13241
  • 10813

최근 댓글

최근 글

hELLO · Designed By 정상우.
JuniTech
[아두이노 우노] 인터럽트와 외부 인터럽트
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.