Picaxe a I2C LCD

Odpovědět
propo

Picaxe a I2C LCD

Příspěvek od propo »

Ahojte, chcel by som skusenejsich poprosit o pomoc. Mam asi tyzden 08M2 a ucim sa s nim robit. Nakolko mam niekolko klasickych LCD 2x16, 4x20 tak by som ich chcel skusit pripojit. Docital som sa, ze je ku tomu potrebny prevodnik na serial. Povedzme ze omylom som si miesto prevodnika na serial objednal prevodnik na I2C. Kedze ku tomu prevodniku nemam ziaden navod, tak som ho zapojil podla doporucenia predajcu. Kedze mi to neslo, tak som postupne dosiel na to, ze mam poradie pinov na LCD 15, 16, 1, 2, .... 14 a tipol, ze normalne by asi mali byt 1, 2, 3... 16. Takze som si to upravil a snad to uz mam nadratovane ok. Stale mi to vsak nefunguje a myslim, ze mam problem s adresaciou. Mozete mi prosim poradit kusok kodu s mojou spravnou adresou, kt by mal naozaj fungovat. Pretoze taraz naozaj netusim kde mam hladat chybu. Dakujem :)
udajna adresa mojho modulu - 0x27
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Picaxe a I2C LCD

Příspěvek od AlesH »

Ahoj. Mám sice pár zkušeností s I2C komunikací pomocí PICAXE, ale jen s magnetometrem, IMU a RTC (tedy ne s LCD displejem). Obávám se, že jen těžko poskytnu "kus kódu, který by měl opravdu fungovat". Vždy záleží na konkrétní situaci. Přesto zkusím alespoň pár základních informací. Obecně používám hardwarové I2C piny v PICAXE a příkazy "hi2csetup", "hi2cout" a "hi2cin", nějak takto (detaily viz. manuál PICAXE):

Kód: Vybrat vše

setfreq m32              ; u nastavovani I2C komunikace zalezi na nastavene frekvenci procesoru

hi2csetup i2cmaster, $27, i2cfast_32, i2cbyte  ; inicializace I2C na adrese 0x27 (to "i2cfast_32" musi odpovidat frekvenci procesoru)

hi2cout 0, ( %01010100 ) ; priklad odeslani dat do I2C zarizeni (napr. pro nastaveni modu), adresa zarizeni je dana predchozim hi2csetup

hi2cin 3, ( b1,b0 , b3,b2 , b5,b4 ) ; priklad nacteni dat z I2C zarizeni (6 bajtu od adresy 3), adresa zarizeni je dana predchozim hi2csetup
Ve Tvém případě si ale nejsem jist, jestli problém nemůže být v samotném zapojení mezi převodníkem a LCD, nebo i mezi převodníkem a PICAXE. Podle potřeby sem případně napiš víc podrobnějších informací (např. jestli máš ověřeno, že LCD displej je stále funkční, jaký typ převodníku máš, jestli PICAXE úspěšně komunikuje s převodníkem, atd.).
propo

Re: Picaxe a I2C LCD

Příspěvek od propo »

takze displej mi posledne fungoval. nie som si vedomi ziadneho rizikoveho zapojenia, kt by ho mohlo znefunkcnit. skusal som dva displeje a dva prevodniky. zapojene to mam tak, ze medzi pic a prevodnikom mam prepojene SDA a SCL piny a z nich paralelne 4k7 na +5V.
prevodnik mam "tento" http://www.santy.cz/moduly-c22/arduino- ... -2560-i52/
akurat ze vyzera trosku inac. ci mi bezi komunikacia, to neviem posudit. satial som nepresiel cez adresovanie zariadenia. ked skusam nahrat Tvoj kod, tak mi to hadze hlasku:
hi2csetup i2cmaster, $27, i2cfast_32, i2cbyte ; inicializace I2C na adrese 0x27 (to "i2cfast_32" musi odpovidat frekvenci procesoru)
^
Syntax error on line 3 at/before position 49

Error: Please use full 8 bit slave address (with bit0 clear)

