collapse

* Links de Robótica

* Posts Recentes

Ligar Células de Lithium por Hugu
[Hoje às 02:00]


Encomenda Colectiva N3-2016[@Mouser - Aberta a pedidos!] por Hugu
[Hoje às 01:53]


Printer 3D barata por xmatias
[Ontem às 03:56]


Servidor por almamater
[09 de Dezembro de 2016, 21:39]


mysql server error por andre_f_carvalho
[09 de Dezembro de 2016, 18:56]


Cortar plástico ABS por msr
[05 de Dezembro de 2016, 17:27]


MOVIDO: FPV Drone Racing? por metRo_
[05 de Dezembro de 2016, 10:49]


Módulo gsm por dio123
[04 de Dezembro de 2016, 23:06]


Procuro resistências 220 Ohm de 1% por brunus
[02 de Dezembro de 2016, 15:50]


Package de cond 10uF 35V smd? por KammutierSpule
[02 de Dezembro de 2016, 11:19]

Autor Tópico: Duas duvidas... Serial  (Lida 885 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline pedro12

  • Mini Robot
  • *
  • Mensagens: 31
Duas duvidas... Serial
« em: 09 de Julho de 2010, 17:34 »
Em primeiro lugar bom dia, venho aqui postar duas duvidas que gostava de ver esclarecidas, a primeira é se há alguma maneira de por exemplo fazer o seguinte:

Citar
if (Serial.available()) {
  int val = 0;
  val = Serial.read();
 
 
if (val == "PALAVRA E NAO UMA UNICA LETRA") {
digitalWrite(13, HIGH);
}

}


ou seja para que a acção fosse feita tinha de enviar uma palavra ou números tipo como se fosse um código

2ª duvida é como fazer com que se por exemplo eu carregar num botão o computador produza um certo som

desde ja agradeço o esclarecimento das duvidas  :)
« Última modificação: 09 de Julho de 2010, 18:02 por pedro12 »

Offline preytender

  • Mini Robot
  • *
  • Mensagens: 148
Re: Duas duvidas... Serial
« Responder #1 em: 09 de Julho de 2010, 18:19 »
A resposta a 1ª pergunta podes encontrar aqui: http://todbot.com.s3.amazonaws.com/spookyarduino/arduino_spooky_projects_class3.pdf na página 44

Dá uma vista de olhos no pdf todo porque tb tem umas dicas para responder a tua 2ª pergunta.

Abraço.

Offline pedro12

  • Mini Robot
  • *
  • Mensagens: 31
Re: Duas duvidas... Serial
« Responder #2 em: 09 de Julho de 2010, 20:15 »
Citar
 void readSerialString (char *strArray){
 int i = 0;
 if (Serial.available()){
 strArray = Serial.read();
 i++;
 Serial.println(strArray);
 }
 }



o codigo em cima e presente no PDF indicado mas ainda nao percebi como utiliza lo por isso gostava de um esclarecimento, quanto á segunda questao nao consegui resolvela nao encontrei nada sobre isso nos PDFs

mas agradço desde ja ao preytender

Offline XicoMBD

  • Mini Robot
  • *
  • Mensagens: 571
    • FranciscoDias.net
Re: Duas duvidas... Serial
« Responder #3 em: 09 de Julho de 2010, 22:50 »
Quanto à 2ª dúvida:


Experimenta usar o processing: http://processing.org/
Deve ser fácil perceberes a linguagem uma vez que utilizas o arduino.


Depois de instalares o programa podes ir a Files/Examples/Libraries/Serial e abrires o programa SimpleRead.
Quando pressionas o botão ligado ao arduino programado com o programa que lá está muda-se a cor de um quadrado. Depois se quiseres podes adaptar para fazer o som.




Espero que ajude  :)

Offline preytender

  • Mini Robot
  • *
  • Mensagens: 148
Re: Duas duvidas... Serial
« Responder #4 em: 09 de Julho de 2010, 23:28 »
Resposta a 1ª Pergunta - Este codigo esta pronto a funcionar dá uma vista de olhos e se tiveres duvidas avisa.

Código: [Seleccione]

// Variavel global para guardar os comandos recebidos
// maximo de 20 caracteres se precisares de comandos maiores aumenta este numero
char meuComando[20];

void setup() {
 
  // Inicializar Comunicação Serial
  Serial.begin(19200); 
  Serial.println("Arduino Ready...");
 
}

void loop() {

  // Caso exista algum dado a ser recebido via serial chamar a funcao readserialstring
  if (Serial.available()) {
    readserialstring();
  }
 
  // Verificar se existe algum comando para ser processado
  // Nota: O caracter '\0' representa o fim da string por isso uma string vazia tem esse caracter na posição 0.
  if (meuComando[0]!='\0') {
   
    Serial.print("Encontrado um comando:");
 
    if (strcmp("blink",meuComando)==0) {
        // Caso o comando seja a palavra "blink" executa este código.
        // Cuidado: "blink" é diferente de "Blink"
        Serial.println("Executar Comando Blink");
   
    } else {   
      // Caso não seja codigo válido da erro e não faz nada
      Serial.println("Comando Invalido");
    }
   
    // No fim limpar a variavel do comando para não voltar a executar
    meuComando[0]='\0';
  }
   
  delay(250);
}


// Função para ler uma string de serial
// Basicamente vai colocando um caracter de cada vez na variavel meuComando até ja não haver mais.
// No fim a variavel meuComando tem a string completa
void readserialstring() {
 
 int i=0;
 while (Serial.available()) {
  meuComando[i]=Serial.read();
  i++;
 }
 meuComando[i]='\0';
 
}
 

Com relação a 2ª pergunta concordo com a sugestão do XicoMBD porque o processing é parecido com o arduino mas se estiveres mais a vontade com outras linguagens de programação como por exemplo Java,C,VB,C# podes utilizar qualquer uma delas.

Abraço.
« Última modificação: 09 de Julho de 2010, 23:43 por preytender »

Offline pedro12

  • Mini Robot
  • *
  • Mensagens: 31
Re: Duas duvidas... Serial
« Responder #5 em: 09 de Julho de 2010, 23:46 »
muito obrigado pelo esclarecimento das minhas duvidas!!!:)