Consegui conectar o MATLAB ao meu Uno com esta linha de código: a = arduino('COM4');
através deste pacote: Pacote de suporte Matlab para Arduino .
No momento, o MATLAB é o meu script principal que sincronizará todos os componentes [como o Arduino].
Sou capaz de enviar pulsos para o meu motor de passo usando:
void loop() {
digitalWrite(2, HIGH);
delay(1);
digitalWrite(2, LOW);
delay(1);
}
Isso funciona bem e fará com que o motor se mova uma vez a cada 2 milissegundos. Meu problema é que não consigo encontrar uma maneira de produzir esse mesmo atraso através da interface do MATLAB. Eu sei que o MATLAB tem uma pause()
função, mas quando eu configuro um loop no MATLAB assim:
a = arduino('COM4');
for m = 1:400
a.digitalWrite(2, 1);
pause(0.001);
a.digitalWrite(2, 0);
pause(0.001);
end
Cada etapa leva MUITO mais tempo - cerca de 200 milissegundos cada.
Quais são as outras opções para criar a pausa entre alta / baixa digital sendo enviada ao Arduino? Seria bom se eu pudesse controlar o resultado do Matlab, através do Arduino.