Acionar dispositivos em determinados momentos programados pode ser muito útil em automação. Veja esta nova versão do controlador de 6 canais usando um RTC DS1307 (comunicação I2C)…
Para facilitar para alguns hobistas que estão tendo dificuldade de encontrar o ci DS1302, de protocolo SPI (3 fios), foi adaptado o código para usar o ci DS1307, de protocolo I2c de 2 fios. Com exceção de usar um fio a menos na ligação com o PIC, poucas coisas mudaram no esquema. Veja abaixo como ficou:
Na parte do arquivo ASM, todas as rotinas de SPI foram substituídas por rotinas I2C. O Programa ficou bem inchado com estas modificações, sendo então necessário a substituição de algumas linhas de código repetidas por chamadas de subrotina. Ainda assim, sobraram poucas linhas de código, sem usar, das 2047 existentes na flash do PIC16F628a.
Com respeito ao uso e aplicações, poderá ver os detalhes no artigo ‘FAÇA UM RELÓGIO CONTROLADOR DE 6 CANAIS – COM PIC 16F628A E LCD’, uma vez que só foi mudado o chip RTC de ds1302 para DS1307.
Obs.: Esta montagem é de caráter didático, sendo montada e testada apenas em placa de protoboard, sendo sujeita a bugs ainda não detectados. São fornecidos os arquivos ASM e HEX, que poderão ser modificados conforme as necessidades dos hobistas.
Segue o arquivo ASM:
Segue o arquivo Hex:
Em 27/11/14 foi feita revisão, conforme pasta abaixo:
Também, em 30/11/14 foi feita esta versão usando compilador “C”, e atualizada em 03/03/2015, com vantagem de recuperar a situação programada, mesmo com falta de energia momentânea. Foi feita uma nova forma de mostrar a programação do calendário e canais, piscando os elementos que estão sob ajustes. Confira na pasta zipada abaixo:
O Sr. Edmilson Spigolan nos envia gentilmente uma versão com apenas um canal, usando o mesmo esquema, mas sem montar fisicamente os canais 2 a 6. Segue a pasta com o asm e hex:
Em 09/09/2017 foi feita uma revisão neste relógio de 1 canal, eliminando um ‘bug’ que deixava a segunda linha um pouco instável na apresentação. Segue os arquivos desta nova versão de 1 canal:
Caso deseje a versão com o circuito integrado DS1302 clique aqui.
Em 27/07/2015 foi feita esta versão, com programação também do dia(s) da semana além das horas, minutos e segundos. Por exemplo: Como irrigação de jardim: acionando eletroválvula da água (destas de máquina de lavar roupas). Podemos programar para regar nas segundas, quartas, sextas, ligando no horário xx:xx:xx e desligando yy:yy:yy (a diferença será o tempo de rega). Segue a pasta com os arquivos desta montagem:
Manuais:
DS1307
PIC 16F628A
LCD
Esquemas curiosos
Curiosidades:
Como usar melhor o tempo?
Coleta da água da chuva — métodos antigos e modernos
O que é a Grande Bacia Artesiana?
O que revela a visão do invisível?
Os ciclos que sustentam a vida
Já que não pode guardá-lo, use-o bem
Dê mais vida à sua casa
Ondas assassinas: mitos e verdades
Já sorriu para um crocodilo?
Navegar em água e em terra
O esplendor da areia
Outros assuntos:
Lidar com sogros
Aprenda a perdoar
Lidar com dívidas
Como disciplinar seu filho adolescente
Por que eu me corto?
Desempenhem bem o papel de pais
Como fazer seu segundo casamento dar certo
O que acontece quando morremos?
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Adolescentes- O que fazer se estou sofrendo bullying?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?
Até o próximo artigo!!!
Olá Edimilson gostaria se for possível você me enviasse os arquivos do seu projeto. Pois estou querendo montar um relogio com apenas um rele como o seu. Desde já agradeço, meu e-mail hemersonfs@yahoo.com.br
Bom dia Cláudio e membros do forum! sou novo aqui!
Alguém poderia me ajudar em um código C para esse projeto muito bacana? precisaria de menos canais, o ds 1307 com lm 35 na tela inicial e menus para poder adaptar diversas oportunidades como um timmer ou mais e etc.
Desde já agradeço a todos!!!
Olá Alison! Este projeto a que faz referência foi escrito apenas em assembly. Eu atambém estou aprendendo a linguagem “c” e ainda tenho muitas limitações no emprego de certas rotinas internas ao compilador. Mas fiquei curioso, pois você vai misturar o DS1307 (relogio) com o LM35 (sensor de temperatura). O que vai sair nesta montagem? Poderia compartilhar? Seria um gravador de temperaturas ambiente?
Cláudio
Claudio bom dia,
Muito obrigado por sua ajuda.
Se os pinos foram alteradas D4-D5-D7-D6.
O gerido e funcionou perfeitamente.
Muito obrigado.
Saudações.
Olá Jandos! Que bom que conseguiu descobrir o problema. Bons projetos para você!
Cláudio
Claudio bom dia,
Parabéns por este excelente trabalho.
(estou usando o tradutor do Google).
Eu tenho um problema, eu amei o circuito em um PCB, mas o visor LCD mostra caracteres japoneses, que estão constantemente em movimento.
Quando eu pressionar os botões se houver mudanças, eu estou usando o JHD162A.
Gostaria de receber sua ajuda.
Saudações.
(Repito meu comentário, porque esta é a única que eu não antes construída)
Olá Jandos! Creio que possa ser algum pino invertido na ligação entre o microcontrolador e o LCD. Experimente conferir pino a pino, as ligações entre PIC e LCD na sua PCB, para se certificar de algum erro na ligação.
Cláudio
Olá cláudio!
Fiz as modificações nas linhas do programa conforme sugerido, compilei o arquivo e lhe escrevo para informar que o mesmo funcionou perfeitamente. Agora, quando a alimentação do circuito é retirada, os segundos também continuam armazenados normalmente. Obrigado pela atenção.
Olá Marcelo! Obrigado por retornar com a informação. Fico feliz que tenha tido sucesso! Bons projetos para você!
Cláudio