estou trabalhando em um projeto onde quando estiver chovendo uma cobertura é ativada protegendo o jardim de inverno da chuva, a parte mecânica já está pronta, pra descer a cobertura vou usar um motor de portão automático junto com o controle, então o Arduíno só vai curto-circuitar o botão pra ativar o portão automático

já tenho o sensor em mãos:

eu obtenho a leitura analógica dele com o examples>basics>analogReadserial, é bem simples a leitura varia de 0 à 1023 (sem água o valor é maior que 900 / com água leitura  é menor que 300)

o que eu quero fazer:

o Arduíno tem que ler o valor do sensor a cada 2 segundos, se o valor for maior que 900 não acontece nada. aí se o valor for menor que 300 ele dá um pulso em alguma saída digital aí se o valor aumentar de novo pra maior que 900 ele dá outro pulso

será que alguem poderia me ajudar com esse projeto? 

grato.

 

Exibições: 855

As respostas para este tópico estão encerradas.

Respostas a este tópico

Dentro do loop do arduino só colocar uma verificação de tempo. A cada 2 segundos, ou a cada 10 ms... É como ligar qualquer outro tipo de sensor (LDR, IR,...).

Ajudar como?

ajudar com o código, na hora que bater água no sensor (valor < 300) ele dá um pulso enquanto houver água em cima dele, aí quando a água escorrer (valor > 900) ele dá outro pulso 

preciso de uma referencia, usei os comandos if e else mais não consegui

Algo assim:

void setup()

{

  pinMode(10,OUTPUT); // saida digital

}

void loop()

{

   int umidade=analogRead(0); // supondo sensor na porta 0

   if (umidade < 300)

   {

      digitalWrite(10,HIGH);

      delay(100);  // supondo um pulso de 100 milisecs

      digitalWrite(10,LOW);  

}

   else if (umidade > 900)

   {

      digitalWrite(10,HIGH);

      delay(100);

      digitalWrite(10,LOW);  

}

delay(2000);

}

infelizmente não funcionou, estou tentando de tudo quanto é jeito aqui e nada

 com o seu código o led fica piscando direto, mais tá no rumo

Vc conseguiu monitorar o valor do sensor?

consegui sim, o led pisca toda vez que é lido o valor do sensor,

vê se você consegue criar o código usando um potenciometro, inicialmente o potenciometro deve estar no máximo. o arduino não deve fazer nada, só quando você abaixar o valor do potenciometro pro mínimo ele deve dar um pulso, e quando você aumentar o valor pro máximo aí ele deve dar outro pulso. 

me desculpe se não ficou muito claro 

Acho que agora vai, entendi o que vc queria:

void setup()
{
pinMode(10,OUTPUT); // saida digital
}

int estado = 0;

void loop()
{
int umidade=analogRead(0); // supondo sensor na porta 0
if ((umidade < 300) && (estado == 0))
{
digitalWrite(10,HIGH);
delay(100); // supondo um pulso de 100 milisecs
digitalWrite(10,LOW);
estado=1;
}
else if ((umidade > 900) && (estado == 1))
{
digitalWrite(10,HIGH);
delay(100);
digitalWrite(10,LOW);
estado=0;
}
delay(2000);
}

funcionou perfeitamente! muito obrigado Mauro Assis

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço