collapse

* Posts Recentes

Making Linear Ball Way Cages por jm_araujo
[14 de Agosto de 2018, 23:03]


TV Antiga Desliga-se por almamater
[14 de Agosto de 2018, 12:34]


Tubo PVC 32mm Branco por SerraCabo
[10 de Agosto de 2018, 22:49]


Ajuda para contruir uma "máquina" de fisioterapia para a minha filha. por Hugu
[08 de Agosto de 2018, 00:47]


Comprar solda decente por jm_araujo
[07 de Agosto de 2018, 11:30]


Telescopio por kieferdl
[03 de Agosto de 2018, 10:10]


Com que equipamento costumam aceder ao LR? por KammutierSpule
[01 de Agosto de 2018, 10:14]


BostonDynamics - Vai uma mãozinha? por jm_araujo
[01 de Agosto de 2018, 08:29]


Baby's got blue eyes por jm_araujo
[30 de Julho de 2018, 22:55]


Queimei 1 Motor :) por SerraCabo
[30 de Julho de 2018, 22:32]

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