How do you program the Arduino in Simulink so you can read the sensors via I2C and SPI?
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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
0 Commenti
Risposte (4)
Kaustubha Govind
il 17 Apr 2012
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.
0 Commenti
Tim Rothmann
il 9 Mag 2012
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 Commenti
Tim Rothmann
il 28 Mag 2012
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
il 29 Mag 2012
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
il 2 Mag 2013
Modificato: Zhuo Li
il 2 Mag 2013
These two links may be helpful to your case
ADLX345 i2c Driver for Arduino Mega
I2C block for ArduinoIO simulink package
1 Commento
joshua hadi
il 6 Mag 2013
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
il 10 Set 2018
% 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
0 Commenti
Vedere anche
Categorie
Scopri di più su Modeling in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!