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
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.
Tags:
As respostas para este tópico estão encerradas.
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por