DaqDuino

Arduino-based Data Acquisition Device for Computer-controlled systems practices
664 téléchargements
Mise à jour 21 mars 2022

Afficher la licence

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)

Citation pour cette source

Antonio Silveira (2026). DaqDuino (https://fr.mathworks.com/matlabcentral/fileexchange/50784-daqduino), MATLAB Central File Exchange. Extrait(e) le .

Compatibilité avec les versions de MATLAB
Créé avec R2009b
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur Data Acquisition Toolbox Supported Hardware dans Help Center et MATLAB Answers
Communautés

daqduino_v2.2/examples

Version Publié le Notes de version
2.2.2

The Arduino side program, DaqDuino_Arduino.ino, was causing an error when the daqduino_read.m function was called from MATLAB. The problem was solved in the Arduino side after changing the line Serial.print(y[0]) to Serial.println(y[0]).

2.2.1

Corrected daqduino_read function.

2.2

Added support for Python. The standard baud rate is now set to 115200 bits per second. Analog-to-Digital 5V saturation was removed from Matlab/Scilab/Python-side read functions.

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.
Sampling time Ts within the daqduino_block.mdl is now working fine at 0.04 seconds.

1.0.0.0