Close

ARDUINO DUE a LCD 20×4 2004 na I2C – funguje někomu?

Úvodní stránka Fórum Hardware Arduino ARDUINO DUE a LCD 20×4 2004 na I2C – funguje někomu?

Označeno štítky: 

  • Toto téma obsahuje celkem 9 odpovědí. Do diskuze (5 diskutujících) se naposledy zapojil uživatel vfp a poslední změna proběhla před 5 roky a 11 měsíci.
Aktuálně je na stránce zobrazeno 10 příspěvků - 1. až 10. (celkem z 10)
  • Autor
    Příspěvky
  • #11377
    mpcz
    Účastník

    Zdravím, mám prosím dotaz. Tuto kombinaci: ARDUINO DUE (Atmel SAM3X8E ARM Cortex-M3 CPU) a I2C LCD 20×4 display se mi nedaří rozchodit už delší dobu. Výsledkem pokusů je, že LCD je po nahrátí SW do DUE:
    tmavý,
    svítí dva řádky jako čtverečky,
    na každém řádku svítí jen H ze stringu „Hello …“,
    při kompilaci to hodí různé chyby, že něco chybí nebo přebývá,
    při kompilaci to hodí chybu, že požil kód pro např. MEGA i když je nastavena deska DUE. To je evidentní chyba, ale nevím, jak se toho zbavit,
    podle toho, jaké knihovny a verze IDE použiji.
    Adresu mám správně, testováno na 5V i na 3,3V, výsledek stejný. Protože těch rad na netu je již desítky a řešení jsem nenašel, nezbývá, než se zeptat takto:
    Má prosím někdo tuto kombinaci ve funkčním stavu a mohl by zde prosím poradit, jaké IDE, knihovny a test.ino používá?
    Děkuji předem. mpcz, 09.may.2017

    #11381
    RomanB
    Účastník

    Ahoj, nemáš náhodou v lcd.begin(20, 4) nastavenou (2, 4)?

    #11390
    posjirka
    Účastník

    bez kodu nevim ale typnul bych si ze lcd obnovujes tak casto ze nestaci ani vypsat vsechny znaky. to byva bolest nwgativnich (modrych) lcd. bez kodu ale fakt nevim. jeste muze byt problem napetova uroven signalu. due je tusim na 3v3. bacha at si ho neodpalis …

    #11608
    mpcz
    Účastník

    Zdravím,
    tak to jsem nakonec pořešil úpravou SW. Celý problém spočívá ve velkém počtu různých PCB, které vedou piny z chipu na piny LCD.
    Ohmetr, tužka a papír to řeší, pak změna parametrů a jede to.
    Narazil jsem na 4 různé druhy PCB pro jeden chip.
    mpcz, 31.may.2017
    p.s pokud někdo dává rady a varování ohledně odpálení chipu (velmi častá rada), asi přesně neví, jak chodí komunikace na I2C, doporučuji to podrobně prostudovat. Dle mého žádné nebezpečí nehrozí. LCD chodí naprosto bez problémů.

    #11622
    posjirka
    Účastník

    předpokládám, že to „ps:“ je asi na mě.
    No možná by nebylo do věci si to opravdu nastudovat. Obávám se, že na mé straně asi chyba nebude.Já vím jak funguje I2C komuikace a pokud MCU funguje v napěťové hladině 3,3V a ty pojedeš po sběrnici 5V tak ti opravdu hrozí odpálení výstupu. Resp. jeho poloviny při spínání +3,3V. Tady totiž není výstup typu otevřený kolektor …. 🙂 Všechny piny jsou navíc chráněny přes diody na napájecí napětí tzn. pokud tam bude víc než je napájecí napětí, hrozí i odpálení samotného MCU. To ti ani stabilizátor nepobere, protože funguje jednosměrně …..

    No hlavně jsem rád, že máš vyřešeno, třeba to někomu může usnadnit zbytečné pátrání po chybě, kterou vlastně neudělal.

    #11645
    vojjta
    Účastník

    No Due je 3.3V, nicmene na strankach Arduina se lze, dozvede, ze na i2c s 5V zarizenim funguje a nikterak mu to neublizi, tusim, ze ma na SDA pinu pul up resistor, ktery kompenzuje rozdil napeti. Nicmene nevim zda ve vychozim stavu je zapnuty

    #11646
    posjirka
    Účastník

    jo je tam kompenzační odpor, ale já jsem radši opatrný. Jistota je kulomet a pár převodníků odpálených po cca 1-5 měsících už jsem viděl. Podobně je na tom ESP8266. Hodně lidem funguje komunikace UART na 5V … 🙂

    #11649
    mpcz
    Účastník

    Zdravím,
    můj názor je takový:
    Jedná se pouze o to, zda na převodníku I2C-LCD JSOU, či NEJSOU osazené pullupové rezistory, bývají okolo 5kOhm. Na převodnících, které používám nejsou, ostatně není dobré dávat poolupy na Slave, při větším počtu se nám celková hodnota úměrně pokrátí.
    Pokud na převodníku jsou, lze je odpájet a je to pořešené. Zjistíme jednoduše lupou nebo ohmetrem: 5V oproti datové lince.
    Napěťové úrovně jsem dal i na osciloskop a je to tak, na lince běhá úroveň pouze do 3V. Tento problém se samozřejmě týká pouze připojení LCD s 5V na ARDUINO DUE (3V).
    Na Mega2560 atd. není co řešit, obojí je na 5V.
    mpcz, 02.06.2017

    #11652
    vojjta
    Účastník

    moje zkusenost je, ze ono to funguje po nejakou dobu ale postupem casu se to unavi a pak tramtadada do kremikoveho nebe:) nicmene u DUE by to melo byt ok… Osobne tyhle veci resim napetovou delickou 120 Ohm / 240 Ohm, dava to pak krasnych 3.3v;). Na SPI to funguje krasne

    #13680
    vfp
    Účastník

    Měl jsem stejný problém, nakonec byla chyba jen v té I2C adrese. Jak ji zjistit jsem našel bezva jednoduchý script:
    https://forum.arduino.cc/index.php?topic=320188.0

Aktuálně je na stránce zobrazeno 10 příspěvků - 1. až 10. (celkem z 10)
  • Pro reakci na toto téma se musíte přihlásit.