Pages: [1]   Go Down
Author Topic: ajuda com delay  (Read 835 times)
0 Members and 1 Guest are viewing this topic.
Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pessoal fiz este programa e esta funcionando até aqui

int ldrPin = 0;
int leituraldr = 0;
int farolPin = 9;
int setaePin = 11;
int setadPin = 12;
int homecomPin = 13;
int setae = 0;
int setad = 0;
long intervalo = 30000;
void setup() {

Serial.begin(9600);
pinMode(farolPin, OUTPUT);
pinMode(setaePin, INPUT);
pinMode(setadPin, INPUT);
pinMode(homecomPin, OUTPUT);
}
void loop(){
leituraldr = analogRead(ldrPin);
setae = digitalRead(setaePin);
setad = digitalRead(setadPin);

Serial.print(leituraldr);

long tempo = millis();

if (leituraldr < 500){
  digitalWrite(farolPin, HIGH);
} else
    digitalWrite(farolPin, LOW);

if (setae == HIGH & setad == HIGH) {
digitalWrite(homecomPin, HIGH);
 delay(30000)
}
else {
digitalWrite(homecomPin, LOW);
}

}

reparem onde tem um delay de 30s, eu gostaria que quando executasse aquele bloco if quando homecomPin estivesse em HIGH ele ficasse por 30s e depois apagasse, porém colocando o delay ali ele bloqueia o programa por 30s fazendo com que as outras açoes também fiquem bloqueadas e não é isso que quero,, como posso arrumar isto?

obrigado
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3262
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

existe um exemplo blink without delay...

Code:
#define TIMEOUT   30000

unsigned long on_time = 0;
unsigned char running = 0;

...

if (setae == HIGH & setad == HIGH) {
   digitalWrite(homecomPin, HIGH);
   on_time = millis();
   running = 1;
}

if (running == 1) {
   if (millis() - on_time >= TIMEOUT){ // passaram 30 segundos
      digitalWrite(homecomPin, LOW);
      running = 0;
   }
}

}

Nota que assim, só quando a condição inicial for negativa é que o programa começa a contar os 30 segundos.
Se quiseres que comece a contar logo desde que a condição passou a verdadeira, podes usar a flag running como uma detecção de flanco e evitar voltar a esse pedaço de código.

Queres explicar o que pretendes fazer com isto para podermos dar ideias melhores?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bubulindo funcionou perfeitamente deste modo, muito obrigado..

aproveitando o tópico, sabe me dizer se attiny85 tem porta analógica e quantas? pretendo ligar um ldr nele, sera que funciona?

obrigado
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3262
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se quiseres usar o pino de reset, 3 portas analögicas. Se não o quiseres usar, 4.

Vê auqi http://www.atmel.com/Images/doc2586.pdf
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bubulindo me da um help aqui,,,

fiz o programa usando o pino 1 (pb5) do attiny definindo ele como output, mas só de alimentar o attiny quando o led deveria estar apagado fica um brilho beemm fraquinho nele

o que pode ser?
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3262
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

O pino 1 é o reset... e se não mudaste o fuse RSTDISBL, esse pino só serve para a funcão de reset.

Se experimentares outro pino, certamente que funciona... desde que mantenhas o pino de Reset com 5V.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Como faço para alterar esse fuse? Preciso usar as 6 I/O do attiny
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3262
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Isso é feito no processo de gravação do chip.

como estás a passar o programa para lá? E já agora, convém ver como usar o chip sem o Reset... eu nunca o fiz, logo não sei quais as consequências.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Estou a usar o arduino como programmer isp
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3262
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

tenta ver como se usa um chip sem o reset... isso tem algumas implicações no processo de gravação. :\
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Pages: [1]   Go Up
Jump to: