collapse

* Posts Recentes

Placa BMS Desliga por almamater
[Hoje às 11:16]


Vende-se MUITO e BOM material por m90mine
[13 de Novembro de 2018, 23:32]


LusoRobótica - Website - Estado actual por TigPT
[11 de Novembro de 2018, 16:08]


Circuito para distinguir fase do neutro por TigPT
[10 de Novembro de 2018, 15:50]


leitura de voltagens com o analogRead(A0) por vasco
[08 de Novembro de 2018, 13:59]


Controlar Velocidade Motor AC por senso
[06 de Novembro de 2018, 23:05]


Placa misteriosa por edeweld
[04 de Novembro de 2018, 16:41]


Gearbox por josecarlos
[04 de Novembro de 2018, 11:36]


Referencias de standards tubagens industriais por KammutierSpule
[29 de Outubro de 2018, 23:23]


Maneira correta de ler o ADC do Arduino ? por Njay
[28 de Outubro de 2018, 01:44]

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

0 Membros e 1 Visitante 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.338
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