GabrielM
Vytvořené odpovědi
-
AutorPříspěvky
-
vlada@liskovic.cz
ÚčastníkDíky moc.
Zkusím se tím prokousat 🙂 Je pravda, že ta knihovna asi bude i dost veliká, protože kompilace překvapivě trvá skoro minutu, takže procesor tam fak má co dělat 🙂 Pokud se mi to nepovede, strčím tam jednoduchý displej, se kterým nikdy problém nebyl a ne ten líbivý OLED 🙂Leo
ÚčastníkTak zkouším a zatím níc.
Dobra hračka na zimu 🙂
Doporučte nějaký displej s dotykačem se kterým mate zkušeností?
Co toto?
https://www.aliexpress.com/item/Free-shipping-LCD-Display-Module-TFT-3-95-inch-TFT-LCD-screen-for-Arduino-UNO-R3/32553219693.html?spm=2114.01010208.3.18.93zuTj&ws_ab_test=searchweb0_0,searchweb201602_5_10056_10065_10068_10055_10054_10069_10059_10078_10079_10073_10017_10080_10070_10082_10081_10060_10061_10052_10062_10053_10050_10051,searchweb201603_3&btsid=e2332ead-f0a0-48c5-b600-2376304bf773Zbyšek Voda
ÚčastníkDobře, díky. Původně jsem myslel, že jde o konflikt pinů, ale tím to asi není.
Kód pro ten enkodér mi přijde podivný, ale jestli vám to takto funguje samotné, tak OK.Problém bude v tom, že funkce knihovny pro obsluhu displeje (u8g.firstPage(), draw()…) vždy nějakou dobu trvají. Ony si vlastně seberou procesor pro sebe a ten pak nezjišťuje, jestli melete enkodérem – to zjišťuje až ve chvíli, kdy přijde řad na funkce digitalRead() apod..
Vy tedy musíte nějak zajistit, aby procesor změny na pinech z enkodéru neignoroval. Pro tento účel se používá tzv. přerušení (anglicky interrupt) – na pinech, na kterých máte enkodér připojený si nastavíte přerušení a při změně těchto pinů dojde k donucené obsluze tohoto přerušení – takže pohyby enkodérem procesor nebude přehlížet.
O přerušeních se můžete dočíst více zde. Musíte si dát pozor na to, abyste použil piny, které přerušení podporují – u UNO jsou to piny 2 a 3. Také pozor na to, že se přerušení nastavují pomocí jejich čísla a ne čísla pinu. Ke správnému zjištění čísla přerušení z čísla pinu slouží funkce digitalPinToInterrupt(interruptPin).
Potom samotné použití přerušení s enkodérem je popsáno zde – hledejte sekci Interrupt Example (the Encoder interrupts the processor). Uses both Interrupt pins.
vlada@liskovic.cz
ÚčastníkA jo, pardon, vůbec mi to nedošlo, Uno 🙂
Zbyšek Voda
ÚčastníkAle klon jaké desky? 🙂 UNO, Leonardo…?
vlada@liskovic.cz
Účastníknějaký CH340 klon, konkrétně jsem zkusil dva různé. Zatím s nimi v ničem nebyly problémy (krom toho, že shazovaly mac osx 🙂 Můžu to zkusit i s originálem, ale musím ho vyndat – je zabudovaný jinde 🙁
Zbyšek Voda
ÚčastníkDobrý den, jakou Arduino desku máte?
Luke_CZ
ÚčastníkTo:Kice
Abych jen nehanil 1-wire, tak je přesné,jednoduché na zapojení a má dobrou podporu.
Pokud jde o negativa 1-wire (MicroLAN):
1, nutnost konverze přijímaných dat, samozřejmě čím nižší přesnost, tím vyšší rychlost konverze, příklad:
12bit – 750ms
9bit – 94ms
Ta je nutná pro každé jednotlivé čidlo.
Řešeno zde.
2, maximální délka sběrnice dle výrobce cca 200m, ale to samozřejmě platí v ideálním prostředí.
Řešeno zde.Tedy, pokud budeš měřit teplotu v jedné místnosti, či nedaleko, tak je 1-wire OK, pokud však potáhneš dráty na delší vzdálenost, či v zarušeném prostředí (stačí nabíječka na mobil, či dráty souběžně s AC), tak se ohlédni raději po odolnější sběrnici např. RS485 (převodník stojí pár korun).
L.
posjirka
Účastníkjen že jsem na to narazil, tak dávám sdílet.
Chápu že to není nic extra, ale kdo ví …Kice
ÚčastníkTo: Luke_CZ
Čo si myslel tým: „nebo nedejbože DS18B20“ ?
Uvažujem ho použiť na meranie teploty miestnosti a okrem velkosti puzdra (tepelná zotrvačnosť), ma nenapadá iná nevýhoda. Tak by som rád poznal nevýhody, nech nejdem nesprávnou cestou.
Dík.Aleš
ÚčastníkJestli odpovídá obrázek z ebay, tak při pokusech musíš dodržet v programu toto:
#define LCD_RST A4
#define LCD_CS A3
#define LCD_RS A2
#define LCD_WR A1
#define LCD_RD A0#define LCD_D0 8
#define LCD_D1 9
#define LCD_D2 2
#define LCD_D3 3
#define LCD_D4 4
#define LCD_D5 5
#define LCD_D6 6
#define LCD_D7 7Každý displej shield je zapojený trochu jinak, některé používají A1 až A5, nebo různě přeházené. Potom se to chová tak, jako vám. Nic to neukazuje.
Takže v testovacích programech používat toto nastavení, a potom hledat různé knihovny, až se to s některou chytne.Leo
ÚčastníkA na github je přimo Modified UTFT library working with ILI9327 8-bit for example 3.5
https://github.com/dgolda/UTFTZkoušel jsem ho tak jak jsem ho stahl i přepsat UTFT-master\tft_drivers\ili93\initlcd.h tím jeho kodem.
Ani nemrk.
Co mužu dělat špatně?ArduXPP
ÚčastníkProdávající tam informuje, že byl displey testován ILI9327 ,
Leo
ÚčastníkTak jedine co se mi na tom podařilo rozjet je Mcufriend_kbv_2.8
Je to ale uplně světle a displej blika.:(Vojtěch Vosáhlo
ÚčastníkTak supr, pak napiš jestli to pomohlo, já myslel že je rušení z relé…
Dík, vím co ferit je ale nebyl jsem si jistej jak je to v češtině, znám to hlavně v angličtině ?TgmMrrCZ
ÚčastníkPo rozmluvě s jedním známým co se živí návrhem masážních van zkusím dostat RC člen opravdu přímo na motor. Ve vodě se prý EM nešíří, ale i těch cca 30cm kabelu co koukalo z nádrže funguje jako anténa která šíří EM pulzy všude.
Ještě jednou, není problém s relé ani jeho cívkou, to je všechno vyzkoušené. Jde o rušení z toho motorku při zapnutí/vypnutí.
Vojta : Feritové jádro je takovej ten váleček co bejvá u monitoru, televize atd na flexošňůře?
Aleš
ÚčastníkBaterku jsem myslel jenom na vyzkoušení. Tím se zjistí, kudy se to rušení do arduina dostává.
Vojtěch Vosáhlo
ÚčastníkProkoukl jsem ňejaká ta fóra a zkusil bych přinejmenším několik věcí. Hlavně asi ten optoizolátor jak psali ostatní. Mimochodem pokud je indukce z cívky na relé, mohlo by být dobré řešení SSR relé. To by se mělo indukce zbavit nadobro. Jinak kondík a feritové jádro (snad je to tak česky) by mohli taky pomoct.
Schéma vypadá jako úplnej standard.
Edit: To rušení by se mohlo k procesoru dostávat i z cívky relé. Doporučil bych odizolovat to relé a pak se uvidí.TgmMrrCZ
ÚčastníkAsi takhle :
http://imgur.com/a/8Ea5S
Baterku na 12V nějakou mám tak to zkusím napájet přes ní. Chápu to správně, že navrhujete aby sem jí tam měl napořád a ona pak vlastně bude dělat oddělení od trafa 230V přes které se asi nese to rušení?
TgmMrrCZ
ÚčastníkPáni, přijdu z oběda na odpolední a takovejch odpovědí 🙂
Udělám takovej malej výcuc, vím že je to dlouhý ale všechny věci o kterých píšete tam jsou, takže TL:DR :
Výstup z Arduina => mosfet => 12V DC relé => Pumpa 230V. Cívka relé je napájena z trafa 230/12 které napájí obě Arduina, přes relé je to oddělené od 230V. Na výstupu z relé mám zásuvku, když z ní vyndám čerpadlo relé cvaká a čipy běží (repro nelupe). S lampičkou místo čerpadla – 60W odporová zátěž se taky nic neděje.
Schéma dodám za pár chvil, jsem v práci a každou chvíli po mě někdo něco chce 🙂
PS : Tahle chybka s indukční zátěží není až zas tak neobvyklá, na netu se to docela řeší ale já sem zatim nenašel nic spolehlivýho.
https://www.google.cz/search?q=arduino+freeze+230v&ie=utf-8&oe=utf-8&client=firefox-b&gfe_rd=cr&ei=zYT_V4SUJ6Hs8weh6KbIBALeo
ÚčastníkZjistěte si, jestli je na displeji opravdu řadič ili9488 jak píšou. Já tam mám ili9341
To zjistím jak?
Nahoře je info s te utility LCD_ID_readreg.ino.
reg(0x00BF) 01 01 22 15 81 00 ILI9481, HX8357-B
reg(0x00D3) 03 03 24 04 ILI9341, ILI9488Změřte si, kam máte zapojené signály.
Jak to změřím? Měřak mam.
Propojím displej s arduinem 3V3,5V a GND a proměřít piny.
Ale jak poznam, který je ktrý?Aleš
Účastník1. Stáhněte si knihovnu Adafruit_TFTLCD
2. Změřte si, kam máte zapojené signály. Já mám např:
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // (RS)Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino’s reset pin
3. Zjistěte si, jestli je na displeji opravdu řadič ili9488 jak píšou. Já tam mám ili9341
Hrál jsem si s tím asi 3 dny, než jsem ho rozchodil. Postahoval jsem snad všechny knihovny, které na internetu jsou, ale nakonec se to podařilo 🙂Attachments:
Luke_CZ
ÚčastníkTakže:
1, odrušení elektromotoru – ano řeší se RC členem
2, napájení arduina – jak to máš řešený? Bez schématu ti těžko někdo poradí, vypadává to při sepnutí, nebo vypnutí?
3, spínání AC – určitě dej galvanické oddělení (optočlen, relé)Vojtěch Vosáhlo
ÚčastníkPřesně tak. Chtělo by to zjistit co to resetuje a případně to izolovat od AC.
Aleš
ÚčastníkZkoušel jste ta arduina napájet z baterek? Jak se to bude chovat?
Luke_CZ
ÚčastníkA co to oddělit optočlenem a tím spínat ten MOSFET?
Vojtěch Vosáhlo
ÚčastníkZajímavý je že je indukce tak velká, a že něco takového může zaseknout arduino. Předpokládám že zdroj toho zaseknutí bude napájení arduina ze sítě. Nemohl by pomoci třeba DC/DC izolovaný měnič před arduinem nebo zenerova dioda jako svodič těchto špiček na zem? Abych řekl pravdu tak o indukci moc nevím a ty rady co jsem napsal neřeší praskání v reproduktorech a další problémy. Mohlo by to ale vyřešit resety arduina.
Držím palce ?pardalos
ÚčastníkZkus sen hodit zdrojový kód. Klidně můžeme komunikovat. Začínám se tomuto problému nyní věnovat. Chtěl bych rozchodit jak Ethernet shield tak modul co mám doma. Možná potom WIFI modul :).
Ladis_Kv
ÚčastníkDíky za názor,ale obávám se že lankový snímač by mi byl k ničemu.Jak jsem psal dříve,tak převážně se mi jedná zatím o roztahování a zatahování žaluzii podle denního světla.
Takže vytahovat zatím nebudu.Ale možná do budoucna se to bude hodit.
díkyCuore
ÚčastníkObávám se, že encoder je cesta do pekel. Budeš tam mít spoustu mechanických vůli a čím dáš encoder blíž k motoru, tím bude proměřování větší. Takže zbytečná práce. V průmyslu se na tyto aplikace používají tzv. Lankové snímače což je kombinace encoderu a lankového bubnu. Konec lanka připevníš na spodní lištu žaluzií a měříš přesnou polohu.
-
AutorPříspěvky