Pages: 1 [2]   Go Down
Author Topic: Testes ao PIR SE-10 com resultados preocupantes  (Read 2046 times)
0 Members and 1 Guest are viewing this topic.
'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3257
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

além do mais, Serial.print()'s e delay()'s também bloqueiam o programa

Bloqueavam, agora só o delay é que bloqueia o programa... daí ter sugerido não usar o pulseIn, já que o pulseIn faz o mesmo que o delay().

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).

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

Lembrei-me de ver os tutoriais do Nick Gammon (com o mesmo nick aqui no fórum) e ele tem um exemplo para usar um timer como contador de eventos. smiley

NEste link:

http://gammon.com.au/forum/?id=11504

O primeiro exemplo que aparece conta o número de pulsos no pino T1, ou seja D5 no arduino. Experimenta e vê os resultados.

P.S.: O código completo cria um contador de eventos e de frequência, no entanto no teu caso podes limpar o código de tudo o que tenha a ver com o Timer2.
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).

Offline Offline
Newbie
*
Karma: 0
Posts: 40
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bem esta ajuda talvez seja demasiada avançada para o meu projeto. Penso não ser necessário incluir este código.
Estou um pouco confuso com tanta informação  smiley-confuse daí talvez seja melhor dizer de novo o que estou procurando.
O sistema PIR deve detetar quando uma pessoa está num dado espaço. Como o objetivo é relacionar a presença de pessoas com o consumo, e enviar os dados para processing, vai-se assumir que essa pessoa permanece na sala um x tempo até o sensor fazer nova deteção.
Isto acontece pois é dificil construir um sistema com estes sensores que detete de forma eficaz a entrada e a saída de pessoas. Eu vi algo do género neste projeto http://r00li.com/rolihome mas como se vê pelas images não seria muito fácil adaptar o sistema.

O Arduino é mesmo um mundo bem grande  smiley-lol

Muito obrigado pela ajuda Bubu
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 40
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Aqui fica o código de principiante que estou a utilizar neste momento smiley
Esqueci-me de referir que estou a usar dois sensores PIR e além destes cou acrescentar um de ultra-sons...

Code:
int PIR1 = 2;
int PIR2 = 3;
int LED1 = 4;
int LED2 = 5;
int val1 = 0;
int val2 = 0;
int count1 = 0;
int count2 = 0;
int calibrationTime = 20;

void setup (){
  Serial.begin(9600);
  pinMode(PIR1,INPUT);
  pinMode(PIR2,INPUT);
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
 
  //give the sensor some time to calibrate
  Serial.println("Sensor Calibration in Progress");
  Serial.println("------------------------------");
  for(int i = 0; i < calibrationTime; i++){
    Serial.print(".");
    digitalWrite(LED1, HIGH);
    delay(250);
    digitalWrite(LED2, HIGH);
    delay(250);
    digitalWrite(LED1, LOW);
    delay(250);
    digitalWrite(LED2, LOW);
    delay(250);
  }

  Serial.println("");
  Serial.println("Sensor Calibration Completed");
  Serial.println("Sensor Reading Active");
  delay(100);
}

void loop(){
  int val1 = digitalRead(PIR1);
  int val2 = digitalRead(PIR2);

  if((val1 == LOW) )
    count1=1;
    Serial.print(val1);
    Serial.print(',');
 
  if((val2 == LOW) )
    count2=2;
    Serial.println(val2);
   
  if(count1>0){
    count1++;
    digitalWrite(LED1,HIGH);
  }   
 
  if(count2>0){
    count2++;
    digitalWrite(LED2,HIGH);
  }   
     
  if(count1 == 500){
    digitalWrite(LED1,LOW);
    Serial.print(val1);
    Serial.print(',');
    count1=0;
   
  }
 
  if(count2 == 500){
    digitalWrite(LED2,LOW);
    Serial.println(val2);
    count2=0;
   
  }
}
Logged

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

Isto acontece pois é dificil construir um sistema com estes sensores que detete de forma eficaz a entrada e a saída de pessoas.

O melhor que vi para isto até hoje foi um sensor de barreira. :\ Aí o pulso é indicativo de alguém a tapá-lo, enquanto que com estes PIR (a não ser que alteres a cúpula por cima deles) a gama de detecção é algo elevada demais para o que pretendes e durante o segundo que ele indicou movimento, pode haver muito mais gente a entrar e sair. Claro que alguém pode parar a conversar na porta e mais pessoas entrarem sem contagem... mas isso são pormenores. smiley-razz
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 [2]   Go Up
Jump to: