[faduino2-8] 산업용 아두이노에서 인터럽트를 이용해서 작업을 즉시 종료해보기!(녹칸다의 산업용 아두이노)
프로그래밍/산업용아두이노(fa-duino) 2023. 6. 17. 22:18반응형
안녕하세요!
녹칸다입니다!
녹칸다의 산업용 아두이노(fa-duino)의 빠른 내용 전달을 위해서 코드와 작동결과만을 별도로 정리해보도록 하겠습니다~!
녹칸다의 산업용 아두이노 2편에서 8번예제를 정리해보도록 하겠습니다~!
이번 예제에서는 아래와 같은 목표가 있습니다~~!
1.적색버튼이 2번, 녹색버튼이 3번에 연결되어있다(입력)
2.녹색버튼을 누르면 붕어빵 굽기 작업이 시작된다!
3.적색버튼을 누르면 붕아빵 굽기 작업이 즉시 종료된다!
4.작업이 즉시 종료되기는 하지만 초보자용 코드 수준에서 편법 비슷하게 구동시키는 코드이므로 향후에 이 문제를 어떻게 해결해야하는지를 학습할 필요가 있다!
예제에 사용한 코드는 아래와 같습니다~~~!
//적색버튼이 2번, 녹색버튼이 3번에 연결되어있다(입력)
//녹색버튼을 누르면 붕어빵 굽기 작업이 시작된다!
//적색버튼을 누르면 붕아빵 굽기 작업이 즉시 종료된다!
bool sw = false; //false면 멈춤, true면 작동!
void setup() {
Serial.begin(9600);
//입력과 출력은 pinMode함수로 방향을 결정해주어야한다!
pinMode(2,INPUT);
pinMode(3,INPUT);
attachInterrupt(digitalPinToInterrupt(2), Interrup1, RISING);
attachInterrupt(digitalPinToInterrupt(3), Interrup2, RISING);
}
void loop() {
//sw가 true일때만 붕어빵을 굽겠다!
if(sw == true){
Serial.println("붕어빵틀에 뚜껑을 연다");
delay(1000);
if(sw == false) return;
Serial.println("붕아빵판죽을 빵틀에 붓는다");
delay(1000);
if(sw == false) return;
Serial.println("돌려가면서 붕어빵을 굽는다");
delay(1000);
if(sw == false) return;
Serial.println("붕어빵을 빵틀에서 꺼낸다");
delay(1000);
if(sw == false) return;
Serial.println("봉지에 담아서 배출한다");
delay(1000);
if(sw == false) return;
}
}
void Interrup1(){
Serial.println("붕어빵 굽기 작업 끝!!!");
sw = false;
}
void Interrup2(){
Serial.println("붕어빵 굽기 작업 시작!!!");
sw = true;
}
작동결과는 녹칸다의 라이브방송중 해당 예제의 위치를 링크로 남겨두도록 함!
https://youtu.be/Y68Il4TQfAw?t=5587
반응형