project

아두이노 simulink 연결방법

fbc0314 2025. 2. 6. 11:04

아두이노와 simulink를 연결해서 input signal와 output signal을 simulink 내에서 확인해보자!!

1.아두이노와 matlab

먼저 아두이노와 matlab을 연결하기 위한 에드온을 설치한다. (simulink를 사용하기 위해서 필수인지는 모르겠다)

matlab과 아두이노 연결

설치 후에는 아두이노와 연결을 설정해야 한다. 설치 직후에  usb 드라이버를 설정할것인지를 묻는 메세지가 나오는데 여기서 설정할 수 있고 설치 후에 위의 화면에서 관리 버튼 -> 톱니바퀴 아이콘을 통해서 설정할 수 있다. 

세번째 사진에서 아두이노 우노에서는 Motor carrier, Serial 라이브러리 설치는 안된다고 한다(일단 다 설치했다...), 포트는 사용자마다 다르다
위의 명령어를 입력하면 아마 다시 설정할 수 있나보다

변화를 확인해보자!! 명령창에 a=arduino('COM4','Uno')를 입력하면 아래과 같이 matlab에서 아두이노 보드를 확인할 수 있다. 위와 같은 연결설정을 연결할때마다 해주어야 한다!!

 

8번핀에 저항을 이용해서 led의 양극(긴쪽)과 연결했다. 아래 명령으를 이용하면 연결된 led의 on/off가 가능하다.

writeDigitalPin(a, 'D8', 1); //8번핀을 on
writeDigitalPin(a, 'D8', 0); //8번핀을 off

 

2. 아두이노와 simulink

이제 아두이노와 simulink를 연결하기 위한 에드온을 설치한다.

simulink와 아두이노 연결

이번에도 비슷하게 하드웨서 설정을 해야 한다. 

중간에 문제가 생기면 usb를 뽑았다가 다시 시도한다
끝까지 설치 완료

simulink를 열고 빈모델을 열어서 라이브러리 브라우저를 확인해보면 아래와 같이 아두이노 관련 블록이 존재한다.

아두이노와 연결할 수 있는 블록

 

simulink 빈 모델을 하나 열고 아래와 같이 블록을 가져와서 연결한다. pulse 신호를 output으로 9번핀에 주고 A4의 신호를 input으로 읽어서 scope으로 확인하려고 한다. 

 

여기서 아두이노 보드에 8번핀과 A0에 연결했으므로 아래와 같이 더블클릭 후에 변경해준다.

좌측 사진은 digital output, 우측사진은 analog input
변경 후의 사진

어떤 하드웨어와 연결할 것인지 여기서는 어떤 아두이노 보드와 연결할 것인지를 선택한다.(port number는 자동으로 찾는거 같다)

모델 설정에 들어가서 하드웨어 구현을 Arduino Uno로 변경해준다
설정후 보여지는 hardware 화면

 

마지막으로 Run on board를 누르고 Stop Time을 설정하고(inf으로 하면 계속 실행) Monitor & Tune을 누르면 아두이노에서 실행되어 led가 작동하는 것을 확인할 수 있다. 마지막은 실행 후 scope으로 보여지는 결과이다.

 

#크기 400의 의미

위에서 크기가 400인 pulse를 확인할 수 있다. 여기서 400이라는 숫자가 의미하는 것이 무엇일까??

아두이노는 10bit를 이용해서 크기를 표현한다. 즉 아두이노 보드의 5V를  0~1023까지의 수를 표현하는 것이다. 그렇다면 400이라는 숫자는 5*400/1024=1.95=>2V의 전압이라는 것을 의미한다.

 

연결시 주의할 점

  • 매트랩 작업공간에 아두이노 변수가 정의되어 있으면 안된다.
  • 아두이노 코드와 비슷하게 하나의 핀은 input/output 중 하나만 가능하다 즉 서로 다른 블록에 같은 pin number가 존재하면 안된다.