Esse projeto é um dos rápidos, mas que pode ser utilizado para implementar em outros mais complexos.
Vamos começar primeiro com o Arduino, a ideia aqui vai ser enviar 5 Strings, ou seja, vou enviar de uma vez só pela porta serial uma frase, que contem os dados separados por virgula.
// o scan from string tem que ter %[^,] como parametro para pegar os valores entre as virgulas
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print("teste_1");
Serial.print(",");
Serial.print("teste_2");
Serial.print(",");
Serial.print("teste_3");
Serial.print(",");
Serial.println("");
delay(1000);
}
Da pra ver que essa parte é realmente muito fácil, as informações transferidas tem que estar entre as virgulas(ou qualquer outro separador esse é um exemplo, pelo LabView você determina isso).
Agora vamos ver um programa em C para o PIC usando o compilador C18 da Microship:
unsigned char teste_1[] = "teste_1;
unsigned char teste_2[] = "teste_2;
unsigned char teste_3[] = "teste_3;
unsigned char virgula[] = ",";
unsigned char espaco[] = "";
void main(void)
{
while(1) // Laço infinito que executa o funcionamento principal do projeto.
{
if(!BusyUSART())
{
putsUSART((char *)
teste_1 );
putsUSART((char *) virgula );
putsUSART((char *) teste_1 );
putsUSART((char *) virgula );
putsUSART((char *) teste_1 );
putsUSART((char *) virgula );
putsUSART((char *) espaco );
Delay10KTCYx(240); //200ms
}
}//end while(1)
}//end main
Esse programa esta ressumido e não tem a parte de configuração, mas basicamente é isso, faz a mesma coisa que o código do Arquino faz, não vou entrar mais em detalhes porque em outros projetos vou cobrir mais a parte do PIC e em outros mais a parte do Arduino.
Passando para o LabView, vamos criar um novo projeto, a primeira etapa é criar o canal de comunicação entre o Microcontrolador e o LabView, no caso vamos usar a conexão serial, então vamos usar esse blocos no LabView,vamos utilizar o Visa Configure Serial Port, nele entraremos com todas informações sobre a conexão como velocidade, paridade de bits, data bits e etc...
Aqui tem um documento com muita informação boa sobre Visa Serial.
Ao adicionar os blocos e interligar eles aparecem automaticamente na parte de Projeto:
Com a porta serial comunicando, partimos para o próximo passo, temos que processar os dados, para isso utilizaremos o Visa Read, que vai fazer o trabalho de ler as Strings enviadas pelo microcontrolador.
Na figura o ponto laranja é o Visa Read, o ponto verde é o Scan From String, um bloco extremamente importante, pois ele recebe a String completa, e nele configuramos qual carácter vai ser o separados de dados, nesse exemplo será a ","(virgula), então ele recebe a informação bruta dessa forma: "teste_1,teste_2,teste_3,teste_4,teste_5," o papel do bloco é ler teste_1, e logo quando "ver" a virgula ignorar o resto da String,sendo assim podemos colocar vários blocos, e ajustar o offset para 1, cada bloco tem o papel de pegar a String e cortar a sua parte.
Certo agora temos as Strings picadas, mas esse valor é de texto, ele não assume valor numeral, assim temos que usar outro bloco para transformar essa String em decimal(ou qualquer outro tipo de conversão, fracionário,octal,hexa etc..). O bloco roxo é o Decimal String To Number.
Pronto agora temos o valor em decimal e podemos utilizar da maneira que for melhor, seja num gráfico, ou um tanque que vai enchendo de acordo com valor, ai vai mais da imaginação.
Esse projeto mesmo é só pra não deixar um buraco nessa parte de comunicação com LabView e como enviar os seus dados.Existem outras maneiras de enviar esses dados,como mandar as Strings separadas por um espaço, ao fazer a leitura da String bruta basta modificar o offset de onde vai começar a ler, assim cada bloco tem sua informação.O problema do uso dessa técnica é que por exemplo enviando: "XXXX YYY ZZZZ", esses valores podem alterar durante o programa, então vamos supor que dessa vez recebemos "XX YY ZZZ", o tamanho da String mudou, então os espaços estão em lugar diferente, e como seu offset é fixo os dados ignorados são picados, contendo informações do seu antecessor e adjacente.
Aqui está a programação em bloco do labview
Essa é a imagem do projeto completo em funcionamento, que pode ser editado e usado no futuro bem facilmente.