collapse

* Links de Robótica

* Posts Recentes

Palavras Cruzadas por brunus
[Hoje às 01:13]


[Projecto] Bomba Airsoft por jm_araujo
[23 de Setembro de 2017, 16:54]


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]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


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


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]

Autor Tópico: Duvida Programação  (Lida 1302 vezes)

0 Membros e 2 Visitantes estão a ver este tópico.

Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Duvida Programação
« em: 03 de Fevereiro de 2010, 00:10 »
Uma pergunta que pode ser estúpida.
Podemos fazer  um programa e ele correr sem usar-mos o  void loop, por exemplo que mexer num motor para ele fazer um movimento só uma vez, para fazer experiências.
Não tenho vagar para ir experimentar.

Cumprimentos

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re: Duvida Programação
« Responder #1 em: 03 de Fevereiro de 2010, 08:34 »
claro que podes, como deves saber, a função setup() é executada uma vez, antes da função loop()
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Duvida Programação
« Responder #2 em: 03 de Fevereiro de 2010, 12:06 »
Como o tcustodio disse, podes meter o código no setup(), que só corre uma vez.
No entanto vou pôr aqui uma solução um pouco mais elaborada, mas que é capaz de dar jeito.

O código que vou pôr aqui é para executar o blink só uma vez, usando o loop().

Citar
int ledPin = 13;
boolean firstRun = true;

void setup()   {
  pinMode(ledPin, OUTPUT);     
}

void loop()                     
{
  if(firstRun){
    digitalWrite(ledPin, HIGH);
    delay(1000);
    digitalWrite(ledPin, LOW);
    delay(1000);
    firstRun = false;
  }
  
  // Aqui podes por outro codigo, que vai estar sempre a correr
  // Se, pelo meio do código precisares de correr aquilo que está em cima
  // (neste caso, o blink), basta meteres firstRun=true; e no próximo ciclo,
  // o código é executado
}


Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Re: Duvida Programação
« Responder #3 em: 03 de Fevereiro de 2010, 22:16 »
Sim isso são duas maneiras de fazer, mas estava a dizer a seguir ao setup sem loop?
Se era possível assim?


int ledPin = 13;


void setup()   {
  pinMode(ledPin, OUTPUT);     
}

 digitalWrite(ledPin, HIGH);
    delay(1000);
    digitalWrite(ledPin, LOW);
    delay(1000);



Cumprimentos

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.300
Re: Duvida Programação
« Responder #4 em: 03 de Fevereiro de 2010, 22:22 »
nop

Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Re: Duvida Programação
« Responder #5 em: 03 de Fevereiro de 2010, 22:42 »
Obrigado XD

Cumprimentos

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Duvida Programação
« Responder #6 em: 04 de Fevereiro de 2010, 00:03 »
Sim isso são duas maneiras de fazer, mas estava a dizer a seguir ao setup sem loop?
Se era possível assim?


int ledPin = 13;


void setup()   {
  pinMode(ledPin, OUTPUT);     
}

 digitalWrite(ledPin, HIGH);
    delay(1000);
    digitalWrite(ledPin, LOW);
    delay(1000);



Cumprimentos

A resposta é não, como o ricardo-reis disse...

A explicação é que só podes invocar funções dentro do setup() ou do loop()... De resto, fora disso, podes fazer apenas declarações: declarar funções, declarar variáveis (globais). Mas não podes invocar essas funções.

( Isto partido do pressuposto de que entendes que o digitalWrite() é uma função )

Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Re: Duvida Programação
« Responder #7 em: 04 de Fevereiro de 2010, 00:10 »
Sim eu também percebo de programação XD

Cumprimentos