Display a RTC obvod
Display a RTC obvod
Dobrý den,
Mám prosbu ohledně obvodu které jsou na obrazku.Sháním někoho kdo mě poradí jak na to? Jak to zapojit, a trochu pomohl to rozchodit. Komunikovat klidně přes e-mail.
Mockrát Děkuji
Mám prosbu ohledně obvodu které jsou na obrazku.Sháním někoho kdo mě poradí jak na to? Jak to zapojit, a trochu pomohl to rozchodit. Komunikovat klidně přes e-mail.
Mockrát Děkuji
Re: Display a RTC obvod
Ahoj. Tyto dva konkrétní typy modulů jsem sice nikdy neměl v ruce, ale pár I2C zařízení jsem už k PICAXE připojil a rozchodil, takže to spolu můžeme prodiskutovat (raději tady na fóru, ať z toho něco mají i další případní čtenáři).
Základní princip připojení PICAXE k I2C zařízením (konkrétně k RTC DS1307) je dobře popsán např. na http://www.bristolwatch.com/picaxe/serial_i2c_demo.htm . Tvůj RTC modul sice obsahuje obvod DS3231, ale i k němu se určitě podaří dohledat potřebné informace (hlavně I2C adresu a kódy ovládacích příkazů). I2C adresu a ovládací kódy bude třeba najít i ke Tvému LCD modulu (mělo by to být na příslušné stránce u prodejce toho modulu). Pro zprovoznění v zásadě stačí propojit napájení (pozor na dovolené hodnoty) a signály SDA a SCL mezi PICAXE a moduly. Pak už je možno začít programovat (nebo převzít dostupné programy z netu), ladit a testovat. V I2C PICAXE programech jsou zásadní příkazy "i2cslave" (nastavení komunikace), "writei2c" (řídicí příkazy) a "readi2c" (čtení hodnot).
Jdeš do toho?
Odkazy na další informace:
http://elecurls.tripod.com/i2c-codes-for-picaxe.htm
https://solarbotics.com/download.php?file=1841
http://www.picaxe.com/Circuit-Creator/I ... ck-DS1307/
http://www.picaxeforum.co.uk/archive/in ... 21872.html
viewtopic.php?f=14&t=327 (česky, zde na fóru)
viewtopic.php?f=14&t=282 (česky, zde na fóru)
Základní princip připojení PICAXE k I2C zařízením (konkrétně k RTC DS1307) je dobře popsán např. na http://www.bristolwatch.com/picaxe/serial_i2c_demo.htm . Tvůj RTC modul sice obsahuje obvod DS3231, ale i k němu se určitě podaří dohledat potřebné informace (hlavně I2C adresu a kódy ovládacích příkazů). I2C adresu a ovládací kódy bude třeba najít i ke Tvému LCD modulu (mělo by to být na příslušné stránce u prodejce toho modulu). Pro zprovoznění v zásadě stačí propojit napájení (pozor na dovolené hodnoty) a signály SDA a SCL mezi PICAXE a moduly. Pak už je možno začít programovat (nebo převzít dostupné programy z netu), ladit a testovat. V I2C PICAXE programech jsou zásadní příkazy "i2cslave" (nastavení komunikace), "writei2c" (řídicí příkazy) a "readi2c" (čtení hodnot).
Jdeš do toho?
Odkazy na další informace:
http://elecurls.tripod.com/i2c-codes-for-picaxe.htm
https://solarbotics.com/download.php?file=1841
http://www.picaxe.com/Circuit-Creator/I ... ck-DS1307/
http://www.picaxeforum.co.uk/archive/in ... 21872.html
viewtopic.php?f=14&t=327 (česky, zde na fóru)
viewtopic.php?f=14&t=282 (česky, zde na fóru)
Re: Display a RTC obvod
Moc Děkuju,doufám že vás nebudu otravovat
Snažím se zatím sparovat PICAXE a RTC.Prohledal jsem tvoje odkazy a našel jsem tam nějakou tu adresu. Už se mi to nějak povedlo aby RTC posílal něco zpět, když nahraju program do Chipu tak debug mi posíla bity zpět ale (b1) co má počítat vteřiny tak počíta do 90 a občas poskočí třeba o pět. Jestli nemám špatně nastavenou frekvenci.mám tam tento program:
hi2csetup i2cmaster, %11010000 , i2cslow, i2cbyte
start:
hi2cin 0,(b1,b2,b3,b4,b5,b6,b7)
debug
pause 900
toggle c.4
goto start
Snažím se zatím sparovat PICAXE a RTC.Prohledal jsem tvoje odkazy a našel jsem tam nějakou tu adresu. Už se mi to nějak povedlo aby RTC posílal něco zpět, když nahraju program do Chipu tak debug mi posíla bity zpět ale (b1) co má počítat vteřiny tak počíta do 90 a občas poskočí třeba o pět. Jestli nemám špatně nastavenou frekvenci.mám tam tento program:
hi2csetup i2cmaster, %11010000 , i2cslow, i2cbyte
start:
hi2cin 0,(b1,b2,b3,b4,b5,b6,b7)
debug
pause 900
toggle c.4
goto start
Re: Display a RTC obvod
Mě to běhá s tímto programem.
Mám tam, ale jiné LCD tak si to budeš muset upravit pro sebe.
Já ten tvůj sériový řadič LCD nerozchodil tak jsem šel do jiného.
Možná tam budou ještě nějaké příkazy navíc.
Mám tam, ale jiné LCD tak si to budeš muset upravit pro sebe.
Já ten tvůj sériový řadič LCD nerozchodil tak jsem šel do jiného.
Možná tam budou ještě nějaké příkazy navíc.
Kód: Vybrat vše
start0:
symbol baud=N4800
symbol seconds = b0
symbol mins = b1
symbol hour = b2
symbol day = b3
symbol date = b4
symbol month = b5
symbol year = b6
symbol control = b7
; naprogramování času, datumu
i2cslave %11010000, i2cslow, i2cbyte
let day = $14 ; 03 Note all BCD format
let year = $15 ; 03 Note all BCD format
let month = $02 ; 12 Note all BCD format
let date = $14 ; 25 Note all BCD format
let hour = $19 ; 11 Note all BCD format
let mins = $50 ; 59 Note all BCD format
let seconds = $10 ; 00 Note all BCD format
; writei2c 14, ($0) ' DS3231 turn on $0 1hz pin3, turn off $4
; writei2c 0,(seconds,mins,hour,day,date,month,year,control)
; načtení času
readi2c 0,(seconds,mins,hour)
if b0>10 then gosub s10
if b0>19 then gosub s20
if b0>29 then gosub s30
if b0>39 then gosub s40
if b0>49 then gosub s50
if b1>10 then gosub m10
if b1>19 then gosub m20
if b1>29 then gosub m30
if b1>39 then gosub m40
if b1>49 then gosub m50
if b2>10 then gosub h10
if b2>19 then gosub h20
serout c.4, baud, (254,128)
serout c.4, baud, ("CAS")
serout c.4, baud, (254,134)
serout c.4, baud, (":")
serout c.4, baud, (254,137)
serout c.4, baud, (":")
if b2<10 then serout c.4, baud, (254,132) serout c.4, baud, ("0",#b2)endif
if b2>9 then serout c.4, baud, (254,132) serout c.4, baud, (#b2)endif
if b1<10 then serout c.4, baud, (254,135) serout c.4, baud, ("0",#b1)endif
if b1>9 then serout c.4, baud, (254,135) serout c.4, baud, (#b1)endif
if b0<10 then serout c.4, baud, (254,138) serout c.4, baud, ("0",#b0)endif
if b0>9 then serout c.4, baud, (254,138) serout c.4, baud, (#b0)endif
serout c.4, baud, (254,192)
if b9<10 then serout c.4, baud, ("0")endif
if b9<100 then serout c.4, baud,("0")endif
serout c.4, baud, (#b9)
serout c.4, baud, (254,212)
if b8<10 then serout c.4, baud, ("0")endif
if b8<100 then serout c.4, baud,("0")endif
serout c.4, baud, (#b8)
goto start0
s10: b0=b0-6
return
s20: b0=b0-6
return
s30: b0=b0-6
return
s40: b0=b0-6
return
s50: b0=b0-6
return
m10: b1=b1-6
return
m20: b1=b1-6
return
m30: b1=b1-6
return
m40: b1=b1-6
return
m50: b1=b1-6
return
h10: b2=b2-6
return
h20: b2=b2-6
return
start1:
readadc c.0,b8
readadc b.5,b9
goto start1
Re: Display a RTC obvod
Pro Petra: Řekl bych, že Ti program funguje dobře a také zapojení bude OK. Je skoro jisté, že RTC obvod vrací hodnoty v BCD kódu, kdy každé 4 bity reprezentují jedno (dekadické) číslo. Proto to počítá do 9, pak to skočí na 16 (což je hexa 0x10) atd. Pro další zpracování budeš muset ten načtený BCD kód převést na dekadický standard pomocí PICAXE příkazu BCDTOBIN. Příklad použití je v ukázkovém programu na https://solarbotics.com/download.php?file=1841 .
Stačí tedy převést ty hodnoty pomocí BCDTOBIN a máš hotové (a funkční) čtení dat z RTC.
P.S.: Teď koukám, že BCDTOBIN zřejmě umí jen PICAXE řady X1 a X2. Pokud máš jiný typ PICAXE, tak to budeš muset převést jinak. Například jako na http://www.picaxeforum.co.uk/showthread ... to-decimal
Stačí tedy převést ty hodnoty pomocí BCDTOBIN a máš hotové (a funkční) čtení dat z RTC.
P.S.: Teď koukám, že BCDTOBIN zřejmě umí jen PICAXE řady X1 a X2. Pokud máš jiný typ PICAXE, tak to budeš muset převést jinak. Například jako na http://www.picaxeforum.co.uk/showthread ... to-decimal
Re: Display a RTC obvod
Proto je ten můj program tak "složitý"AlesH píše:...Je skoro jisté, že RTC obvod vrací hodnoty v BCD kódu, kdy každé 4 bity reprezentují jedno (dekadické) číslo. Proto to počítá do 9, pak to skočí na 16 (což je hexa 0x10) atd. ...
Re: Display a RTC obvod
TO: Petr087 Už jsi rozchodil ten převodník LCD?
Re: Display a RTC obvod
Cau, dneska si už stím hraju asi 4 hodiny a nic se mi nepovedlo. Dispaly by měl mít adresu 0x27
Když ho dám pod napětí a nahraju program tak tam furt svití viz obrázek. Mohl by jste mě někdo na vést jak dál.
Když ho dám pod napětí a nahraju program tak tam furt svití viz obrázek. Mohl by jste mě někdo na vést jak dál.
Re: Display a RTC obvod
Ahoj. Ten obrázek toho moc neřekne. Popiš sem svoje zapojení a dej sem i ten program se kterým to zkoušíš (i pro jaké je to PICAXE). Jinak Ti nedokážu poradit (snad jen že jako test můžeš zkusit I2C adresu 0x4E, protože PICAXE někdy používá adresu "shifnutou" o jeden bit vlevo oproti adrese uváděné pro Arduino).
P.S.: informace (anglicky) o spolupráci PICAXE s Tvým I2C LCD modulem jsem našel např. na
http://letsmakerobots.com/content/drive ... 74-and-i2c
http://www.picaxeforum.co.uk/showthread ... play/page2
(nebo http://www.picaxeforum.co.uk/archive/in ... 23471.html )
P.S.: informace (anglicky) o spolupráci PICAXE s Tvým I2C LCD modulem jsem našel např. na
http://letsmakerobots.com/content/drive ... 74-and-i2c
http://www.picaxeforum.co.uk/showthread ... play/page2
(nebo http://www.picaxeforum.co.uk/archive/in ... 23471.html )
Re: Display a RTC obvod
Schéma zapojení je v příloze. A program který používam není ani program. Já to asi totiž nechápu.
;Display
hi2csetup i2cmaster,0x4E,i2cslow,i2cbyte
start:
pause 2000
hi2cout 3,(19,3)
goto start
;Display
hi2csetup i2cmaster,0x4E,i2cslow,i2cbyte
start:
pause 2000
hi2cout 3,(19,3)
goto start