- Criação da interface gráfica do usuário do MATLAB para plotagem do gráfico
- Código MATLAB para traçar o gráfico
- Material Necessário
- Diagrama de circuito
- Trace o gráfico com o MATLAB
Os gráficos são sempre úteis para visualizar os dados e torna-se muito fácil encontrar tendências e padrões olhando para eles. Existem muitos softwares disponíveis para plotar gráficos com base nos valores de entrada, hoje vamos usar o MATLAB para plotar gráficos com base nos dados de temperatura do sensor LM35. Este tutorial lhe dará uma idéia básica sobre como plotar um gráfico em tempo real usando o MATLAB. O Arduino Uno é usado aqui para obter dados de temperatura do sensor de temperatura LM35.
Antes de prosseguir, se você é novo no MATLAB, pode verificar nossos tutoriais anteriores do MATLAB para compreender melhor:
- Introdução ao MATLAB: uma introdução rápida
- Interface do Arduino com MATLAB - LED piscando
- Comunicação serial entre MATLAB e Arduino
- Controle de motor DC usando MATLAB e Arduino
- Controle de motor de passo usando MATLAB e Arduino
Criação da interface gráfica do usuário do MATLAB para plotagem do gráfico
Primeiro, temos que construir a GUI (Graphical User Interface) para Plot a Graph com os dados de temperatura. Para iniciar a GUI, digite o comando abaixo na janela de comando
guia
Uma janela pop-up será aberta, selecione uma nova GUI em branco, conforme mostrado na imagem abaixo,
Agora temos que escolher um botão, dois eixos e uma caixa de texto para a interface gráfica do MATLAB . O botão de pressão será usado para iniciar a detecção de temperatura, dois eixos para traçar o gráfico e a caixa de texto para mostrar o valor atual da temperatura.
Para redimensionar ou alterar a forma do botão, eixos ou botão de edição de texto, basta clicar sobre ele e você poderá arrastar os cantos do botão. Ao clicar duas vezes em qualquer um deles, você poderá alterar a cor, a string e a marca desse botão específico. Após a personalização, ficará assim
Você pode personalizar os botões de acordo com sua escolha. Agora, quando você salva isso, um código é gerado na janela do Editor do MATLAB. Para fazer seu Arduino executar qualquer tarefa específica relacionada ao seu projeto, você sempre tem que editar este código gerado. Abaixo, editamos o código MATLAB. Você pode aprender mais sobre a janela de comando, janela do editor etc. no tutorial de Introdução ao MATLAB.
Código MATLAB para traçar o gráfico
O código MATLAB completo para projetar um termômetro usando LM35 e Arduino é fornecido no final deste projeto. Além disso, estamos incluindo o arquivo GUI (.fig) e o arquivo de código (.m) aqui para download, usando o qual você pode personalizar os botões ou o tamanho dos eixos conforme sua necessidade. Editamos o código gerado conforme explicado abaixo.
Copie e cole o código abaixo na linha no. 74 para se certificar de que o Arduino está falando com MATLAB toda vez que você executar o m-file .
limpar tudo; global a; a = arduino ();
Ao rolar para baixo, você verá que há duas funções criadas para Botão e Editar Texto na GUI, nenhuma função será criada para Eixos. Agora escreva o código na função Pushbutton (botão iniciar) de acordo com a tarefa que deseja executar.
Na função do botão Iniciar , copie e cole o código abaixo um pouco antes do final da função para iniciar a detecção de temperatura. Para detectar, exibir e representar graficamente a temperatura continuamente, estamos usando o loop while . Fornecemos uma pausa de 1 segundo após cada iteração para que o valor da temperatura seja atualizado a cada segundo.
x = 0; go = true; global a; while go value = readVoltage (a, 'A1'); temp = (valor * 100); disp (temp); x =; plot (alças.axes1, x); grade ligada; xlabel ('Tempo (segundos)') ylabel ('Temperatura (° C)'); título ('Gráfico de temperatura em tempo real'); conjunto drawnow (alças.edit1 , 'String', num2str (temp)); pausa (1); fim
Agora, vamos ver como o código está funcionando. Em menos de três linhas de linha temos que definir o valor inicial de ' x ' para zero, definindo ' ir ' como verdadeiro para iniciar o enquanto loop e declarou ' um global' para chamar o Arduino na função.
x = 0; go = true; global a;
A linha de código abaixo é usada para detectar o valor da tensão do pino analógico A1 do Arduino que está conectado ao pino 'OUT' do sensor de temperatura LM35. A saída será o valor da tensão, não o valor analógico.
valor = readVoltage (a, 'A1');
Aqui podemos converter diretamente o valor da tensão no valor da temperatura (graus Celsius), multiplicando-o por 10
temp = (valor * 100);
Agora, para traçar o gráfico, a função 'plot (alças.axes1, x)' é usada, onde axes1 é a referência ou nome da área do gráfico. Então, se você está traçando mais de um gráfico, então você só precisa alterar o nome dos eixos, como se você traçar outro gráfico, você pode escrever plot (alças.axes2, x) '
'Grade ativada ' é usado para Na visualização de grade do gráfico , 'xlabel', 'ylabel' e ' título ' são usados para nomear o eixo x, eixo y e título.
plot (alças.axes1, x); grade ligada; xlabel ('Tempo (segundos)') ylabel ('Temperatura (° C)'); título ('Gráfico de temperatura em tempo real');
' Drawnow' é usado para atualizar a representação gráfica em tempo real.
desenhar agora
Para exibir o valor da temperatura na caixa de texto de edição a cada segundo, o comando abaixo é usado, set (alças.edit1, 'String', num2str (temp));
Material Necessário
- Laptop instalado com MATLAB (preferência: R2016a ou versões superiores)
- Arduino UNO
- LM35 - Sensor de Temperatura
- Fios de conexão
- Tábua de pão
Diagrama de circuito
Trace o gráfico com o MATLAB
Após configurar o hardware de acordo com o diagrama de circuito, basta clicar no botão Executar para executar o código editado no arquivo.m
O MATLAB pode levar alguns segundos para responder, não clique em nenhum botão da GUI até que o MATLAB exiba uma mensagem de ocupado no canto inferior esquerdo, conforme mostrado abaixo,
Quando tudo estiver pronto, clique no botão iniciar e você começará a obter os dados de temperatura na Área Gráfica e na caixa Editar Texto . O valor será atualizado automaticamente a cada segundo. Este intervalo de um segundo você pode alterar o código MATLAB de acordo.
A saída será semelhante à imagem mostrada abaixo,
É assim que você pode plotar o gráfico para qualquer valor de entrada do Arduino usando o MATLAB.
Verifique o vídeo de demonstração abaixo para um entendimento adequado.