collapse

* Posts Recentes

Robot Extreme - Lisboa Games Week 2019 por guilhermexbot
[15 de Outubro de 2019, 15:21]


tecnologias web para servidor num MCU por jm_araujo
[09 de Outubro de 2019, 14:47]


Limitador de corrente simples por jm_araujo
[08 de Outubro de 2019, 10:29]


Assemblagem de PCBs - JLCPCB por jm_araujo
[06 de Outubro de 2019, 13:46]


"Arduino vs PIC" por jm_araujo
[06 de Outubro de 2019, 13:42]


UTC555D vs NE555N ? por jm_araujo
[03 de Outubro de 2019, 17:57]


Caixa de música por Alhiados
[02 de Outubro de 2019, 00:30]


Trituradora/Destruidora de cartão em tiras por m90mine
[01 de Outubro de 2019, 21:30]


Perfil 30x30 400mm? por brunus
[30 de Setembro de 2019, 23:35]


Carregador Solar para Baterias - EBay por almamater
[20 de Setembro de 2019, 21:57]

Autor Tópico: [Ajuda] Picaxe 40x2 + ds18b20 +ds1307 + lcd03(i2c)  (Lida 40195 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline fre_deri_co

  • Mini Robot
  • *
  • Mensagens: 510
Re: [Ajuda]lcd serial 4x20 (ligação i2c)+ picaxe 40x1
« Responder #150 em: 10 de Outubro de 2010, 00:33 »
eu meti essa linha como comentário pois como não tinha as rotinas criadas ele dava erro, para ver se existia mais falhas entao comentei.... seja como for e erro esta onde eu disse pois ele so envia para o ecrã se as variaveis forem diferentes, e quando apaga o lcd para retomar la iguala-as, logo na rotina seguinte falha o que se pretende
que sempre se partilhe o conhecimento para que sempre se evolua!!!
Frederico Pereira

Offline andre_f_carvalho

  • Mini Robot
  • *
  • Mensagens: 1.469
    • Pro - andrefcarvalho
Re: [Ajuda]lcd serial 4x20 (ligação i2c)+ picaxe 40x1
« Responder #151 em: 11 de Outubro de 2010, 22:58 »
ela estava com comentário, mas mesmo ao seleccionar, não vai para o local correcto

Offline andre_f_carvalho

  • Mini Robot
  • *
  • Mensagens: 1.469
    • Pro - andrefcarvalho
Re: [Ajuda]lcd serial 4x20 (ligação i2c)+ picaxe 40x1
« Responder #152 em: 22 de Abril de 2012, 19:39 »
Boas,


depois de tanto tempo sem mexer nisto voltei a pegar no projecto, mas entretanto existem uns problemas,


antigamente ao enviar o programa para configurar as horas no DS1307 ele escrevia e depois lia a data e hora na boa, mas hoje quando tentei enviar o programa para o mesmo este não dá sinal de vida, ja troquei por um outro e nada, eu tenho o led no pino 7 (SQW) do DS1307 penso que se ele estive-se e funcionar bem pisca segundo a segundo, mas agora fica sempre ligado


alguém já teve este problema com o ds1307?
« Última modificação: 22 de Abril de 2012, 23:55 por andre_f_carvalho »

Offline fre_deri_co

  • Mini Robot
  • *
  • Mensagens: 510
Re: [Ajuda] Picaxe 40x2 + ds18b20 +ds1307 + lcd03(i2c)
« Responder #153 em: 23 de Abril de 2012, 11:10 »
Boas, sinceramente eu tenho andado um pouco ausente disto, mas pelo o que me recordo para o pin 7 piscar a 1Hz tens de lhe dizer isso ao programar, em picaxe da seguinte forma:

writei2c 0, (segundos, minutos, horas, semana, dia, mes, ano, "Piscar")

Sem piscar:
writei2c 0, ($00, $55, $10, $02, $23, $04, $12, $80)
a piscar:
writei2c 0, ($00, $55, $10, $02, $23, $04, $12, $10)

Confirma se deste ordem. seja como for se o DS1307 te devolde so $FF na leitura confirma sa seguinte forma, se ele esta a ser devidamente alimentado, se o cristal esta correcto e conectado (32.768kHz), se estiver bem entao so podera ser do I2C, confirma se nao esta cruzada a linha e se tem as 2 resistencias a fazer pull-up... algo disto estara em falta certamente!!

Se mesmo assim nao der diz que eu ainda hoje monto esse circuito de novo para ver se me esqueço de algo ^^.
que sempre se partilhe o conhecimento para que sempre se evolua!!!
Frederico Pereira

Offline andre_f_carvalho

  • Mini Robot
  • *
  • Mensagens: 1.469
    • Pro - andrefcarvalho
Re: [Ajuda] Picaxe 40x2 + ds18b20 +ds1307 + lcd03(i2c)
« Responder #154 em: 23 de Abril de 2012, 22:26 »



Confirma se deste ordem. seja como for se o DS1307 te devolde so $FF na leitura confirma sa seguinte forma, se ele esta a ser devidamente alimentado, se o cristal esta correcto e conectado (32.768kHz), se estiver bem entao so podera ser do I2C, confirma se nao esta cruzada a linha e se tem as 2 resistencias a fazer pull-up... algo disto estara em falta certamente!!


Se mesmo assim nao der diz que eu ainda hoje monto esse circuito de novo para ver se me esqueço de algo ^^.









eu uso o template que existe no picaxe para programar a rtc isto:


Código: [Seleccione]
'AXE110 BASIC Program to set time/date on DS1307 RTC
'Automatically generated by Wizard




'Make sure DS1307 chip and cell inserted on datalogger module
'and that the cable is in the 'run' position.
'After downloading, status LED will be Green for pass or Red for fail.
'After success, download empty program to PICAXE to prevent
'time being reset on next power-up of board.




'First program the date
   high 5 ' write protect eeprom




   i2cslave %11010000, i2cslow, i2cbyte
   writei2c 0, ($00, $17, $22, $02, $23, $04, $12, $10)
   pause 50




'Now check has been set OK
   let b8 = $02
   let b9 = $23
   let b10 = $04
   let b11 = $12
   let b12 = $10




   readi2c 0, (b0,b1,b2,b3,b4,b5,b6,b7)




   if b7 <> b12 then fail
   if b6 <> b11 then fail
   if b5 <> b10 then fail
   if b4 <> b9 then fail
   if b3 <> b8 then fail
ok:
   high 3
   goto ok
fail:
   high 2
   goto fail


e ele envia o tal $10


não será do i2c do 40x2 nem das resistências pull up porque tenho um lcd 4x20 ligado ao i2c e funciona bem, agora a rtc e que nada, não sei se ja mencionei, mas troquei por outra rtc e e a mesma coisa
« Última modificação: 23 de Abril de 2012, 22:33 por andre_f_carvalho »

Offline fre_deri_co

  • Mini Robot
  • *
  • Mensagens: 510
Re: [Ajuda] Picaxe 40x2 + ds18b20 +ds1307 + lcd03(i2c)
« Responder #155 em: 23 de Abril de 2012, 23:35 »
certo, eu sempre que tive problemas trocava o RTC e mantinha-se, era sempre de outra coisa..
no codigo sempre que vais buscar hora ou escrever no display chamas o novo endereço? qual a frequencia que metes-te o 40x2 a correr??
que sempre se partilhe o conhecimento para que sempre se evolua!!!
Frederico Pereira

Offline andre_f_carvalho

  • Mini Robot
  • *
  • Mensagens: 1.469
    • Pro - andrefcarvalho
Re: [Ajuda] Picaxe 40x2 + ds18b20 +ds1307 + lcd03(i2c)
« Responder #156 em: 24 de Abril de 2012, 18:11 »
a frequencia está a m4 (4mhz).


sim mudo de endereço, como vez

Código: [Seleccione]
'-------------------------------------Menu calendário------------------------------
calend: 'calendário
   let b27=0
   writei2c 0,(0,2,4)
   writei2c 0,(".:Calendario:.")
   pause 20






calend_leit:
'debug
'-----------------ler horas----------
   i2cslave %11010000, i2cslow, i2cbyte 'inicialização da rtc ds 1307
   pause 10
   readi2c 0, (segundos, minutos, horas, semanas, dias, meses, anos)
   pause 10
'-----------------escrita do lcd------------------
   i2cslave $c6, i2cslow_4, i2cbyte 'inicialização do lcd
   pause 10


      writei2c 0,(0,2,27)


         let semanas = bcdtobin semanas
         let dias = bcdtobin dias
         let meses = bcdtobin meses
         let anos = bcdtobin anos
         let horas = bcdtobin horas
         let minutos = bcdtobin minutos
         let segundos = bcdtobin segundos


   bintoascii horas, b19, b19, b20
   bintoascii minutos, b21, b21, b22
   bintoascii segundos, b23, b23, b24
   pause 10
   writei2c 0,(b19, b20,":", b21, b22,":", b23, b24)
   pause 20




      writei2c 0,(0,2,43)


         select semanas
         case 1 writei2c 0,(" Dom")
         case 2 writei2c 0,(" Seg")
         case 3 writei2c 0,(" Ter")
         case 4 writei2c 0,(" Qua")
         case 5 writei2c 0,(" Qui")
         case 6 writei2c 0,(" Sex")
         case 7 writei2c 0,(" Sab")
         endselect


      writei2c 0,(0,2,48)




   bintoascii dias, b21, b21, b22
   bintoascii meses, b23, b23, b24
   bintoascii anos, b25, b25, b26
   writei2c 0,(b21, b22,"/", b23, b24,"/20", b25, b26)
   if pinD.5=1 then voltar 'volta ao menu anterior


   goto calend_leit

Offline andre_f_carvalho

  • Mini Robot
  • *
  • Mensagens: 1.469
    • Pro - andrefcarvalho
Re: [Ajuda] Picaxe 40x2 + ds18b20 +ds1307 + lcd03(i2c)
« Responder #157 em: 27 de Abril de 2012, 16:34 »
nenhuma ajuda?

Offline fre_deri_co

  • Mini Robot
  • *
  • Mensagens: 510
Re: [Ajuda] Picaxe 40x2 + ds18b20 +ds1307 + lcd03(i2c)
« Responder #158 em: 27 de Abril de 2012, 18:24 »
desculpa mas ainda nao me foi possivel testar, pelo o que vejo esta em ordem...

envia as horas para atraves do programador,e depois  envia este codigo, apos enviar este clica "ok" e de seguida F8 (Terminal) se estiver bem definido o RTC iras receber um "debug" da data la inserida!

Código: [Seleccione]
#picaxe 40x2

symbol aux1 = b0
symbol aux2 = b1
symbol aux3 = b2

symbol dias = b3
symbol meses = b4
symbol anos = b5
symbol semanas = b6
symbol horas = b7
symbol minutos = b8
symbol segundos = b9


let segundos = $00
let minutos = $03
let horas = $13
let semanas = $02
let dias = $20
let meses = $02
let anos = $12

i2cslave %11010000, i2cslow, i2cbyte
writei2c 0, (segundos, minutos, horas, semanas, dias, meses, anos)
pause 500

menu:

;Inicializa RTC
i2cslave $D0, i2cslow, i2cbyte

readi2c 0, (segundos, minutos, horas, semanas, dias, meses, anos)


if b15 <> segundos then
let b15 = segundos
goto send
endif

goto menu


send:


semana:
select semanas
case $01 aux1 = "D" aux2 = "o" aux3 = "m"
case $02 aux1 = "S" aux2 = "e" aux3 = "g"
case $03 aux1 = "T" aux2 = "e" aux3 = "r"
case $04 aux1 = "Q" aux2 = "u" aux3 = "a"
case $05 aux1 = "Q" aux2 = "u" aux3 = "i"
case $06 aux1 = "S" aux2 = "e" aux3 = "x"
case $07 aux1 = "S" aux2 = "a" aux3 = "b"
endselect
sertxd (aux1, aux2, aux3, " ")

dia:
aux1 = dias and $F0 / $0F + $30
aux2 = dias and $0F + $30
sertxd (aux1, aux2," ")


mes:
select meses
case $01 aux1 = "J" aux2 = "a" aux3 = "n"
case $02 aux1 = "F" aux2 = "e" aux3 = "b"
case $03 aux1 = "M" aux2 = "a" aux3 = "r"
case $04 aux1 = "A" aux2 = "b" aux3 = "r"
case $05 aux1 = "M" aux2 = "a" aux3 = "i"
case $06 aux1 = "J" aux2 = "u" aux3 = "n"
case $07 aux1 = "J" aux2 = "u" aux3 = "l"
case $08 aux1 = "A" aux2 = "g" aux3 = "o"
case $09 aux1 = "S" aux2 = "e" aux3 = "t"
case $10 aux1 = "O" aux2 = "u" aux3 = "t"
case $11 aux1 = "N" aux2 = "o" aux3 = "v"
case $12 aux1 = "D" aux2 = "e" aux3 = "z"
endselect

sertxd (aux1, aux2, aux3, " ")

ano:
aux1 = anos and $F0 / $0F + $30
aux2 = anos and $0F + $30


sertxd ("20", aux1, aux2,"  ")

hora:

aux1 = horas and $F0 / $0F + $30
aux2 = horas and $0F + $30

if aux1 = "0" then let aux1 = " " : endif
sertxd (aux1, aux2,":")

minuto:

aux1 = minutos and $F0 / $0F + $30
aux2 = minutos and $0F + $30

sertxd (aux1, aux2,":")


segundo:
aux1 = segundos and $F0 / $0F + $30
aux2 = segundos and $0F + $30

sertxd (aux1, aux2)


sertxd (13, 10)
goto menu

que sempre se partilhe o conhecimento para que sempre se evolua!!!
Frederico Pereira

Offline andre_f_carvalho

  • Mini Robot
  • *
  • Mensagens: 1.469
    • Pro - andrefcarvalho
Re: [Ajuda] Picaxe 40x2 + ds18b20 +ds1307 + lcd03(i2c)
« Responder #159 em: 27 de Abril de 2012, 19:14 »
boas,


vou exerimentar, mas entretanto enviei o prog pelo terminal e consegui ver as horas mas estava  a piscar a imagem mas devia ser de estar a limpar o ecra uma das coisas que me deparei foi o programa so correr no picaxe quando tenho o cabo de programaçao ligado ao pc pelo fidi