Go Down

Topic: BH1750 + nRF24L01 + Ds1307 + rgb simular dia e noite real (Read 5 times) previous topic - next topic

bubulindo

A ideia não é maluca...

Tem o problema que eu referi do hardware não ser fácil de montar (e ainda não disseste nada sobre isso) e ser um código algo complexo de fazer (mas não é impossível de todo).

Para programar um problema grande tens de decompor esse problema em pequenos problemas. Na minha perspectiva, o primeiro problema a resolver é o do controlo da luminosidade.
Então tens de medir a luminosidade e arranjar uma maneira de a controlar com o LED de forma a ficar constante (suponho que queiras que seja constante).

Estou a supôr, claro, que todo o hardware está montado e a funcionar, então se ainda não fizeste isso, é por aí que começas. Liga o sensor de luminosidade e testa as leituras. Depois o RTC e vê o funcionamento, e depois liga uns quantos LEDs às saídas PWM, ou a um chip de PWM como o TL5940 que tem um PWM de 16 bits (melhor para o que pretendes comparativamente ao PWM do Arduino que é só de 8).

Agora que é que já fizeste em termos de programação no Arduino?
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

bubulindo

Acho que estás a pegar o boi pelos cornos... eu fiz-te uma pergunta directa e respondeste com algo que não tem nada a ver.



Tem o problema que eu referi do hardware não ser fácil de montar (e ainda não disseste nada sobre isso) e ser um código algo complexo de fazer (mas não é impossível de todo).
...
Agora que é que já fizeste em termos de programação no Arduino?


Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

bubulindo

Se tens aqui a thread, coloca aqui as tuas questões. Enviar mensagens pessoais tem o efeito contrário ao pretendido... e aconselho-te a ler a minha assinatura. ;)

Durante imenso tempo perguntei para que era esta aplicacão e como pretendias fazer a simulacão da cor numa escala humana (tipo no quarto...) e só agora percebi que queres meter isto num aquário. LOL

Converter o teu código de basic para ser usado no Arduino deve ser relativamente simples. A principal diferenca está na sintaxe do código que tens de alterar. Acho que podes fazer a maior parte disso, funcão a funcão e ir testando e se tiveres problemas colocar no fórum. Tens de replicar o teu hardware com o Arduino primeiro para poderes testar o código. O LCD é simples de ligar e programar e o resto suponho que sejam sensores digitais, que também são simples com as bibliotecas correctas.

Quando tiveres este software passado para C para ser usado no Arduino e já testado, torna-se mais fácil de escrever a funcão que pretendes.

Eu assim por alto acho que uma maneira "bonita" de fazer seria usando o valor de segundos no dia para calcular a luminosidade.

Portanto, um dia tem 86400 segundos.

Se quiseres comecar a luminosidade às 7 horas da manhã (25200 segundos) e chegar ao máximo da luminosidade às 9 horas (32400), podes fazer uma equacão como esta que te dá um aumento linear de luz de 0 a 255 entre as 7 da manhã e as 9.

PWM = ((agora - 25200)*255)/7200

Onde 7200 é a diferenca entre as 7 e as 9 da manhã em segundos. 255 é o valor máximo do PWM que podes enviar e "agora" é o valor lido do teu RTC.

Depois tinhas apenas de verificar os limites do valor calculado com algo como:

if (PWM < 0 ) PWM = 0; //verificar que não passa a negativo.
if (PWM > 255) PWM = 255; //verificar que não passa do máximo para o PWM.

Certamente que depois seria possível de adicionar um parâmetro para calcular o anoitecer da mesma maneira que fiz aqui.

Eu assumi que a luz é linear, mas pela minha experiência a ver o pôr do sol a luminosidade não aumenta de forma linear, mas sim de forma exponencial. Para isso teríamos de adicionar um termo exponencial em vez da fracão (255/7200).

Depois, como disseste que tens uma biblioteca que te calcula a que horas o dia comeca e provavelmente quanto tempo demora a ter luminosidade máxima, podes usar essa biblioteca para calcular os valores que na minha equacão defini como 7 da manhã e duas horas para amanhecer completamente.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

bubulindo

É escusado meter o Caps.
A mensagem que mandaste era um bocado de código do teu controlador de aquário que assumi ser onde querias adicionar o controlo da luminosidade para simular o dia.

Repara que dizes que era para te conhecer melhor e nem sequer sei como te chamas. Sei que estás ligado à engenharia civil e fazes cenas com PICs. Também não diria que responder a questões num fórum seja interaccão pessoal. E depois colocas lá um pedido de ajuda e é isso que eu não faco por Mensagens pessoais senão este fórum estaria vazio. Além do mais estás a assumir que a minha disponibilidade em responder-te no fórum indica conhecimento, quando na realidade não é assim e há mais gente no fórum que sabe do que fala. Provavelmente mais até do que eu.

Percebes onde quero chegar? Eu não quero estar aqui para resolver problemas... o interesse do fórum é a troca de ideias e perspectivas. Eu posso achar que uma solucão é a melhor e haver alguém com uma visão completamente oposta e igualmente acertada. E é isso que eu quero... ver outras opiniões para as questões colocadas. É isso que eu espero em troca de dar ajuda no fórum. E não tiro nada se responder a questões via mensagem pessoal.

Daí recusar discutir coisas técnicas por mensagem pessoal, pois prefiro que seja em público para mais gente participar.

Dito isto, não fiques ofendido se fui curto e grosso na resposta à tua mensagem, não era o pretendido, mas se quiseres falar de algo técnico, mete no fórum e eu responderei com o maior prazer.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

bubulindo

Hey... não estou zangado. Apenas não gosto de receber mensagens pessoais com dúvidas que deveriam estar aqui no fórum.

Chegaste a entender o raciocínio que coloquei acerca duma funcão para a luminosidade após o envio da mensagem? Se estivesse zangado para que me daria ao trabalho?
A internet não é um bom meio para passar entoacão e acredito que possas ter tomado de forma errada as palavras que disse. Quanto a isso desculpa, não pretendia ofender, apenas explicar porque não gosto de receber mensagens pessoais... talvez tu nunca tenhas passado por isso, mas a mim elas estão sempre a cair a pedir ajuda directamente a mim sem, na maior parte das vezes, passar pelo fórum. Não que tenha sido isso que fizeste, mas não crio excepcão no que toca a isso das mensagens.

Revê a explicacão que dei acerca da luminosidade em funcão da hora e vê se há algo que não compreendes.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Go Up