Publicidade:

quinta-feira, 8 de outubro de 2015

Arduino - Serial através do DOS (arquivo em lote .bat)

sabe quando você quer usar a serial pra enviar um comando para o arduino executar alguma coisa, mas não quer ficar usando o enter ou clicar no botão enviar?

Neste vídeo mostro como contornar esse probleminha através do uso de comando do DOS.



Código-fonte:


/*
mais detalhes sobre essa função: http://fabianoallex.blogspot.com.br/2015/09/arduino-como-substituir-delay-pelo.html
*/
int time(long timeHigh, long timeLow, long atraso, long mref = 0) {
  long ajuste = mref % (timeHigh + timeLow);
  long resto  = (millis() + timeHigh + timeLow - ajuste - atraso) % (timeHigh + timeLow);
  return (resto < timeHigh ? HIGH : LOW);
}


void setup(){
  Serial.begin(9600);
  pinMode(6, OUTPUT);
}

boolean pisca = false;

void loop(){
  int c = Serial.read();
  
  if (c == 97) { digitalWrite(6, HIGH); pisca = false; } //a -> liga
  if (c == 98) { digitalWrite(6, LOW);  pisca = false; } //b -> desliga
  if (c == 99) { pisca = true;                         } //c -> pisca

  if (pisca)   { digitalWrite(6, time(400, 400, 0));   }
}



arquivo .bat:

lembre-se de configurar a porta correta, nesse exemplo, utilizei a porta COM8.


MODE COM8 BAUD=9600 PARITY=n DATA=8

:LOOP
  
  CHOICE /C:1234 /M "1: liga; 2: desliga; 3: pisca; 4: sair " 
  IF errorlevel 4 GOTO SAIR
  IF errorlevel 3 GOTO PISCA
  IF errorlevel 2 GOTO DESLIGA 
  IF errorlevel 1 GOTO LIGA

  :DESLIGA  
  ECHO b > COM8 
  GOTO END

  :LIGA
  ECHO a > COM8  
  GOTO END

  :PISCA
  ECHO c > COM8  
  GOTO END

  :END
  CLS  
GOTO LOOP 

:SAIR


3 comentários:

  1. como posso desabilitar o circuito DTR pelo arquivo .bat?

    ResponderExcluir
  2. Oi, tudo bem! Eu quero fazer um arquivo .bat pra se comunicar com o arduino por voz através do JARVIS free via serial. Ex.: Eu falo o comando pro JARVIS ele abre o arquivo .bat e envia as informações pela porta serial, através desse arquivo . bat. Como eu posso fazer um arquivo mais simples .bat, por ex.: Que apenas ligue um led, ou lâmpada/aparelhos eletrônicos através de um relé, neste caso, e fique ligado até que eu mande outro comando pra desligar os equipamentos, tudo por voz através do JARVIS Free? E como ficaria o arquido do arduino neste caso, ficaria mais simples? eu vi que posso mandar ligar e desligar com o mesmo comando, por ex.: "Luz sala" Acende, depois falo novamente "Luz sala", e ela desliga. Pro código ficar ainda mais enxuto?

    Se puder me ajudar, por gentileza, a fazer esse arquivo com os comandos corretos pra comunicação via serial, ficarei muito agradecido! Muito obrigado!

    ResponderExcluir
    Respostas
    1. É o que estou tentando fazer, e em breve postarei no meu canal YouTube. L GUSTAVO

      Excluir