Arduino-based Data Acquisition Device for Computer-controlled systems practices
 
https://www.mathworks.com/responsive_image/160/120/0/0/0/cache/matlabcentral/mlc-downloads/downloads/686c8dac-ccce-4c70-a203-7182c4b6ba21/20aadee5-a423-435f-8b30-ff1556fa1c25/images/screenshot.jpg
 
Overview:
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 (2025). DaqDuino (https://www.mathworks.com/matlabcentral/fileexchange/50784-daqduino), MATLAB Central File Exchange. Retrieved .