フィルターのクリア

How do you program the Arduino in Simulink so you can read the sensors via I2C and SPI?

5 ビュー (過去 30 日間)
Robert Freiholtz
Robert Freiholtz 2012 年 4 月 6 日
回答済み: Mohit Khandelwal 2018 年 9 月 10 日
Hey.
I'm trying to build a control system in Simulink and then transfer it to an Arduino MEGA. The problem is that the accelerometer I've only communicate via I2C or SPI protocol and I do not know how it builds up in Simulink. I am relatively new to creating my own C \ C + + code in Simulink. Does anyone know how I can solve this problem? I thought on creating a separate block from the library that I have for the sensor that I use when I do programming in Arduinos own software.
Matlab version: 2012a Operating System: Windows 7 Arduino: MEGA Sensor: ADXL345

回答 (4 件)

Kaustubha Govind
Kaustubha Govind 2012 年 4 月 17 日
If you know how to do this in C using Arduino libraries, you can generate a custom S-function block, using the Legacy Code Tool.

Tim Rothmann
Tim Rothmann 2012 年 5 月 9 日
how does it work to include some arduino libraries like wire.h for example? i always get some compile errors. can you give me some small example?
  9 件のコメント
Tim Rothmann
Tim Rothmann 2012 年 5 月 28 日
after spending hours and hours now i'm trying to do the other way and generating C-code from simulink and import it to eclipse.
are there some papers about code generation for atmega?especially to acces inputs and outputs?
Kaustubha Govind
Kaustubha Govind 2012 年 5 月 29 日
Tim: Not sure what you mean by "to access inputs and outputs" - do you mean accessing sensor/actuator signals? Typically there needs to be a blockset containing blocks corresponding to the various board peripherals that represent the sensors and actuators.

サインインしてコメントする。


Zhuo Li
Zhuo Li 2013 年 5 月 2 日
編集済み: Zhuo Li 2013 年 5 月 2 日
These two links may be helpful to your case
ADLX345 i2c Driver for Arduino Mega
I2C block for ArduinoIO simulink package
  1 件のコメント
joshua hadi
joshua hadi 2013 年 5 月 6 日
Hello Zhuo Li, I want to ask about using adxl 345 in simulink, could we divide the x,y,z output reading into the 3 blocks (x,y,z blocks) because i saw your i2c read block only can give 1 output arrow. thanks.

サインインしてコメントする。


Mohit Khandelwal
Mohit Khandelwal 2018 年 9 月 10 日
% create an arduino object
a = arduino('com3', 'uno');
% start the loop to blink led for 10 seconds
for i = 1:10
writeDigitalPin(a, 'D11', 1);
pause(0.5);
writeDigitalPin(a, 'D11', 0);
pause(0.5);
end
% end communication with arduino
clear a

カテゴリ

Help Center および File ExchangeArduino Hardware についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by