Autor Tema: Agradecería Ayuda para hacer un reloj para mi iglesia.GRACIAS.  (Leído 3069 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fran2v

  • PIC10
  • *
  • Mensajes: 24
Agradecería Ayuda para hacer un reloj para mi iglesia.GRACIAS.
« en: 04 de Enero de 2011, 09:38:26 »
Hola amigos .....tengo ilusion por poner un reloj digital que reproduzca las horas en forma de carrillón para la iglesia a la que humildemente pertenezco.
El almacenamiento de las hora y sonidos de carillón creo que ya lo tengo solucionado.... "en principio".... por medio de un amplificador, vocína exponencial y un circuito basado con el ISD 2560 o uno de la misma serie con más capacidad. No obstante tanbien agradecería todo tipo de ayuda de este foro.
Mi suplica.... es ayuda... para hacer un reloj.... el cual me de un impulso de 1" cada hora para poder controlar el ISD.
Agradeciendo su comprensión......

                                                                     Salu2  a todos y un excelente 2011

Si prefieren mandar alguna consulta privadas.....lo pueden hacer al  correo electronico : fvallverdú@gmail.com

No obstante preferiría que todo se haga en el foro por si hay algún otro necesitado como yo
« Última modificación: 04 de Enero de 2011, 15:12:06 por MGLSOFT »

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Agradecería Ayuda para hacer un reloj para mi iglesia.GRACIAS.
« Respuesta #1 en: 04 de Enero de 2011, 09:53:47 »
Hola Fran2v, deberia expecificar, en que lenguaje de programacion y que micro dispone, siendo asi te aconsejo con iniciativa propia de cualquier programacion. ya hay algunos proyectos sobre Reloj aqui en el foros y quizas te sirva de ayudas.

Saludos
« Última modificación: 04 de Enero de 2011, 15:12:27 por MGLSOFT »

Desconectado fran2v

  • PIC10
  • *
  • Mensajes: 24
Re: Agradecería Ayuda para hacer un reloj para mi iglesia.GRACIAS.
« Respuesta #2 en: 04 de Enero de 2011, 14:59:11 »
Muchas gracias por su apreciación.  Lenguaje de programación ASM o en "C" y un PIC  el que mejor se adapte ya que no lo tengo comprado. Tengo un pequeño programador T20.

Muchas gracias....y le agradecería su apoyo

Nota: En C casi no tengo idea y en ASM como principiante.
« Última modificación: 04 de Enero de 2011, 15:12:47 por MGLSOFT »

Desconectado fran2v

  • PIC10
  • *
  • Mensajes: 24
Re: Agradecería Ayuda para hacer un reloj para mi iglesia.GRACIAS.
« Respuesta #3 en: 20 de Enero de 2011, 16:42:49 »
Hola amigos...je...je...seguimos:
Encontre en el foro este código pero no me lee el lcd la temperatura. Agradecería me indiquen que esta mal y tengo que cambiar.Gracias.
Código: [Seleccionar]
#include <18f2550.h>
#fuses HS,NOWDT,NOPROTECT,NODEBUG,NOBROWNOUT,NOWRT,NOLVP,NOPUT
#use delay(clock=20000000)
#define RTC_SCL   PIN_B1
#define RTC_SDA   PIN_B0
#use fast_io(b)
//#define use_portb_lcd TRUE             
#include <_ds1307.c>
#include <string.h>
#define LCD_DB4   PIN_C4
#define LCD_DB5   PIN_C5
#define LCD_DB6   PIN_C6
#define LCD_DB7   PIN_C7
//
#define LCD_RS    PIN_C0
#define LCD_RW    PIN_C1
#define LCD_E     PIN_C2
#include <flex_lcd.c>
#include <ds1621.c>

 int hr;
 int min;
 int sec;
 int day;
 int mth;
 int year;
 int dow;
 char sdow[11];
 char ValoresLeidos[105];
 Byte value;
 
/*******************************************************************************
                 FUNCIONES ESCRITURA Y LECTURA EEPROM INTERNA
*******************************************************************************/                 
 void write_string_eeprom(int address,char *data){
   while(*data!=0){
      write_eeprom(address++,*data);
      data++;
   }
   write_eeprom(address,0);
}

void read_string_eeprom(int address,char *sl){
     sl--;
   do{
      sl++;
      *sl=read_eeprom(address++);
   }
   while(*sl!=0);
}

/*******************************************************************************
                           FUNCION DE ALARMAS
*******************************************************************************/
void alarma(void)
{
   output_high(PIN_B7);
   delay_ms(5000);
   output_low(PIN_B7);
}
/*******************************************************************************
                              PROGRAMA PRINCIPAL
*******************************************************************************/
                   void main()
                   {
                   char alarmas[105];
                   char alarma1[]="083000";
                   char alarma2[]="090000";
                   char alarma3[]="092500";
                   char alarma4[]="100000";
                   char alarma5[]="102000";
                   char alarma6[]="103000";
                   char alarma7[]="111500";
                   char alarma8[]="113500";
                   char alarma9[]="120000";
                   char alarma10[]="123000";
                   char alarma11[]="124500";
                   char alarma12[]="131500";
                   char alarma13[]="143000";
                   char alarma14[]="153000";
                   char alarma15[]="163000";
                   char *leido=alarmas;
                   
/*******************************************************************************
                   ESCRIBIR ALARMAS EN LA EPROM
*******************************************************************************/
                   write_string_eeprom(0x00,alarma1);
                   write_string_eeprom(0x07,alarma2);
                   write_string_eeprom(0x0E,alarma3);
                   write_string_eeprom(0x15,alarma4);
                   write_string_eeprom(0x1C,alarma5);
                   write_string_eeprom(0x23,alarma6);
                   write_string_eeprom(0x2A,alarma7);
                   write_string_eeprom(0x31,alarma8);
                   write_string_eeprom(0x38,alarma9);
                   write_string_eeprom(0x3F,alarma10);
                   write_string_eeprom(0x46,alarma11);
                   write_string_eeprom(0x4D,alarma12);
                   write_string_eeprom(0x54,alarma13);
                   write_string_eeprom(0x5B,alarma14);
                   write_string_eeprom(0x62,alarma15);
                   
/*******************************************************************************
                   INICIALIZAMOS LCD Y DS 1307
*******************************************************************************/                   
                   lcd_init();
                   //init_temp();
                   printf(lcd_putc,"     NUESTRA");
                   printf(lcd_putc,"\n    PARROQUIA");
                   delay_ms(2000);
                   lcd_putc("\f");
                   lcd_gotoxy(2,1);
                   printf(lcd_putc,"VIRGEN");
                   lcd_gotoxy(5,2);
                   printf(lcd_putc,"DE LAS NIEVES");
                   delay_ms(2000);
                   lcd_putc("\f");
                   delay_ms(5);
                   ds1307_init(DS1307_ALL_DISABLED);
                   //Set date for -> 2-Abril-2010 Viernes
                   //Set time for -> 17:32:00
                   ds1307_set_date_time(21,4,10,1,22,14,00);
                   set_tris_b(0x00);            //puerto B como salida B7
                   disable_interrupts(GLOBAL);      //todas interrupciones desactivadas
                   
/*******************************************************************************
                   LEEMOS DS1307 Y VISUALIZAMOS DATOS EN LCD
*******************************************************************************/
                   do
                     {
                     ds1307_get_day_of_week((char*) sdow);
                     ds1307_get_time(hr,min,sec);
                     ds1307_get_date(day,mth,year,dow);
                     lcd_gotoxy(1,1);
                     printf(lcd_putc,"%s %02u-%02u-%02u",sdow,day,mth,year);
                     printf(lcd_putc,"\n%02u:%02u:%02u",hr,min,sec);
/*******************************************************************************
                   LEEMOS Y VISUALIZAMOS TEMPERATURA
*******************************************************************************/                   
                   init_temp();
  read_temp();
  value=read_temp();
  lcd_gotoxy(10,2);
    printf(lcd_putc,"Temp:%u  ",value);
    //delay_ms(1000);
                     
/*******************************************************************************
                     LECTURA Y COMPARACION DE LA ALARMA 08:30
*******************************************************************************/
                     read_string_eeprom(0x00,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y COMPARACION DE LA ALARMA 09:00
*******************************************************************************/
                     read_string_eeprom(0x07,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y COMPARACION DE LA ALARMA 09:25
*******************************************************************************/
                     read_string_eeprom(0x0E,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y COMPARACION DE LA ALARMA 10:00
*******************************************************************************/
                     read_string_eeprom(0x15,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 10:20
*******************************************************************************/
                     read_string_eeprom(0x1C,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 10:30
*******************************************************************************/
                     read_string_eeprom(0x23,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 11:15
*******************************************************************************/
                     read_string_eeprom(0x2A,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 11:35
*******************************************************************************/
                     read_string_eeprom(0x31,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 12:00
*******************************************************************************/
                     read_string_eeprom(0x38,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y COMPARACION DE LA ALARMA 12:30
*******************************************************************************/
                     read_string_eeprom(0x3F,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 12:45
*******************************************************************************/
                     read_string_eeprom(0x46,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 13:15
*******************************************************************************/
                     read_string_eeprom(0x4D,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 14:30
*******************************************************************************/
                     read_string_eeprom(0x54,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 15:30
*******************************************************************************/
                     read_string_eeprom(0x5B,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
/*******************************************************************************
                     LECTURA Y ESCRITURA DE LA ALARMA 16:30
*******************************************************************************/
                     read_string_eeprom(0x62,leido);
                     sprintf(ValoresLeidos,"%02u%02u%02u",hr,min,sec);
                        if(strcmp(ValoresLeidos,leido)==0)
                           alarma();
                           else
                              output_low(PIN_B7);
                     }
                    While(1);
                   }
                   
                   
 



 

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Agradecería Ayuda para hacer un reloj para mi iglesia.GRACIAS.
« Respuesta #4 en: 20 de Enero de 2011, 16:51:14 »
Tienes el circuito que estas utilizando??
Ese programa usa un DS1621 para leer la temperatura, lo tienes en tu circuito??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado fran2v

  • PIC10
  • *
  • Mensajes: 24
Re: Agradecería Ayuda para hacer un reloj para mi iglesia.GRACIAS.
« Respuesta #5 en: 21 de Enero de 2011, 07:47:37 »
Gracias por tu atención y ayuda.
Lo estoy simulando con proteus 7.7 SP2.La hora y fecha se lee correctamente pero la temperatura siempre me sale 25. Adjunto PDF conexionado.
Soy novato y agradecería explicaciones a nivel de "torpe"....je...je....Primero quisiera solucionar lo de la temperatura y después poner más alarmas pero en distintas salidas (pins del PIC)

http://img89.imageshack.us/img89/7215/relojp.jpg

Muchas gracias  
« Última modificación: 21 de Enero de 2011, 08:08:31 por MGLSOFT »

Desconectado Slalen

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1079
    • Página web personal de Guillermo Herrero González
Re: Agradecería Ayuda para hacer un reloj para mi iglesia.GRACIAS.
« Respuesta #6 en: 21 de Enero de 2011, 07:57:24 »
mira, aquí tienes un reloj:

Este es el esquema http://www.todopic.com.ar/foros/index.php?topic=21496.msg258255#msg258255

y este el código en C18: http://www.todopic.com.ar/foros/index.php?topic=21496.msg259164#msg259164

Lo tendrías que adaptar a tus necesidades.

También controla temperatura


 

anything