FAÇA UM RELÓGIO CONTROLADOR DE 6 CANAIS (VERSÃO PARA DS1307) – COM PIC 16F628A E LCD (REF116)

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:

RELOGIO_CONTROL_DS1307_ASM

Segue o arquivo Hex:

RELOGIO_CONTROL_DS1307_HEX

Em 27/11/14 foi feita revisão, conforme pasta abaixo:

relogio_controlador_v2

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:

RELOGIO_CONTROL_DS1307_V_4

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:

relogio_controlador 1 canal

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:

RELOGIO_CONTROL_1C_E

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:

RELOGIO_CONTROL_SEM_6CAN

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!!!

86 comments on “FAÇA UM RELÓGIO CONTROLADOR DE 6 CANAIS (VERSÃO PARA DS1307) – COM PIC 16F628A E LCD (REF116)

  1. Boa noite,

    Claudio estou fazendo um projeto similar ao seu, estou usando mikroc, seria possível me mostrar como é feita a programação para eu ter uma base e fazer algumas alterações?

    Obrigado e parabens pelo blog.

    1. Olá Burnys!
      Exatamente em que eu posso ajudar? É a programação do pic ou seja, como carregar o hex no pic? Ou é algo relativo ao programa “c”, como ele funciona?
      Cláudio

  2. Amigo resoolvi montar o projeto mas quando tento gravar o micro da o seguinte erro :

    EEPROM erro at 0X0001
    Good 0X01
    Bad 0XFF

    sempre no final da gravação o que posso fazer ?

    1. Olá Liliano!
      Não sei te dizer o porque, mas o teu gravador não está conseguindo gravar a parte final do arquivo hex relativo a pré-programação da eeprom do pic. Consulte o manual do teu programador sobre o que poderia estar ocasionando isto.
      Cláudio

  3. Olá larios, primeiramente parabéns pelo blog, já fiz vários projetos seus e todos funcionaram perfeitamente, inclusive esse, fiz um para controle de iluminação de aviário, e gostaria de saber se você tem algum projeto para acionamento semanal, pois preciso acionar um motor uma vez por semana e com controle do horário e do dia da semana, para um silo para secagem de milho. você teria algum projeto que me atenda, se possível nesse mesmo projeto porque no inicio da secagem precisa ficar ligado quase direto, apenas uma saída semanal chega.
    OBS: não entendo de programação.

    Desde já muito obrigado

    1. Olá Adilvan!
      Obrigado por seu comentário apreciativo aos artigos deste blog. No momento, não tenho nada pronto que possa lhe ajudar. Mas quem sabe, futuramente possa analisar esta possibilidade.
      Claudio

  4. Claudio, boa tarde.
    Descobri seu blog ontem, fiquei muito satisfeito, esse circuito era bem o que estava tentando desenvolver, contudo ainda sou um pouco leigo com PIC, mas já possuo alguma experiência com Arduino.

    Só gostaria de saber se é possível gravar este PIC com um conversor serial FT232 utilizado no Arduino?

    1. Olá Tiago!
      O conversor FT232 , se eu não estiver enganado é usado para adaptar portas ‘comX’ de PC, usando a entrada ‘USB’ para padrão de portas seriais. Não sei como ele é usado no Arduino e não sou a pessoa mais indicada para te ajudar com Arduino. Mas para programar um pic, precisará de um software de programação ( poderá usar o WINPIC800) mais um hardware ligado na porta serial do computador (como o ‘simples programador‘). Caso teu PC não disponha de porta serial, poderá usar um adaptador de usb/serial comercialmente vendido, ou tentar usar o teu FT232, retirando os sinais dos pinos apropriados (terá que ver os datasheet deste ci). O Winpic800 necessitará do arquivo hex fornecido junto ao artigo para ser gravado no PIC que você usará. Veja exemplos no youtube de uso do winpic800.
      Cláudio

  5. Olá Claudio,
    Eu continuei testes e se você mantiver o estado das saídas para ser sem poder momentaneamente, mas não é um problema quando o tempo sem poder em muito grandes, algumas saídas que devem ser estabelecidos e outros devem cair, não o fez, desde o retorno para energizar o circuito, manteve o status das saídas como eram quando eles perderam o poder, não correspondendo a agendar horários para 6 canais.
    Por favor, você pode modificar o programa.
    Obrigado pela ajuda.
    Saudações.

    1. Olá Jandos! Você está usando a versão 3 em código ‘C’? Se não experimente esta. Foi alterada toda a forma de comparação do tempo real com os tempos programados. A versão em ASM já estava com o tamanho muito inchado para se alterar mais. Portanto, optei por uma versão partindo dozero, mas em “C”.
      Cláudio

      Hola Jandos! Está utilizando el código en ‘C’? Si no, intenta-lo. Fue cambiado la forma de comparación de la hora con los tiempos programados. La versión del ASM ya era de tamaño muy hinchado, e no era possible se cambiar más. Entonces opté por un nuevo código, una nueva versión partiendo del zero, pero en “C”.
      Cláudio

      1. Olá Claudio,
        Eu não estava usando, eu não tinha percebido que você já tinha colocado na página, mas desde que eu carreguei o PIC e ele funciona muito bem.
        Eu realmente gosto do novo formato das mensagens no LCD.
        Nenhuma linguagem C, mas eu vou tentar mudar os dias da semana em espanhol.
        Mais uma vez muito obrigado.
        Saudações.

        Hola Claudio,
        No lo estaba utilizando, no me había fijado que ya lo habías puesto en la página, pero ya lo cargué al PIC y funciona muy bien.
        Me gusta mucho la nueva presentación de los mensajes en el LCD.
        No se de lenguaje C, pero voy a intentar cambiar los días de la semana a español.
        Nuevamente muchas gracias.
        Saludos.

Comments are closed.

Back To Top