arduino-lcdxpl
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| arduino-lcdxpl [2016/02/29 22:20] – [Sériová linka] djbuldog | arduino-lcdxpl [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 15: | Řádek 15: | ||
| * R/W - výběr režimu čtení/ | * R/W - výběr režimu čtení/ | ||
| * E - signalizace zápisu do registru | * E - signalizace zápisu do registru | ||
| - | * D0-D7 - datové linky, primárně pro předávání kódu znaku (pro EN znaky stačí D4-D7) | + | * D0-D7 - datové linky, primárně pro předávání kódu znaku |
| * A,K - ovládání podsvícení (+anoda, -katoda) | * A,K - ovládání podsvícení (+anoda, -katoda) | ||
| * existuje i verze s i2c rozhraním (na vývody napojen další čip) | * existuje i verze s i2c rozhraním (na vývody napojen další čip) | ||
| + | * rozdíl mezi 4 bit (D4-D7) a 8 bit (D0-D7) režimem by měl být v rychlosti | ||
| + | * pokud se ale předávají celé znaky (ne custom symboly), tak je to [[http:// | ||
| + | * prováděné instrukce (kurzívou jsou označeny instrukce navíc v 4 bit režimu): | ||
| + | * put the data in a register | ||
| + | * //output the upper four bits of datadata// | ||
| + | * //pulse the enable line// | ||
| + | * // | ||
| + | * //shift or otherwise manipulate the data// | ||
| + | * output the data | ||
| + | * pulse the enable line | ||
| + | * wait until the controller is ready for the next byte of information | ||
| ===== kód pro LCD ===== | ===== kód pro LCD ===== | ||
| Řádek 44: | Řádek 55: | ||
| </ | </ | ||
| + | ==== problémy ==== | ||
| + | * občas se mi stává, že z LCD zmizí všechny znaky | ||
| + | * udělá to při překreslení obrazovky (po stisku tlačítka nebo otočení enkodéru) | ||
| + | * většinou tomu předchází delší neaktivita | ||
| + | * nepřišel jsem na příčinu, ale opravuji to pomocí zavolání '' | ||
| ===== Sériová linka ===== | ===== Sériová linka ===== | ||
| Řádek 73: | Řádek 89: | ||
| * pro zápis existuje i funkce '' | * pro zápis existuje i funkce '' | ||
| + | ==== problémy ==== | ||
| + | |||
| + | * pokud se k arduinu připojím přes sériovou linku a zase odpojím, tak se něco změní | ||
| + | * zápis na linku přes arduino začne blokovat další kód (čekat) | ||
| + | * zjistil jsem, že wirte buffer sériové linky je 64 znaků | ||
| + | * jakmile jej vyčerpám, zápis čeká na nějaký timeout | ||
| + | * situaci lze detekovat pomocí '' | ||
| ===== Rotační enkodéry ===== | ===== Rotační enkodéry ===== | ||
| - | * zkusil jsem použit knihovnu [[https:// | + | * zkusil jsem použit knihovnu [[https:// |
| * je k dispozici ve správci knihoven v Arduino IDE | * je k dispozici ve správci knihoven v Arduino IDE | ||
| * použití je velice jednoduché, | * použití je velice jednoduché, | ||
| Řádek 83: | Řádek 106: | ||
| * '' | * '' | ||
| * doporučuje se oba piny připojit na digitální vstup s interrept | * doporučuje se oba piny připojit na digitální vstup s interrept | ||
| - | * u leonarda (pro micro) [[https:// | + | * u leonarda (pro micro) [[https:// |
| + | * knihovna je velice chytrá a sama pozná, zda zadané piny jsou interrupt ready :) | ||
| + | |||
| + | * čítač počítá všechny přechody, | ||
| + | * tzn. že jedno lupnutí odpovídá vlastně číslu 4 | ||
| + | * abych eliminoval chyby, tak číslo 4 beru jako jednu otáčku | ||
| + | * u AVR ATmega8 jsem používal jen jeden přechod, ten nejlepší | ||
| + | * k interrupt pinu mám připojen jen jeden rotační enkodér, jedním drátem, a chová se to fakt lépe | ||
| + | * na druhém jsem měl připojeny kondenzátory a mám pocit, že to bez nich funguje lépe (u ATmega8 to bylo naopak) | ||
| + | ===== Více tlačítek ===== | ||
| + | * připojit na analog (ADC) | ||
| + | * na analog pin lze připojit reálně až 20 tlačítek | ||
| + | * stačí každé připojit přes jiný odpor (na zem) - stisk generuje jiné napětí | ||
| + | * nelze detekovat stisk více tlačítek - detekuje se to s nejnižším odporem | ||
| + | * je třeba počítat s tím, že napětí kolísá - například podle množství odebíraného proudu, takže se musí stanovit určitý rozsah napětí | ||
| + | * průběh stisku nebývá dokonalý (odpor při nedomáčknutí), | ||
| + | * zdroje | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * https:// | ||
arduino-lcdxpl.1456780832.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
