criei o código em anexo...

era suposto ler o pino 1 (sensor) e se ligado, activar o pino 12 (relê), esperar 1 segundo e activar o pino 11 (relê), esperar 2 segundo e desactivar o pino 11 (relê)

o problema é assim que passo pra placa, o pino 11 fica a activar e desactivar automaticamente e sozinho... o que fiz de mal?

pikup4.ino

o programa que tenho de fazer é...

se o pino 0 estiver ligado então activa o pino 10 senão desactiva o pino 10...
se o pino 1 estiver ligado então activa o pino 12, espera 1 segundo e activa o pino 11, espera 2 segundos e desactiva o pino 11, espera 1 segundo e desactiva o pino 10, espera 2 segundos e activa o pino 13, espera 2 segundos e desactiva o pino 13.

se o pino 0 estiver ligado, dá sinais de 15 em 15 segundos ao pino 13
se o pino 0 desligar, espera 1 segundo e desliga o pino 13.

e recomeça de novo...

se o pino 1 ligar antes do pino 0, desliga o pino 12 e fica a espera que o pino 0 ligue para fazer todo o processo.


sei que é complexo mas tenho certeza que alguém saiba fazer ou ajudar a fazer

pago se for necessário mas preciso disto :)

Exibições: 687

Responder esta

Respostas a este tópico

Bom dia MAMSM,

o millis() usa o tempo em milissegundos.

vejamos o uso de delay no seu projeto:

                                                             Tempo total

    1o delay   1 seg(1000 mseg)           1 seg  (1000 mseg)

    2o. delay  2 seg(2000 mseg)           3 seg (3000 mseg)

    3o. delay  2 seg(2000 mseg)           5 seg (5000 mseg)

     ...

.    ...

   no seu projeto para usar o mullis() eu usei a soma dos tempos.

RV

ou seja, se por exemplo o segundo delay que está com 2000 mseg, se quiser alterar para 3000 mseg... no projecto é só alterar para 4000 mseg... se altera para 4000 mseg, tenho de colocar 5000 mseg ... ... ... certo?

e no tempo 4, o que significa " if (millis() - tempo4 >= 6000 and millis() - tempo4 < 8000) " visto que a soma apenas dá os 6000 mseg?

1a questão certo.

2a, questão é o tempo entre 4 e 8 seg.,  senão qdo estiver acima de 8 seg. fica sempre fazendo esta também.

RV

que dizer que se eu alterar o tempo 5 por exemplo de 8000 mseg para 9000 mseg, também tenho de alterar para " if (millis() - tempo4 >= 6000 and millis() - tempo4 < 9000) " ?

Correto

Peço desculpa pelas perguntas :)

Boa tarde MASM,

para perguntas inteligentes as respostas são gratuitas.

RV

:)

só uma questão mas não de código... este programa vai estar a trabalhar cerca de 8 horas por dia, quase o ano todos... acha que esta placa aguenta ou tens algum outro conselho? :)

Se for bem montada, não vejo porque não aguentar.

RV

Temos um problema :(

Tive a testar e quando ligo, o pino 10...11... 12 está sempre ligado, ou seja, os sensores nunca desligam... o pino 13 nunca activa :(
Temos um problema :(

Tive a testar e quando ligo, o pino 10...11... 12 está sempre ligado, ou seja, os sensores nunca desligam... o pino 13 nunca activa :(

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço