collapse

* Links de Robótica

* Posts Recentes

Ajuda com TRIAC por senso
[Hoje às 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]


Amplificador audio por beirao
[12 de Novembro de 2017, 23:43]


Power_OK Enermax por edeweld
[12 de Novembro de 2017, 17:15]


Driver motor por beirao
[11 de Novembro de 2017, 17:40]


Preciso de uma fonte de corrente constante ? por samc
[09 de Novembro de 2017, 14:18]


Pressoestato 0-10V por artur36
[07 de Novembro de 2017, 23:22]


Ideias para construir um quadrúpede simples por Njay
[07 de Novembro de 2017, 18:39]

Autor Tópico: Blink Led controlado pela consola  (Lida 1056 vezes)

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

Offline oxytech

  • Mini Robot
  • *
  • Mensagens: 75
Blink Led controlado pela consola
« em: 25 de Dezembro de 2009, 18:05 »
boa tarde!

a bastante pouco tempo comprei um arduino e ao pesquisar um pouco sobre ele encontrei este excelente fórum  ;D

vou deixar aqui o meu primeiro código, que consiste em controlar o numero de vezes que um led pisca através da consola do programa.
Código: [Seleccione]
/*

 o-o            o           o   
o   o           |           |   
|   | \ / o  o -o- o-o  o-o O--o
o   o  o  |  |  |  |-' |    |  |
 o-o  / \ o--O  o  o-o  o-o o  o
             |                   
          o--o   
         
         
  baseado em:
  *http://arduino.cc/en/Tutorial/Blink
 
 */
 
 
#include <stdlib.h> //para a função atoi


int ledPin =  13;    // led logado ao pino 13
int i=0;
char incomingByte;


void setup()   //inicia o procedimento de configuração (apenas é corrido 1x no programa)
{               
  pinMode(ledPin, OUTPUT);  //pino digital 13 como pino de saida 
  Serial.begin(9600); //inicia comunicação com a consola, a 9600bps
  Serial.println("introduza o numero de vezes que o led pisca:"); //primeira mensagem escrita na consola
}


void loop() //inicia o programa, corre repetitivamente                   
{

  if (Serial.available() > 0) // se a consola estiver com algum caracter introduzido? (neste caso nem faz falta...?)
  {

    incomingByte = Serial.read();//lê o byte introduzido na consola

    // escrita das mensagens/variaveis...
    Serial.print("caracter introduzido:");
    Serial.println(incomingByte);
    Serial.print("o led ira piscar  ");
    Serial.print( atoi(&incomingByte), DEC);// função atoi transforma o caracter num inteiro(atenção ao "&"...)
    Serial.println("  vezes...");


    for (i==0;i< atoi(&incomingByte);i++)// o led pisca o numero de vezes que foi introduzido
    {
      Serial.println();// escreve uma linha em branco na consola
      Serial.println(i+1,DEC);//escreve o numero de vezes que o led piscou ate ao momento...
      digitalWrite(ledPin, HIGH);   // liga o led
      delay(500);                  // espera 0,5 segundos
      digitalWrite(ledPin, LOW);    // desliga o led
      delay(500);                  // espera 0,5s
    }
    i=0;// variavel de contagem do ciclo for reinicializada a 0 para o proximo ciclo
    Serial.println("introduza novo numero:");
  }

}

pode ser útil para alguém, especialmente para novatos como eu.

quando tiver mais um tempinho o próximo passo será permitir mais que 9 piscadelas do led, por enquanto tem essa limitação.

se encontrarem algum erro ou algo que poderia estar melhor feito agradeço que avisem.

cumprimentos







Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.235
    • Tiago Rodrigues
Re: Blink Led controlado pela consola
« Responder #1 em: 26 de Dezembro de 2009, 00:08 »
Não conhecia a função atoi da stdlib... costumo utilizar (incomingByte-'0') e fica o valor de 0 a 9 já que lhe subtraímos o caracter zero.

Força com os projectos ;)

Offline oxytech

  • Mini Robot
  • *
  • Mensagens: 75
Re: Blink Led controlado pela consola
« Responder #2 em: 26 de Dezembro de 2009, 11:17 »
Não conhecia a função atoi da stdlib... costumo utilizar (incomingByte-'0') e fica o valor de 0 a 9 já que lhe subtraímos o caracter zero.

Força com os projectos ;)

e eu nem me passou isso pela cabeça... em termos de processamento deve ser vem mais leve  ;D

cumps