Simulink(P​C)とArduino​間の通信でArdui​noに書き込んだコー​ドをSimulink​実行時に上書きされな​いようにするには。

SimulinkモデルでSimulink Support Package for Arduino Hardwareのdigital outputブロックを使用してArduinoと接続するモデルを作成しました。Arduinoには制御用のコードをあらかじめ書き込んで置いて、SimulinkからON信号が送られてきたらコードを実行することが最終的な目的でした。しかし、Simulinkを実行するとArduinoが上書きされてしまい事前に書き込んだコードを実行出来ない状態となってしまいます。
Arduinoへの上書きの防止方法もしくはこの問題の解決策が有れば教えていただきたいです。

 采纳的回答

Toshinobu Shintai
编辑:Toshinobu Shintai 2022-7-6
Arduinoに書き込んだモデル(モデルA)は、Arduinoで実行するための設定が施されていますので、そのモデルを実行すると、仰る通りArduinoに対して書き込みが実行されます。
PC上のSimulinkとArduinoを通信させたいということであれば、PCで実行するためのモデル(モデルB)を用意する必要があります。
モデルBがモデルAと通信する際には、シリアル通信(UART)を用いる想定でしょうか?そうであれば、モデルBでは Instrument Control Toolbox の Serial Receive, Serial Send ブロックが必要になります。
同じPCでモデルAとモデルBを開き、二つを実行させることで通信ができるようになります。

3 个评论

返信していただきありがとうございます。
モデルAとBはUSBを用いたシリアル通信を採用しています。
返信いただいた内容のイメージとしてはPCで実行するモデルBをSerial ReceiveとSerial Sendで構成して、モデルAをArduinoにビルドする。モデルBのSerial SendブロックはArduinoと接続しているportを選択し、モデルAはSerial ReceiveブロックとArduino用のdigital outputを用いる、というイメージをしているのですが正確に捉えられていますでしょうか。(添付の画像のように配置)
ちなみにモデルBのSerial Receiveは別の機器とシリアル通信をするために配置しています。
はい、私の考えと合致していると思います。
ありがとうございます。

请先登录,再进行评论。

更多回答(0 个)

产品

版本

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!