Controlando o Arduino Mega por meio da framework LINX no LabVIEW
- Publicado em 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):
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:
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:
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.
Com 50% de ciclo de trabalho, obtemos as seguintes formas de onda:
Ainda, com 80% de largura, visualizamos o sinal PWM simples abaixo:
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.
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: