Matlab - Adquisicion de datos de arduino a matlab

 
Vista:
sin imagen de perfil

Adquisicion de datos de arduino a matlab

Publicado por Alejandro (10 intervenciones) el 10/06/2017 05:26:36
Mi programa es el siguiente:

Controlar un servo con un switch case para moverlo en 5 posiciones en base a un pushbuttom:

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 Tener un lector de temperatura de un sensor de temperatura DS18B20 en °C, y este ponerlo en una grafica en el GUID, ¿Como seria el codigo para ello?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Adquisicion de datos de arduino a matlab

Publicado por Alejandro (10 intervenciones) el 10/06/2017 06:11:53
Este es el codigo que hice para la toma de datos de un sensor a un determinado tiempo graficando, luego una toma de desicion de un rango de temperatura maximo y minimo, dando un comentario si se cumple cualquiera de ellas.
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar