Ribeirão Preto - SP
Offline
Jr. Member
Karma: 0
Posts: 61
|
 |
« on: January 09, 2013, 06:29:02 am » |
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
Edison Member
Karma: 20
Posts: 2308
|
 |
« Reply #1 on: January 09, 2013, 06:36:56 am » |
existe um exemplo blink without delay... #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
Jr. Member
Karma: 0
Posts: 61
|
 |
« Reply #2 on: January 09, 2013, 09:35:57 pm » |
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
Edison Member
Karma: 20
Posts: 2308
|
 |
« Reply #3 on: January 10, 2013, 02:25:24 am » |
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
Jr. Member
Karma: 0
Posts: 61
|
 |
« Reply #4 on: January 13, 2013, 09:46:36 pm » |
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
Edison Member
Karma: 20
Posts: 2308
|
 |
« Reply #5 on: January 13, 2013, 11:22:45 pm » |
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
Jr. Member
Karma: 0
Posts: 61
|
 |
« Reply #6 on: January 14, 2013, 08:02:42 am » |
Como faço para alterar esse fuse? Preciso usar as 6 I/O do attiny
|
|
|
|
|
Logged
|
|
|
|
|
'round the world...
Offline
Edison Member
Karma: 20
Posts: 2308
|
 |
« Reply #7 on: January 14, 2013, 08:12:53 am » |
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
Jr. Member
Karma: 0
Posts: 61
|
 |
« Reply #8 on: January 14, 2013, 10:23:02 am » |
Estou a usar o arduino como programmer isp
|
|
|
|
|
Logged
|
|
|
|
|
'round the world...
Offline
Edison Member
Karma: 20
Posts: 2308
|
 |
« Reply #9 on: January 14, 2013, 03:47:57 pm » |
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).
|
|
|
|
|