LusoRobótica - Robótica em Português
Robótica => Iniciantes => Tópico iniciado por: Raul 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
-
claro que podes, como deves saber, a função setup() é executada uma vez, antes da função loop()
-
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().
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
}
-
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
-
nop
-
Obrigado XD
Cumprimentos
-
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 )
-
Sim eu também percebo de programação XD
Cumprimentos