반응형

https://youtu.be/6RjVbPI6uG8

🔥[FA-DUINO#4] 산업용 아두이노에서 순차적 작업과 멀티태스킹을 하는방법!(타이머 인터럽트)
녹칸다의 산업용 아두이노(FA-DUINO) 시리즈이다!
산업용 아두이노를 이용한 코딩과 실제 산업현장에서 사용할 수 있는 제품들을 활용하도록 한다!

산업용 아두이노는 아두이노 메가보드로 만들어져 있어서 녹칸다 입장에서는 아두이노와 동일하다!
그러나 산업용 아두이노에 연결되는 것들은 아두이노의 것이라고 볼 수 없다!
그러므로 기존 아두이노와는 별개로 산업 제품을 연결하고 활용하는 것도 주요 주제라고 할 수 있다!
산업제품을 실제로 활용은 하되 전문가에 가깝게 하지는 않고 시연을 위한 도구 정도로 한정한다!
(녹칸다는 전기 패널에 대해서 전혀 알지 못함)

아두이노만 다루었던 사람은 산업제품의 배선이나 연결방법을 모르고,
산업제품을 다뤘던 사람은 PLC와 제조사에서 제공하는 프로그램만 다루어서 아두이노를 알지 못한다!
즉 녹칸다는 둘 사이를 연결하는 역할을 담당하게 된다!

아두이노는 C와 C++언어를 기반으로 하는데 생각보다 학습해야하는 양이 많다!
이번 산업용 아두이노 시리즈에서는 C와 C++언어에 대해서 잘 알고 있다고 가정한다!
(아두이노에서 사용하는 C와 C++언어에 대한 지원을 위해서 녹칸다의 아두이노 병법서 시리즈가 있으니 모르는 분들은 그것을 참고)

녹칸다의 산업용 아두이노는 구글 슬라이드에 결과물을 저장함!(모든 사람에게 공유되어있음!)
https://docs.google.com/presentation/d/19UuuJpKdFTj_RVp3qCrfGlKRo_kFRgEBzKX3Za8-u50/edit#slide=id.p

이번편은 아두이노에게 순차적인 작업을 하도록 코드를 작성하는 방법에 대해서 알아보도록 한다!
보통 순차작업을 할때 delay함수를 쓰기 마련인데 delay함수는 아주 위험한 함수이다!
아두이노의 loop함수의 모든 기능을 멈춰버리는 엄청난 코드이기 때문에 loop안에서 멀티태스킹을 할 수 없다!
간단히 생각해보건데 순차적으로 작동중인 기계를 즉시 중단해야하는 경우 delay로 구현하면 그것이 불가능하다!
2편에서 외부 인터럽트로 그것을 극복하는 것을 다룬적이 있긴하지만 인터럽트 핀이 2개뿐이라 완전한 해결책이라 보기 어렵다!

결국 산업용 아두이노에서 시분할 순차처리와 멀티태스킹을 하는 기법을 알아내야 하는 것이다!
다양한 방식이 있다! 아래와 같은 순서로 접근해보도록 하자!

1.millis()에 의한 순차처리와 멀티태스킹
2.timer 라이브러리에 의한 순차처리와 멀티태스킹
3.timer 인터럽트에 의한 순차처리와 멀티태스킹
4.몇가지 시나리오 구성해서 만들어보기!

반응형
Posted by 덕력킹
,