collapse

* Links de Robótica

* Posts Recentes

Compras no allPCB por Dave
[Hoje às 14:41]


Organizar fios por josecarlos
[Hoje às 14:31]


Pendentes de compras colectivas por Hugu
[Hoje às 00:51]


Preços e fabricantes de pcb por vasco
[Ontem às 23:18]


Palavras Cruzadas por LVirtual
[Ontem às 20:54]


[Projecto] Bomba Airsoft por jm_araujo
[Ontem às 19:01]


Apresentação por Tech_JA
[23 de Setembro de 2017, 09:19]


Medir Agua que está no Poço por filjoa
[21 de Setembro de 2017, 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]

Autor Tópico: Blink Led controlado pela consola  (Lida 1019 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.234
    • 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