File Exchange

image thumbnail

DaqDuino

version 2.1 (19 KB) by Antonio Silveira
Arduino-based Data Acquisition Device for Computer-controlled systems practices

7 Downloads

Updated 10 Oct 2019

View License

Use the Arduino board as a single-shot data aqcuisition (DAQ) device for computer-controlled systems practices (Digital Control Theory). This package comes with four main m-file functions: daqduino_start, daqduino_end, daqduino_write, daqduino_read. As an example, consider the fragment of a code to implement a digital PID control loop:
daqduino_start('COM5');
for k=1:2, % Initial conditions
y(k)=0; u(k)=0; e(k)=0; % output, control, error
end
for k=3:nit, % nit=number of iterations
y(k)=daqduino_read;
e(k)=yr(k)-y(k); %yr(k) is a reference sequence
u(k)=u(k-1)+s0*e(k)+s1*e(k-1)+s2*e(k-2);
daqduino_write(u(k),Ts); % Ts is the sampling time
end
A Simulink block is also available. However, it has not been tested very much. You may face some bugs.
An m-file example is given doing three practices: (1) Open-loop datalog; (2) Least-squares offline identification; (3) IMC Model-based Digital PID control tuned by the selection of the closed-loop time constant.
This package has been tested only with Arduino Uno R3 and Arduino Nano R3. The I/O pins in use are the Analog Input A0 and Pin 6 PWM. However, the Arduino code is very simple and you can modify it to your own needs. If you do so, please remember to reference/cite the author and research groups involved.

-------------
Laboratory of Control and Systems - LACOS, Federal University of Para, Brazil (ufpa.br)
Group of Control and Systems - GCS, State University of Santa Catarina, Brazil (udesc.br)
Author: Professor Antonio S. Silveira (lattes.cnpq.br/1828468407562753)

Cite As

Antonio Silveira (2019). DaqDuino (https://www.mathworks.com/matlabcentral/fileexchange/50784-daqduino), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (1)

Updates

2.1

Small corrections to make DaqDuino compatible with MATLAB R2018 and with SCILAB 6.0.2.

2.0.0.0

Updated help and functions for installation procedures in Linux systems.

1.1.0.0

- Added some lines into the Arduino side program in order to limit the I/O range between 0V to 5V, and a new program to set the PWM frequency to 2kHz;
- Added a comment within the install notes regarding reset avoidance during the serial connection.

1.1.0.0

Sampling time Ts within the daqduino_block.mdl is now working fine at 0.04 seconds.

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Communities

daqduino_v2.1/examples