Two graphs at the same time
Mostrar comentarios más antiguos
PLEASE HELP
Hello,
I have this code that is used with arduino package
the code will be used to get data from two sensors:
- load cell that measures load
- displacement sensor that measures displacement
problems:
- this code is showing two graphs but only one graph has labels
- only one graph is showing data results
this is the code: (please note that i'm new to MATLAB and coding in general)
clear
clc
a=arduino('com3','Uno')
loadcell=addon(a,'ExampleAddon/HX711',{'D2','D3'})
plotTitle1 = 'Load VS Time';
xLabel1 = 'Elapsed Time (s)';
yLabel1 = 'Load (KN)';
legend1 = 'Load Cell 1'
plotTitle2 = 'Displacement VS Time';
xLabel2 = 'Elapsed Time (s)';
yLabel2 = 'Displacement (mm)';
legend2 = 'Displacement Sensor 1'
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
yMax1 = 10000000
yMin1 = 0
yMax2 = 10000000
yMin2 = 0
plotGrid = 'on';
min1 = 0;
max1 = 10000;
min2 = 0;
max2 = 10000;
delay = .001;
time = 0;
data1 = 0;
data11 = 0;
data12 = 0;
data2 = 0;
data21 = 0;
data22 = 0;
count = 0;
subplot(2,4,1)
plotGraph1 = plot(time,data1,'-r')
subplot(2,4,2)
plotGraph2 = plot(time,data2,'-r')
hold on
title(plotTitle1,'FontSize',5);
xlabel(xLabel1,'FontSize',5);
ylabel(yLabel1,'FontSize',5);
axis([yMin1 yMax1 min1 max1]);
title(plotTitle2,'FontSize',5);
xlabel(xLabel2,'FontSize',5);
ylabel(yLabel2,'FontSize',5);
axis([yMin2 yMax2 min2 max2]);
grid(plotGrid);
tic
figure (1)
while ishandle(plotGraph1)
dat1 = read_HX711(loadcell)-1940.225269
count = count + 1;
time(count) = toc;
data1(count) = dat1(1);
set(plotGraph1,'XData',time,'YData',data1);
axis([0 time(count) min1 max1]);
pause(delay);
end
hold on
figure (2)
while ishandle(plotGraph2)
dat2 = readVoltage(a,'A0')*80
count = count + 1;
time(count) = toc;
data2(count) = dat2(1);
set(plotGraph2,'XData',time,'YData',data2);
axis([0 time(count) min2 max2]);
pause(delay);
end
hold off
delete(a);
disp('Plot Closed and arduino object has been deleted');
Respuesta aceptada
Más respuestas (1)
Ameen Mouazzen
el 21 de Abr. de 2019
Editada: Ameen Mouazzen
el 21 de Abr. de 2019
3 comentarios
darova
el 21 de Abr. de 2019
Why did you remove that part with (xlabel(xLabel1,'FontSize',5);) ?
Maybe you can plot your data in separate figures instead of subplot:
h1 = figure; % create figure for data1
xlabel(xLabel1,'FontSize',5); % add x label
% set figure size
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
h2 = figure; % create figure for data2
xlabel(xLabel2,'FontSize',5); % add x label
% set figure size
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
figure(h1) % set active figure "h1" (data1)
plot(time, data1, '.-r') % draw something
hold on % retain current plot for adding new data
figure(h2) % set active figure "h2" (data2)
plot(time, data2, '.-b') % draw something
hold on % retain current plot for adding new data
figure(h1) % set active figure "h1" (data1)
plot([0 1], [1 1], '.-r') % add some data
figure(h2) % set active figure "h2" (data2)
plot([1 2], [2 1], '.-b') % add some data
figure(h1), hold off % set hold state to "off"
figure(h2), hold off
Learn what each operation does, understand logic. Can't write good code without holding entire picture in your head
Ameen Mouazzen
el 21 de Abr. de 2019
Editada: Ameen Mouazzen
el 21 de Abr. de 2019
Ameen Mouazzen
el 21 de Abr. de 2019
Editada: Ameen Mouazzen
el 21 de Abr. de 2019
Categorías
Más información sobre MATLAB Support Package for Arduino Hardware en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!