collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

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