TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: harrisón en 29 de Abril de 2016, 08:34:49
-
Hola, busque mucho por temas referente al ds1307 pero no acabo de encontrar lo que necesito, tampoco tengo que tirar de este chip. Resulta que quiero sincronizar varios modulos que controlan figuras de luces, tienen que encenderse todos al mismo tiempo e irse apagando para ir creando la figura todas iguales, el tema es que se sincronicen inalambricamente para no tener que tirar cable de figura en figura ya que van a estar por calles y separadas, entonces lo que pense es poner un reloj real para ir contando los segundos y hacer un reset a al modulo para que vuelva empezar el ciclo, es decir, si una figura dura 10s en completar el ciclo pues hacer un reset, entonces la pregunta es, como puedo sacar los pulsos de cada segundo del ds1307 y creo que va a ser dificil poner todos los modulos esactamente igual, que no varien ningun segundo... que se os ocurre para esto, los tutoriales que veo es para ponerlo en hora y despues leer la hora con un display pero yo no quiero meter lcd ni nada, solo queria tener el ds en hora y que me de pulsos de segundero... como lo veis?
Saludos.
-
Hola Harrison,
Ya leiste este temas http://www.todopic.com.ar/foros/index.php?topic=26934.0
porque te podria Guiar el codigo que esta puesto alli , eso modificarlo para tu uso ya que se trata de una Alarma con DS1307.
Saludos
-
Lo leí por encima, voy a mirarlo con más calma pero no me convence mucho... me estoy planteando comprar relojes digitales de estos baratitos, los pongo a hora y quito una señal del interior para hacer reset, porque si tengo poner otro pic para controlar el ds1307 ya me parece bastante, pensaba que el ds una vez programado iba a dar pulsos en forma de segundero, entonces ya estaba, no necesitaba display ni nada...
-
Hola a todos,
aportando algo sobre el DS1307, tiene un pin que puedes usar para tu proyecto y lo puedes programas para que te mande pulsos cada segundo, es el SQW/OUT. Lo ajustas en la direción 7, poniendo $10
Saludos...
-
Ah, pues estupendo :mrgreen: ahora el problema es programarlo, :? yo le cargue a traves de arduino uno un programa que vi en un tutorial, me recomendais alguno para cargarle? y donde aparezca la direccion 7 que dice steban porque así a primeras no me entero, yo suelo programar con flowcode. a ver si me podeis echar una mano, gracias :)
-
Hola Harrisón,
en realidad no es complicado, yo uso PicBasic PRO y Proton IDE, y en estos compiladores es muy sencillo usando el comando I2Cout Dpin, Cpin, Control, { Address }, [ OutputData ] en Proton puedes escribir el dato; por ejemplo:
Device = 16F819
Xtal = 4
All_Digital= TRUE
Symbol SDA = PORTA.0
Symbol SCL = PORTA.1
Dim seco As Byte ;definir tamaño de variable segundos 1 a 255
Dim minu As Byte ;variable para los minutos
Dim hour As Byte ;variable para las horas
Dim dayW As Byte ;variable día de la semana
Dim dayM As Byte ;variable día fecha del mes
Dim month As Byte ;variable mes
Dim year As Byte ;variable año de 2 dígitos
Dim ctrl As Byte ;variable para control
grabarRTC:
seco = $00 ;setear 00 segundos
minu = $30 ;setear 30 minutos
hour = $13 ;setear las 13 horas
dayW = $2 ;setear día lunes, D=1, L=2, M=3, M=4, J=5, V=6, S=7
dayM = $22 ;setear día 27 del mes
month = $7 ;setear mes septiembre
year = $14 ;setear año 04
ctrl = $10 ;control %00010000 para encender el led conectado en SQW/OUT cada 1 seg.
I2Cout SDA, SCL, %11010000, 0, [seco, minu, hour, dayW, dayM, month, year, ctrl]
DelayMS 10 ;retardo para finalizar grabación
end
Como te das cuenta, empieza a escribir a partir de la dirección de memoria 0 hasta el 7, es deccir, el dato seco se escribe en 0, minu en 1 ... y ctrl en 7.
Aunque puedes escribir uno por uno:
I2Cout SDA, SCL, %11010000, 0, [seco]
I2Cout SDA, SCL, %11010000, 1, [minu]
I2Cout SDA, SCL, %11010000, 2, [hour]
I2Cout SDA, SCL, %11010000, 7, [ctrl]
Una disculpa pero no manejo Arduino y ni el compilador Flowcode, pero me imagino que hay una función o código que haga algo parecido...
Otro detalle es sobre la salida SQW/OUT es que es de colector abierto...
Saludos.
-
Hola, gracias por la ayuda antes de nada :). Le estuve dando vueltas al asunto y no me acaba de convencer, va a ser muy dificil tener todos los ds1307 funcionando clavaos me refiero al segundo dado que voy a contar los segundos para completar el ciclo de la figura, porque al tener que programarle la hora va a ser chungo ponerlo igual y si tengo que poner display con todo lo que conlleva ya me sale más barato comprar un temporizador de estos de enchufe y buscar la manera de sacar una señal de ellos, o si no de un reloj digital tipo casio. otra opcion que se me ocurre es poner un receptor rf en cada modulo y con un mando hacer un reset cuando esten todos montados para que arranquen al mismo tiempo, no se, le estoy dando vueltas...