AJUDA URGENTE!

boas

Eu criei o código…

void setup()
{
pinMode(0, INPUT);
pinMode(10, OUTPUT);
pinMode(1, INPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
}

void loop()
{
if (digitalRead(0) == HIGH) {
digitalWrite(10, HIGH);
} else {
digitalWrite(10, LOW);
}
if (digitalRead(1) == HIGH) {
digitalWrite(12, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(11, HIGH);
delay(2000); // Wait for 2000 millisecond(s)
digitalWrite(11, LOW);
} else {
digitalWrite(12, LOW);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(11, LOW);
}
}

o meu objectivo é que, quando o pino 1 está ligado (sensor), active o pino 12 (relê), espere 1 segundo, active o pino 11 (relê), espere 2 segundos e desactive o pino 11 (relê), mas com este código, o pino 11 (relê) está a activar e desactivar sozinho.

Por favor me ajudem! :slight_smile:

if (digitalRead(0) == HIGH) {
digitalWrite(10, HIGH);
} else {
digitalWrite(10, LOW);
}

aka digitalWrite(10, digitalRead(0));

Of course, pin zero has another use...

TheMemberFormerlyKnownAsAWOL:

if (digitalRead(0) == HIGH) {

digitalWrite(10, HIGH);
} else {
digitalWrite(10, LOW);
}




aka `digitalWrite(10, digitalRead(0));`

Of course, pin zero has another use...

sim, com o pino 0 está a fazer o que eu quero :slight_smile:

o problema é no pino 1, ele devia activar o pino 12 (relê), espere 1 segundo, active o pino 11 (relê)... até ai faz bem :slight_smile: mas quando ponho o delay de 2000 e tem que desactivar o o pino 11 novamente, ela activa e desactiva sozinho...

void setup()
{
pinMode(1, INPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
}

void loop()
{
if (digitalRead(1) == HIGH) {
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(11, HIGH);
delay(2000);
digitalWrite(11, LOW);
} else {
digitalWrite(12, LOW);
delay(1000);
digitalWrite(11, LOW);
}
}

Os pinos 0 e 1 são usados pela porta série. Não ligues nada neles.

bubulindo:
Os pinos 0 e 1 são usados pela porta série. Não ligues nada neles.

eu coloquei o pino 0 e 1 para sensores (INPUT)

não posso então?

e na questão de o pino 11 ficar a trabalhar sozinho, alguma ideia?

Um breve resumo...

o programa que estou a tentar fazer é...

se o pino 0 estiver ligado então activa o pino 10 senão desactiva o pino 10...
se o pino 1 estiver ligado então activa o pino 12, espera 1 segundo e activa o pino 11, espera 2 segundos e desactiva o pino 11, espera 1 segundo e desactiva o pino 10, espera 2 segundos e activa o pino 13, espera 2 segundos e desactiva o pino 13.

se o pino 0 estiver ligado, dá sinais de 15 em 15 segundos ao pino 13
se o pino 0 desligar, espera 1 segundo e desliga o pino 13.

e recomeça de novo...

se o pino 1 ligar antes do pino 0, desliga o pino 12 e fica a espera que o pino 0 ligue para fazer todo o processo.

sei que é complexo mas tenho certeza que alguém saiba fazer ou ajudar a fazer

pago se for necessário mas preciso disto :slight_smile:

Existem bastantes pinos num arduino... porque não usar o 2, 3, 4, 5, 6, 7 ou 8??

Vê o exemplo blink without delay e pesquisa um pouco sobre máquinas de estado ou Finite State Machines.