// // // PHPH.com.br - Controlando o Arduino Mega por meio da framework LINX no LabVIEW
All for Joomla All for Webmasters

Controlando o Arduino Mega por meio da framework LINX no LabVIEW

Em outros artigos, demonstramos algumas aplicações nas quais a plataforma Arduino era utilizada como interface de aquisição de dados e controle pelo software LabVIEW. Nesta página, demonstraremos a framework open source LINX para LabVIEW com o Arduino Mega, que atualmente suporta as plataformas NI MyRIO, Digilent, Arduino, Sparkfun e suporte em desenvolvimento para o Raspberry PI, TI ARM e PJRC. 

Antes de utilizarmos o LINX em qualquer plataforma, é necessário o upload do respectivo firmware LINX ao sistema embarcado, fazendo com que esse sistema alvo reconheça os comandos emitidos na plataforma LabVIEW, seja pela API VISA e uma porta serial ou por uma interface TCP-IP.

Nesta aplicação, utilizamos a porta serial/USB do próprio Arduino com um VI de exemplo PWM do LINX. Neste caso, foram utilizados apenas os subVIs Initialize, Set Duty Cycle e Close da API LINX, resultando em um VI extremamente simples, com apenas as entradas "Duty Cycle" (0 a 1) para controle da largura do sinal PWM simples (não se confudir com PWM senoidal, entre outros), "PWM Channel" para especificarmos o pino do sinal PWM no Arduino e a porta serial (COMx):

diagrama linx

A interface gráfica para o geração do sinal PWM é bem simples, mas lembre-se que o código é desenvolvido no sistema LabVIEW que possui inúmeros recursos gráficos disponíveis:

interface linx

Para testarmos o sinal PWM simples gerado, controlamos uma ventoinha 120x120 com um mini motor DC brushless 12V e obtemos os sinais elétricos de tensão abaixo por meio de um osciloscópio de 4 canais com banda de 300MHz. É importante ressaltar que uma das grandes desvantagens na utilização do LINX é a relativa perda de velocidade na execução do código no sistema alvo. Em relação ao PWM gerado, a frequência é de aproximadamente 500 Hz.

Uma vez que o Arduino Mega não permitiria o acionamento direto da ventoinha em 12V, a fonte de tensão VCC de 12V foi obtida por meio de uma fonte de precisão Rigol DP831A e o sinal de saída PWM do Arduino foi aplicado na base de um transistor bipolar BC458 (sinal amarelo, CANAL 1); para visualizamos a forma de onda da corrente sinal verde, CANAL 4), utilizamos um resistor de 1 ohm no emissor do transistor, e o sinal rosa, CANAL 2, se refere à tensão no coletor do transistor bipolar, conforme circuito a seguir:

circuito pwm

Iniciamos o experimento com uma largura de pulso de 20%, conforme o sinal amarelo aplicado à base do transistor. Perceba que a tensão no coletor (sinal rosa) é reduzida em função da ativação do transistor e respectiva aplicação da carga e a condução de corrente (sinal verde) é iniciada com um transitório de duração de poucos microsegundos. Além disso, o sinal rosa demonstra uma inversão instânea na tensão do coletor decorrente do desligamento da carga indutiva e continuidade da rotação do rotor.

SDS00003

SDS00003

Com 50% de ciclo de trabalho, obtemos as seguintes formas de onda:

SDS00002

SDS00002

Ainda, com 80% de largura, visualizamos o sinal PWM simples abaixo:

SDS00001

SDS00001

Por fim, é interesse notar o comportamento oscilatório intermitente após o desligamento do transistor bipolar, no qual o sinal rosa (tensão no coletor) oscila muito antes de atingir o regime permanente, inclusive gerando potência por alguns instantes uma vez que a ventoinha (rotor) continua girando por inércia.

SDS00005

SDS00005

SDS00006

SDS00006

Enfim, aplicamos o mesmo sinal em outra ventoinha com motor brushless de 6 pólos e observamos o mesmo comportamento oscilatório, mas bem mais intermitente:

SDS00001 8p

SDS00001 8p

SDS00003 8p

SDS00003 8p

SDS00002 8p

SDS00002 8p

Deixe um comentário

Certifique-se de preencher os campos indicados com (*). Não é permitido código HTML.