Boa noite pessoal, eu estou desenvolvendo um projeto onde eu vou usar um sensor LDR para mensurar a quantidade de horas de isolação real, ou sejam, media a quantidade de horas que o sol não permaneceu escondido por nuvens, gerando assim o máximo de radiação. O problema é que preciso de uma função millis () associada a uma função if ().
Essa associação seria do tipo:
If( lux < 800) {
tempo = 0
}
else }
contador
}
O problema é o contador, não consigo elaborar. Alguém poderia me ajuda?
Tags:
Bom dia RV, muito obrigado, ajudou bastante.
O contador é simples e eficiente, só preciso agora adequar o intervalo dele, coisa que ainda é um problema, pois tenho que fazer ele contar as horas com sol, excluindo os momentos que o mesmo permanece encoberto pelas nuvens.
Bom dia, JFS, o loop mais enxuto pode ser assim
Boa tarde, a função Millis () funciona bem com Delay ()?
Sim. Não conflitam.
millis() é para retornar o tempo passado desde o início da execução do programa: https://www.arduino.cc/en/Reference/Millis
delay() é para parar o programa por um tempo: https://www.arduino.cc/en/Reference/Delay
eu tenho de montar o sistema de modo que a cada 1 minuto ele print no Monitor Serial os Lux medidos e o tempo acumulado, mas somente a cada 1 minutos
Pra enviar o tempo em "sol" acumulado a cada 1 minuto, pode fazer como em https://pastebin.com/qjdTT6xa
Pra enviar os Lux medidos, fica um pouco mais complicado porque tem que salvar os valores em um array. Talvez dê pra eu postar essa versão com Lux medidos mais tarde.
A versão pra imprimir os Luxs medidos fica como em https://create.arduino.cc/editor/vitorafsr/cbcc380d-33b2-4460-8dd1-...
Nessa versão, coloquei que o tempo entre medidas de Lux é 1 segundo, para diminuir a quantidade de medidas. Se fizesse a cada 100ms, seriam 600 medidas (no máximo), e ficaria complicado analisar no print serial.
Não consigo acessar, aparece apenas erro ao entrar... :/
Em sua função "sol", seria possível convertê-la para horas apenas pela divisão dela por um valor?
Entendi que esse post foi sobre a função loop() que postei em https://pastebin.com/PA7874kP
O valor da variável "sol" acumula tempo em milisegundos. Se quiser enviar em horas, é só dividir por 60*60*1000=3600000 antes de enviar.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por