Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
ianfreitas

12F629 + DS 1307

Recommended Posts

Gostaria que alguém me desse ajuda com o programação em C para este circuito.

 

PIC 12F629 E DS 1307

 

gostaria que uma carga fosse  ligada e desligada num horário definido já na programação, que puder me ajudar desde já agradeço.

post-570998-0-62298700-1446045991_thumb.

Editado por ianfreitas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual compilador você está usando? Use o I2C por software... Você já tem a biblioteca? 

Compartilhar este post


Link para o post
Compartilhar em outros sites

ccs compiler, muito obrigado pela ajuda!

 

 Use o I2C por software...

R: NÃO SEI COMO FAZER

 

Você já tem a biblioteca? 

 

R: NÃO (CORRIGIDO TENHO "SIM").

Editado por ianfreitas

Compartilhar este post


Link para o post
Compartilhar em outros sites
Neste código o PIC pega a data e o horário do DS1307 e faz nada com os valores ^_^ (se comparado com o seu esquemático eu inverti o SCL e o SDA)



#include <12F629.h>

#FUSES PUT //Power Up Timer
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES NOWDT
#FUSES INTRC_IO

#use delay(clock=4MHz)

#use I2C(master, scl=PIN_A0, sda=PIN_A1, slow)
// I2C Mestre, 100KHz (slow)

#define LED PIN_A5
#define DELAY 500

#include<DS1307.c>

void main()
{
unsigned int segundo, minuto, hora, dia, mes, ano, dia_da_semana;

while(true)
{
ds1307_set_date_time(10,9,15,7,5,46,13);
// Atualiza o DS1307 para data 10/09/2011 (domingo - 7)
// e a hora para 05:46:13
// Atualizar apenas uma vez, a bateria manterá o DS1307 contando o tempo.

ds1307_get_date(dia, mes, ano, dia_da_semana);
// Lêa o dia mês e ano do DS1307

ds1307_get_time(hora, minuto, segundo);
// Lê a hora minuto e sefgundo do DS1307

output_low(LED);
delay_ms(DELAY);
output_high(LED);
delay_ms(DELAY);
}
}


Tenho uma biblioteca pra o DS1307 mas foi feita para barramentos I2C com mais de um mestre (gasta mais memória) então resolvi usar esta aqui: https://www.ccsinfo.com/forum/viewtopic.php?t=23255

 

Download do código (CCS 5.046) e do arquivo para simulação no proteus (7.10):


 

Edit: O DS3231 possui um oscilador interno e é mais preciso, além disso ele possui 2 alarmes (se não me engano) assim o PIC poderia ficar de boa e só executaria algo quando o DS3231 gerasse o pulso de alarme... Ele também possui um sensor de temperatura  :lol:

 

Tenho um DS1307 (do ebay) que adiantou 7~8 minutos em uma semana (mesmo eu tendo retirado o circuito de recarga da bateria), sei que o problema é com o oscilador, mas...

Editado por test man*~

Compartilhar este post


Link para o post
Compartilhar em outros sites

@test man*~ a culpa não é do ds e sim do cristal. Óbvio d+? @ianfreitas vá por partes. 1º aprenda a ler e escrever no ds. Sugiro simular no proteus 1º. Com este circuito você vai ter um pouco de dificuldade em programar os horários e hora. Sugiro um mc com mais portas e um display qualquer

Compartilhar este post


Link para o post
Compartilhar em outros sites
@Isadora Ferraz Sim, por isso sugeri o DS3231 pois ele possui Crystal interno com compensação de temperatura assim as chances do Crystal ser de má qualidade (igual ao que veio junto com o meu DS1307) é menor :) ...

 

Eu acho que o @ianfreitas já está bem familiarizado com o DS1307, repare este tópico:


Ele disse que não possuía a biblioteca mas talvez ele achou que ela só poderia ser usada com o PIC18F2550... A biblioteca usada naquele tópico foi retirada do mesmo lugar da que foi postada aqui. :lol:  

Editado por test man*~

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pelas respostas" test man " e " isadora ferraz " .

 

 test man = primeiramente mil  desculpas a biblioteca eu realmente tenho, mais tudo que faço e Ctrl+c e Ctrl+v e mudo umas linhas código de lugares uso como base o circuito de Matheus LPS. SEI MUITO POUCO QUASE NADA DA PROGRAMAÇÃO,realmente pensei que só fosse funcionar para 18F2550. Pois tentei fazer com outros Pics e não deu certo.

Só aprendi mais programação em C porque sou teimoso e curioso e tenho muita força de vontade. Se observar esse tópico foi aberto a alguns anos atras mais só agora consegui termina-lo.

Essa e uma maneira que tenho de aprender um pouco com vocês.(preguntando pois não tinha dado certo com ele 12F629)

 

isadora ferraz = a dica foi muito boa, mais a importância desse projeto é acender determinada hora e apagar em determinada hora " SIMPLICIDADE " as vezes suas respostas são tão boas alias são boas demais agora sei porque meu DS tava atrasando vou tentar mudar o cristal só não desconfiava dele, pensava que fosse programação. 

 

AGRADEÇO A VOCÊS DESDE JÁ.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

ian agradeço as gentis palavras. Se achar que deve, informe como pretende programar o horário com aquele circuito. Estou com dificuldade em visualizar isso nele como está. Está no caminho minimalista certo. Pequenos frascos, melhores perfumes...

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

primeiramente mil  desculpas a biblioteca eu realmente tenho

 

Que isso cara, sem problemas =)

 

sou teimoso e curioso e tenho muita força de vontade.

 

Eu também UHauHauHauhUAHuHAuhA...  :D
 
Quebre a cabeça ai, qualquer coisa poste aqui que tentarei ajudá-lo... Se você tiver problemas com a comparação do horário para acionamento da carga tente convertê-lo para segundos, tipo:
Carga será acionada de 07:04:58 à 07:05:02 (horário fixo como você quer)07:04:58 = 25498 segundos 07:05:02 = 25502 segundos Assim: if((horario_atual_segundos >= 25498) && (horario_atual_segundos <= 25502)) {   liga_carga}    else {      desliga_carga      }
Editado por test man*~
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou olhar com atenção e tentar um pouco, trago novidades a vocês 2, em breve.

 

desde já agradeço toda atenção.

Editado por ianfreitas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×