quarta-feira, 14 de janeiro de 2015

Arduino + Matlab + leitura/escrita de .txt

    Já foi visto aqui no blog como fazer leituras analógicas utilizando Matlab e arduino. Mas as vezes somente o gráfico não passa todos os dados necessários, as vezes é preciso saber quantas leituras foram feitas, o valor mínimo e o valor máximo. 
    O objetivo desse tutorial e justamente mostrar como ler um arquivo .txt no Matlab e manipula-lo para obter as informações necessárias.


    A programação foi dividida em duas partes para ficar mais fácil a sua aplicação. Abaixo segue a parte em que se faz a comunicação com matlab e arduino.


  delete(instrfind({'Port'},{'COM3'}));  
 clear all  
 clc  
 a=arduino('COM3');  
 passo = 1;  
 t = 1;  
 x1=0;  
 while true  
   b = a.analogRead(0);  
   x1 = [x1,b];  
   area(x1);  
   grid on  
   drawnow;  
   save leitura.txt x1 -ascii  
 end  

    Nota-se que na penúltima linha de programação e onde salva o arquivo .txt onde recebe os valores x1.
    Abaixo a manipulação do arquivo .txt

 fid = fopen('leitura.txt');  
 if fid == -1  
   disp('Erro na abertura do arquivo')  
 else  
 while feof(fid) == 0  
   linha = fgetl(fid);  
   [num chr] = strtok(linha);  
   fprintf('%.2f %s\n',str2num(num),chr)  
 end  
 fim = fclose(fid);  
 if fim == -1  
     disp('Erro no fechamento do arquivo')  
   end  
 end  
 let = x1'  
 tamanho =length(x1);  
 min = min(x1);  
 max = max(x1);  
 fprintf('Foram feitas %d leituras, com o minimo de %d e maximo de %d\n', tamanho, min , max)  


Nenhum comentário:

Postar um comentário