no a zatial netusim co mam urobit :(
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Picaxe a I2C LCD

Příspěvek od AlesH »

Hmm. Mě to "PICAXE Programming Editor" verze 5.4.3 bez problému přeloží ("Syntax Check"). Mám Windows 7. Zkus dát pryč ty komentáře (všechno za středníkem, i ten středník pryč). Na začátek programu ještě můžeš pro jistotu dát direktivu "#picaxe 08M2". Ta adresa je uvedena jako "$27" ("dolar27"). A bacha na ten příkaz "hi2cout", ten je tam jen jako příklad a netuším, co to může udělat konkrétně u Tvého převodníku. Pro začátek stačí, když Ti projde ten příkaz "hi2csetup".
propo

Re: Picaxe a I2C LCD

Příspěvek od propo »

vyskusane a je to tentokrat takato hlaska:
hi2csetup i2cmaster, $27, i2cfast_32, i2cbyte
^
Syntax error on line 3 at/before position 49

Error: Please use full 8 bit slave address (with bit0 clear)
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Picaxe a I2C LCD

Příspěvek od AlesH »

Na PICAXE fóru jsem se dočetl, že Arduino I2C adresy by se měly pro PICAXE "shiftnout" o bit vlevo, takže místo $27 se má použít adresa $4E. Zkus to.

http://www.picaxeforum.co.uk/showthread ... -to-an-LCD

P.S.: Mimo jiné na tom fóru ale píšou, že ovládání tohoto I2C/LCD převodníku je dost složité (u Arduina je ta složitost prý skryta v příslušné Arduino knihovně), takže nevím, jak se s tím PICAXE a Ty "poperete".
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Picaxe a I2C LCD

Příspěvek od AlesH »

Jenom dodám, že pokud jsem to správně pochopil, tak ten "převodník" je zřejmě vlastně jen "port expander", takže do I2C prostě jen zapisuješ jednu osmibitovou hodnotu a tím nastavuješ výstup osmibitového portu toho "převodníku". Vývody toho portu jsou pak zapojeny k vývodům D4 - D7, RS a E paralelního LCD displeje. Ovládací program je pak prakticky stejný, jako při paralelním zapojení, jenom místo 6 drátů vystačíš se dvěma (SCL, SDA). Všechno časování a posloupnosti musíš sám nastavovat programem (ten "expander" to nijak neusnadňuje).

Záleží tedy na vnitřním zapojení "převodníku". Našel jsem různé možnosti, třeba na http://avr.tavir.hu/images/contents/29a.jpg nebo na http://elecfreaks.com/store/download/da ... ematic.pdf (je to ze stránky http://www.elecfreaks.com/wiki/index.ph ... 602_Module ). Podle toho zapojení je pak třeba vhodně nastavovat ten výstupní port. Příklad PICAXE programu při paralelním zapojení je např. na http://technologytutor.co.nz/picaxe-cir ... o-a-picaxe a základní český popis principu je např. na http://www.ddmjihlava.cz/elektro/navody/picaxe_03.html .

Rozchoditelné to tedy určitě je (s PICAXE 08M2), ale bude to dost pracné. Bohužel jsem nikde na netu nenašel "hotové řešení" (PICAXE/expander/LCD). Je to asi celé na Tobě.
propo

Re: Picaxe a I2C LCD

Příspěvek od propo »

vdaka pekne za ochotu. dorazil mi uz seriovy prevodnik ku displeju. takze to i2c asi pustim z hlavy. mozno casom, ked budem o 15 levelov dalej to znovu skusim :) prekvapuje ma aj to, ze vlastne vsetko musim riesit programom. to je skoda. lebo do 08 sa toho vela nezmesti :)
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Picaxe a I2C LCD

Příspěvek od AlesH »

No jo, ta programová složitost plyne z toho, jak "chytrý" nebo "hloupý" je ten převodník ("expander" v sobě holt žádnou "chytrost" nemá). Ten nový sériový převodník na tom může být zcela jinak (nebo taky skoro stejně). Všechno záleží na tom, jaký je to typ. A mimochodem, podle mne se do PICAXE 08M2 vejde docela rozsáhlý program (samozřejmě "relativně"). :)

Držím palce do dalšího vývoje.
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: Picaxe a I2C LCD

Příspěvek od jova »

Osobně používám na zobrazování tento převodník a jsem s ním velice spokojený: http://electromag1.wifeo.com/fabriquer- ... icaxe-.php Pracuje mi na 4řádkovém i 2řádkovém LCD. Prostuduj si ty stránky celé, je tam několik hezkých zapojení a popsané řízení LCD jak sériově, tak paralelně.
Odpovědět