Arduino Matlab sensor de temperatura y servo
Publicado por Alejandro (2 intervenciones) el 10/06/2017 06:09:46
Tengo un problema
Tengo que mover un servo desde un GUID de matlab y ver la temperatura de un sensor DS18B20.
Lo que tengo para el control del servo es lo siguiente
Y para lo del sensor requeriria lectura del sensor DS18B20 para ponerlo en una grafica normal X vs Y, igual tomando datos de 2 rangos de temperatura y dar un comentario para cambiar al servo, esto con tema de desicion.
Tengo que mover un servo desde un GUID de matlab y ver la temperatura de un sensor DS18B20.
Lo que tengo para el control del servo es lo siguiente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
a=arduino('COM5');
arduino.servoAttach(3);
contents=get(handles.control,'String');
Control=contents{get(handles.control,'Value')};
switch Control
case 'Nivel Bajo'
X=(180/5);
case 'Nivel Medio a Bajo'
X=(180/5)*2;
case 'Nivel Medio'
X=(180/5)*3;
case 'Nivel Media a Alto'
X=(180/5)*4;
case 'Nivel Alto'
X=180;
end
arduino.servoWrite(3, X)
Y para lo del sensor requeriria lectura del sensor DS18B20 para ponerlo en una grafica normal X vs Y, igual tomando datos de 2 rangos de temperatura y dar un comentario para cambiar al servo, esto con tema de desicion.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
a=arduino('COM5');
%grafica de temperatura vs tiempo tomando lectura del sensor
while time<100;
time=time+1;
Tmax=str2num(get(handles.tmax,'string')); %toma de datos de Temperatura maxima del proceso
Tmin=str2num(get(handles.tmin,'string')); %toma de datos de temperatura minima del proceso
temp=a.analogRead(0); %En el pin 0 se toma la lectura
T=temp*181/1023; %El sensor es de -55 °C a 125 °C dando 181 datos
plot(time,T,'b',time,Tmax,'r',time,Tmin,'g'); %grafia Temperatura con rangos minimo y maximo
xlabel('Temperatura (°C)');
grid on;
%Desicion para la controlar el servo y subir o bajar el flujo de la
%bomba, esto en base a un comentario para el usuario
if (Tmax>T & Tmin<T)
Comentario='Dentro del rango';
elseif (Tmax>=T & Tmin<T)
Comentario='Sobre el Rango \n Aumente el Flujo de la bomba';
elseif (Tmax<T & Tmin>=T)
Comentario='Debajo del rango \n Baje el Flujo de la bomba';
end
set(handles.,'String',Comentario);
set(handles.treal,'String',T);
end
- Instrumental.rar(28,7 KB)
Valora esta pregunta
0