Sim... se quiseres podes meter o segundo, eu não me dei ao trabalho porque vi que não o usavas.
Quando à alternancia, eu reparei que o Arduino tem algum significado para now. Também reparei que meti as variáveis como locais.
Este sketch funciona para alternar de 10 em 10 segundos.
#define TIMEOUT 10000
void setup(){
Serial.begin(19200);
}
unsigned long t_now = 0, before = 0;
unsigned char data = 0;
void loop(){
if((t_now = millis())-before > TIMEOUT) {
if (data == 0) {
Serial.print("COISAS");
data = 1;
} else {
Serial.print("OUTRAS COISAS");
data = 0;
}
before = t_now;
}
}
bubulindo agora funcionou, ta ficando muito legal, muito obrigado....
Só tem um problema o lcd fica os 10 primeiros segundos em branco....
ainda não coloquei esse script no meu, criei um a parte exatamente com as coisas que tu me passou, então notei que vai ter um conflito
Serial.begin(19200);
substitui pelo meu 9600?
aproveitando meu relógio marca 0:3 ou seja hora menor que 10 e minuto menor que 10 ele fica em uma casa decimal, fica estranho... como arrumo apara 00:03?
como eu consigo imprimir mais de duas coisas segundo seu script?
o unico jeito que consegui foi substituindo o data = número por data ++, só que ele chega no ultimo número e trava... seguindo a mesma lógica que vc fez em cada if dando numero para o data não consigo adicionar mais que dois... aaa tive que substituir o data por datatime porque ja estava usando uma variavel com data
se colocar data = 0 no teste 3 não funciona.
if((now = millis())-before > TIMEOUT) {
if (datatime == 2) {
lcd.print(teste3);
datatime++;
}
if (datatime == 1) {
lcd.print(teste2);
datatime++;
}
if (datatime == 0) {
lcd.print(teste1);
datatime++;
}
before = now;
}
quanto a hora e minuto menor que 10 deu certinho, vlw
conseguindo agora resolver este problema em cima vou fazer o video para mostrar para vcs
criei minha forma, criei a variavel seg e de 0 a 10 imprime uma coisa e no final coloquei seg++; entao de 11 a 21 imprime outra e por ai vai, quando passa eu criei um seg = 0 e recomeça tudo denovo... funcionou legal....
Aparantemente sim, como falei não consegui criar mais de duas paginas de impressão com seu modo, então fiz com um contador... não sei se é a melhor forma ou se isto irá me trazer problemas...
esta semana faço o vídeo para vocês
Aliás, pensando bem... como tens um RTC e estás a sincronizar a hora de X em X tempo, podes até usar isso para ir mudando a informação que mostras no ecrã.
Parabéns pelo projecto conseguido, é sempre bom ver algo que fazemos funcionar. Eu notei agora que meti os pés pelas mãos ao comprar um LCD shield que não é compatível com o Ethernet shield. Enfim... vou mesmo ter de pegar no ferro de soldar.
Parabéns por a tua dedicação ao teu projecto. Sabe bem ver tudo a funcionar e da uma enorme satisfação veres que conseguiste o que pretendias e que um grande projecto agora se tornou simples
Pessoal primeiramente gostaria de agradecer vocês dois. Não teria conseguido sem voces.
segue o link do vídeo como prometido...
vou deixar isto rolando por alguns dias e ver se da algum problema.... ja encomendei uma caixa plastica de 12x10x6 que deve chegar em um mês e então vou ligar o sistema real.... Próxima etapa quero um ethernet shield para colocar estes dados na internet.
também quero adicionar no sistema um sistema de dosagem de quimicos no aquario, bem como controlar a temperatura do dissipador da luminária led.
o que acharam?
bubulindo, segundo o script que vc me passou em relação aos estados (ligado, desligado) como posso substituir eles por caracteres especiais? ja montei eles, e montei tambem para temperatura e relogio que ja estão funcionando... ficou bem legal.
para imprimir eles no lcd se usa o comando lcd.write(1); o 1 eu relacionei a um caracter, porém quando eu tento substituir diretamente pelo ligado por exemplo e envio o sketch para o arduino ele trava...
outra situação é, criei vários caracteres.... tem como eu criar um arquivo a parte e gravar na biblioteca? porque encheu o arquivo de caracteres especiais.
Gostei do vídeo. Acho que podias escrever Aquecedor e Refrigerador para ficar mais "bonito".
Define caracteres especiais? Será algo assim:
Tens um pedaço de código para eu entender o que está a acontecer e travar o sistema?
Como assim, um arquivo à parte? O que é para ti um arquivo? Referes-te a criar isso num ficheiro para poderes usar quando quiseres sem teres de ter isso no ficheiro de código do Arduino?
Quanto às tuas sugestões... Meter os dados na internet é bacano. Eu estou a pensar algo assim para a minha casa nova. Não será muito difícil creio.
Já regular a dosagem dos químicos é que não acho tão simples de fazer ou aconselhável, apenas porque podes matar os peixitos.
Como assim controlar a temperatura do dissipador da luminária? :\
isto mesmo, ja criei o character, vamos utilizar o exemplo da página porque não tenho o meu aqui em mãos:
byte smiley[8] = {
B00000,
B10001,
B00000,
B00000,
B10001,
B01110,
B00000,
};
void setup() {
lcd.createChar(0, smiley);
}
agora basta eu colocar lcd.write(0); que imprime...
mas quro que substitua o off:
const char estados[2][10] = {"ON ", "OFF"};
assim const char estados[2][10] = {"ON ", smiley};
quanto ao ficheiro, correto, bem isto que quero....
tipo não sei se funciona assim mas criar um ficheiro simbolos.h
e no principal escrever #include <simbolos.h> para carregar ele....
quanto a colocar dados na internet o site exosite.com acho que faz isto não? teria outra indicação?
quanto a controlar os químicos ja existem pessoas fazendo isto e tambem o sistema pronto... basicamente eu tenho que controlar o tempo de funcionamento da bomba com o arduino para que ela dose certo.... a bomba se chama bomba peristáltica
controlar a temperatura da luminária porque o ventilador que refrigera o dissipador faz um pouco de barulho e a maior parte do tempo pode funcionar a 20% de sua capacidade.. então quero criar algo que, se tiver a determinada temperatura, ele funciona a 20% se aumentar a temperatura do dissipador, aumenta a velocidade do ventilador para 40% e por ai vai... se chegar numa temperatura critica desarma a luminária para que nada se queime... por exemplo, rompeu o fio do ventilador ou o mesmo não funciona, temperatura da luminaria aumenta sem parar e queimam os leds...., entao o arduino desligara a luminaria antes que isto aconteça.... estou pensando em colocar um lm35 colado no aluminio do dissipador juntamente com um isolante térmico para a temperatura externa não atrapalhar a leitura....
Coloca o ficheiro simbolos.h no directorio Arduino\libraries\simbolos. Vais ter de criar o directorio simbolos e provavelmente o directorio libraries.
Sai da IDE.
Volta a entrar.
Vai a Sketch-> Import Libray -> simbolos.
Há-de aparecer o tal include...
Depois usa as variáveis normalmente no teu código.
Eu usei a pachu.be. Eles já têm uma biblioteca para usar com o Arduino. É simples.
Esse controlo que pretendes chama-se PID... daí eu ter perguntado se a ventoínha era de 12V ou de 230... se for de 12V, podes arranjar uma ponte H (não é preciso tanto) ou um driver de motores tipo um transistor Darlington por exemplo, e controlar a velocidade da ventoínha por PWM.
Infelizmente venho comunicar a voces que estou com os problemas iniciais
Liguei o arduino nos perifericos do aquario, por enquanto a luz e o aquecedor.
Apenas o arduino ligado funciona perfeito mas quando entro com a rede 220v da erro na leitura do sensor de temperatura, como foi criado a trava de erro de leitura, ele fica travando e dando erro de leitura alem de leituras de mais de 100 graus.... também acontece de zerar o relogio e retornar, interferencias no lcd....
me parece que os fios do 220v esta criando um campo que interfere o arduino, fechei tudo dentro de uma caixa elétrica e ficou dando esse problema... tiro a rede 220v e tudo funciona normalmente...
abri toda a caixa, passeio o fio do sensor sozinho e os erros me parecem que diminuiram.... vou acompanhar por um tempo e ver
o problema é mesmo o inicial, os drivers da luminaria led.... apenas o arduino controlando a temperatura funciona perfeitamente....
testei até tirar a luminária do arduinno e ligar ela novamente no timer digital que tenho mas a hora que conecto da problema no arduino. a unica coisa é que o arduino ta ligado numa fonte e a fonte ligada numa regua onde esta o timer da luz....
se eu ligar a luz da problema e se eu desligar funciona tudo normalmente, que droga..... n sei o que fazer....
bubulindo nada alem do que esta no video.... apenas retirei o fio da lampada do rele e liguei diretamente no 220v, o resto é tudo igual....
a luminaria possui 3 linhas de 7 leds de 3w cada... as da ponta e alguns leds do meio sao ligados neste driver da foto e 3 leds do centro sao ligados em outro driver... a entrada 220v destes dois driver eu tirei do rele do arduino e liguei diretamente na tomada da casa, e o problema continuou, apos eu tirei os fios do driver maior e dexei apenas o de 3 leds e funciona... resumindo esta tudo igual ao video porém tirei a luminaria do rele e liguei diretamente no 220v da cada
não tem nem o que fazer no esquema.. é o arduino ligado como mostrado no video e dois fios saindo da luminaria indo para a rede da casa diretamente..... e a ligacao da luminaria esta no desenho do driver que passei o link
troquei o driver de 18 leds e o de 3 por dois drivers de 10 cada um, e um led ficou desligado.... (aproveitei para separar leds de coloração azul e branco) assim controlo cada um separadamente, minha idéia é ligar o azul primeiro demanha, depois de uma hora ou mais ligar o branco, denoite desligar o branco primeiro e depois desligar o azul.
Quando liguei apenas um driver 10 aconteceram os problemas, porém com menos intensidade do que o driver de 18. Quando liguei o segundo driver de 10 não aconteceu mais problemas, hoje demanha ficou uma hora ligado e eu observando e nada.... mesmo assim o sistema não está confiável... Hoje vou deixar ligado por mais tempo e observar, caso não aconteça o problema vou ligar os drivers no relé...
A temperatura marca 100 graus as vezes e arma e desarma o relé, o sensor não é reconhecido e da mensagem de erro e tambem o relógio marca se nao me engano 45:450, armando e desarmando o relé da luz.
Alguém tem idéia do que pode ser? ja que o sistema de luz está totalmente independente do arduino, compartilhando apenas o fonte AC.