Boa Noite pessoal, estou fazendo um projeto que em breve irei postar aqui no Lab. Mas estou com dificuldades na programação com Arduino, pois comprei recentemente.

Alguém consegue me dizer pq esta dando este erro:

Linha do erro:

while((millis) – (millisAtual < 20000)&& (valorSensorPIR ==0)&&(valorSensorLDR <=1)){

Descrição do erro: 

LDR___PIR_contru__o:57: error: stray '\' in program
LDR___PIR_contru__o:58: error: stray '\' in program
LDR___PIR_contru__o:64: error: stray '\' in program
LDR___PIR_contru__o:64: error: stray '\' in program
LDR___PIR_contru__o.ino: In function 'void verificaMovimentoEscuro()':
LDR___PIR_contru__o:57: error: expected `)' before 'u2013'
LDR___PIR_contru__o:57: error: 'u2013' was not declared in this scope
LDR___PIR_contru__o:57: error: expected `;' before ')' token
LDR___PIR_contru__o:66: error: expected `}' at end of input

Exibições: 1753

Responder esta

Respostas a este tópico

tenta assim

 while( millis – millisAtual < 20000 && valorSensorPIR == 0 && valorSensorLDR <=1 ){

se não funcionar coloque o código completo do projeto

Infelizmente não deu certo :( 

O codigo completo:

//Constate para leitura da diferenca
//de resistencia do LDR no pin0 analogic
const int PinoSensorLDR = A0;
//variavel para guardar o valor de leitura
int valorSensorLDR = 0;

//variavel que armazenará o valor do PIR (0 ou 1)
int valorSensorPIR = 0;

//Pino ao qual o PIR esta conectado
int pinoSensorPIR = 2;
//pino do Transistor ao qual o abajur esta ligado
int pinoAbajur = 4;
//contagem que correra quando estiver escuro
//para detecao de movimento
unsigned long startMilis = 0;

//inicializa a contagem
long millisAtual = millis();

void setup(){
//Configuracao dos pinos
pinMode(PinoSensorLDR, OUTPUT);
pinMode(pinoSensorPIR,INPUT);
pinMode(pinoAbajur, OUTPUT);

Serial.begin(9600);

}

void loop(){

//leitura do Sensor PIR, o sensor identificara apenas 0 ou 1
valorSensorPIR = digitalRead(pinoSensorPIR);

//Le o pino A0 analogico do LDR (iluminosidade)
valorSensorLDR = analogRead(PinoSensorLDR);

Serial.println(valorSensorLDR);

//Verificando se ha movimento e se o ambiente esta escuro
if ((valorSensorPIR == 1)&&(valorSensorLDR <=1)) {

//liga o pino do transistor(abajur)
digitalWrite(pinoAbajur, HIGH);

//Se o LDR marcar um valor menor que 1
//ele verifica com um contadorAuxiliar por movimento
//se não houver movimento a lampada apagara em 20 segundos
while(valorSensorLDR <=1){
//reinicia a contagem
millisAtual = millis();

//Le o pino 0 analogico do LDR (iluminosidade)
valorSensorLDR = analogRead(PinoSensorLDR);
delay(1000);

//Le o pino A0 analogico do LDR (iluminosidade)
valorSensorPIR = digitalRead(pinoSensorPIR);

//chama o metodo que faz a verificacao do Status
verificaMovimentoEscuro();

}

}else{
//se nenhuma das condicoes acima forem verdadeira
//apaga a lampada
digitalWrite(pinoAbajur, LOW);
}

delay(1000);

}

//metodo que verifica o status e movimento quando o ambiente estiver escuro
void verificaMovimentoEscuro(){

while((millis() – millisAtual < 20000)&& (valorSensorPIR ==0)&&(valorSensorLDR <=1))
{
if((millis() – millisAtual < 20000)&&(valorSensorLDR <=1)){

digitalWrite(pinoAbajur, HIGH);
}else{

digitalWrite(pinoAbajur, LOW);
}
}

Serial.print(“Valor do PIR : “);
Serial.println(valorSensorPIR);
}

Tenta Agora

//Constate para leitura da diferenca
//de resistencia do LDR no pin0 analogic
int PinoSensorLDR = A0;
//variavel para guardar o valor de leitura
int valorSensorLDR = 0;

//variavel que armazenará o valor do PIR (0 ou 1)
int valorSensorPIR = 0;

//Pino ao qual o PIR esta conectado
int pinoSensorPIR = 2;
//pino do Transistor ao qual o abajur esta ligado
int pinoAbajur = 4;
//contagem que correra quando estiver escuro
//para detecao de movimento
unsigned long startMilis = 0;

//inicializa a contagem
unsigned long millisAtual = millis();

void setup(){
//Configuracao dos pinos
pinMode(PinoSensorLDR, OUTPUT);
pinMode(pinoSensorPIR,INPUT);
pinMode(pinoAbajur, OUTPUT);

Serial.begin(9600);

}

void loop(){

//leitura do Sensor PIR, o sensor identificara apenas 0 ou 1
valorSensorPIR = digitalRead(pinoSensorPIR);

//Le o pino A0 analogico do LDR (iluminosidade)
valorSensorLDR = analogRead(PinoSensorLDR);

Serial.println(valorSensorLDR);

//Verificando se ha movimento e se o ambiente esta escuro
if ((valorSensorPIR == 1)&&(valorSensorLDR <=1)) {

//liga o pino do transistor(abajur)
digitalWrite(pinoAbajur, HIGH);

//Se o LDR marcar um valor menor que 1
//ele verifica com um contadorAuxiliar por movimento
//se não houver movimento a lampada apagara em 20 segundos
while(valorSensorLDR <=1){
//reinicia a contagem
millisAtual = millis();

//Le o pino 0 analogico do LDR (iluminosidade)
valorSensorLDR = analogRead(PinoSensorLDR);
delay(1000);

//Le o pino A0 analogico do LDR (iluminosidade)
valorSensorPIR = digitalRead(pinoSensorPIR);

//chama o metodo que faz a verificacao do Status
verificaMovimentoEscuro();

}

}else{
//se nenhuma das condicoes acima forem verdadeira
//apaga a lampada
digitalWrite(pinoAbajur, LOW);
}

delay(1000);

}

//metodo que verifica o status e movimento quando o ambiente estiver escuro
void verificaMovimentoEscuro(){

while(millis() - millisAtual < 20000 && valorSensorPIR == 0 && valorSensorLDR <= 1)
{

if(millis() - millisAtual < 20000 && valorSensorLDR <= 1){

digitalWrite(pinoAbajur, HIGH);
}else{

digitalWrite(pinoAbajur, LOW);
}
}

Serial.print("Valor do PIR : ");
Serial.println(valorSensorPIR);
}

A programação deu certo, porém o circuito não funcionou! :( testei 3 vezes para ter certeza...

Faz uma descrição d projeto

Basicamente quero acender um LED quando o PIR (sensor de movimento), detectar o movimento, mas isto só pode acontecer se o ambiente estiver escuro, por isto utilizei o LDR. 

tenta agoora

int PinoSensorLDR = A0;

int valorSensorLDR = 0;
int valorSensorPIR = 0;
int pinoSensorPIR = 2;
int pinoAbajur = 4;
unsigned long startMilis = 0;
unsigned long millisAtual = millis();
void setup(){
pinMode(pinoSensorPIR,INPUT_PULLUP);
pinMode(pinoAbajur, OUTPUT);
Serial.begin(9600);
}

void loop(){
valorSensorPIR = digitalRead(pinoSensorPIR);
valorSensorLDR = analogRead(PinoSensorLDR);
Serial.println(valorSensorLDR);
Serial.print("Valor do PIR : ");
Serial.println(valorSensorPIR);

if(valorSensorLDR < 200){

if (valorSensorPIR == LOW){millisAtual = millis();}
if (millis() - millisAtual < 20000) {digitalWrite(pinoAbajur, HIGH);}
else{digitalWrite(pinoAbajur, LOW);}
}

else{digitalWrite(pinoAbajur, LOW);}

delay(1000);

}

_______________________________

se não funcionar me informe qual é o sensor de presença 

Deu super certo!!!! Não sei nem como te agradecer :D Muitooo obrigada por tudo, você foi um lindo :) 

Logo eu irei postar um vídeo do projeto completo!!! Quando eu postar te aviso e irei colocar um agradecimento especial! 

Se eu entendi o problema é que vc esta misturando numeros e condiçoes (boolean).

while((millis) – (millisAtual < 20000)&& (valorSensorPIR ==0)&&(valorSensorLDR <=1)){

           Numero- (boolean)             

Nao seria:

while ( ((millis() – millisAtual) < 20000) && (valorSensorPIR ==0) && (valorSensorLDR <=1)){

Tb a mills() para ser chamada precisa do "()"

Fiz as substituições como você descreveu, mas deu erro também :(

Para entender onde esta o erro :

//Le o pino A0 analogico do LDR (iluminosidade)
valorSensorLDR = analogRead(PinoSensorLDR);

Serial.println(valorSensorLDR);

Qual o valor é impresso quando esta claro?

Serial.print(“Valor do PIR : “);
Serial.println(valorSensorPIR);

O sensor PIR esta variando entre 0 e 1 ?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço