Zbyšek Voda
Vytvořené odpovědi
-
AutorPříspěvky
-
Zbyšek VodaSprávce
Když se koukám do návodu, tak ani nemusíte odpojovat shield. Stačí při programování přepnout oba přepínače na shieldu do pozice OFF. Potom naprogramujete Arduino (takže zvolíte desku Arduino UNO) a přepnete přepínače zpět na ON. Podrobněji je postup popsán ZDE.
Myslím si, že ta propojka není nutná. Zkuste to bez a uvidíte 🙂
Zbyšek VodaSprávceZkuste na čas programování rozpojit sériovou linku, popřípadě úplně odpojte celý shield.
Programování totiž probíhá tak, že USB převodník převádí „příkazy“, které přicházejí z PC a posílá je přes sériovou linku do čipu Arduina. Jelikož ale k této sériové lince máte připojené i ESP, může to způsobovat problémy.Zkuste to a uvidíme 🙂
Zbyšek VodaSprávceDobrý den,
samotné Arduino vám tedy funguje v pořádku (třeba na blikání LED)?Zkoušel jste postupovat podle návodu k setu?
Zbyšek VodaSprávceNe všechny datové signály můžete připojit přímo…
TX ESP můžete na RX Arduina připojit – 3.3V je na příjmu identifikována pořád jako 1.
Ale opačný směr (TX Arduina -> RX ESP) už je nutné připojit přes rezistor/dělič!Sériová linka Arduina funguje na 5V, kdežto sériová linka ESP na 3.3V.
Zbyšek VodaSprávceDobrý den, TFT displeje často používají 16-bit barevný režim.
Podívejte se sem – http://www.willamette.edu/~gorr/classes/GeneralGraphics/imageFormats/. Pod „16 bit color“ je tam tento režim popsaný.Zkráceně: Jak to funguje?
Na popis barvy máte celkem 16 bitů. 5 na červenou, 6 na zelenou, 5 na modrou (lidské oko je na zelenou citlivější, proto má o jeden bit více). Bity jsou uspořádány takto:|r|r|r|r|r|g|g|g|g|g|g|b|b|b|b|b|
Jak dosáhnout barev?
Na červenou a modrou máte 5 bitů – tedy hodnoty 0 – 31
Na zelenou 6 bitů – 0 – 63Kod:
uint16_t barva(int r, int g, int b){ r = r % 32; g = g % 64; b = b % 32; r = r << 11; g = g << 5; return r | g | b; }
Tedy
uint16_t(0,0,0)
vrátí hodnotu černé.Zbyšek VodaSprávceSouhlasím s Posjirka. Co jsem četl po cizojazyčných fórech, tak ESP sice 5V snese, ale většinou ne na dlouho.
Můžete zkusit s ESP komunikovat na různých rychlostech. Vyzkoušejte všechny možné – od 9600 po 115200. Rychlost komunikace se může lišit podle typu firmware – většinou to je jedna z: 9600, 57600, 115200.
Zbyšek VodaSprávceDobrý den,
Arduino většinou běží na 5V, ESP na 3.3V. ESP můžete napájet z 3.3V pinu arduina, ale také potřebujete úrovně převést na sériové lince (RX, TX).Dá se to udělat pomocí děliče napětí, ale spolehlivější je nějaký převodník, například: http://www.hwkitchen.com/products/logic-level-converter/
Zbyšek VodaSprávceZbyšek VodaSprávcePošlete sem prosím fotku toho senzoru, děkuji.
Je to čidlo na měření vzdušné vlhkosti, nebo vlhkosti půdy?Zbyšek VodaSprávceDobrý den, v první řadě musíte uvést typ senzoru (nějaké číslo, označení…). Bez toho se dál nedostaneme.
Zbyšek VodaSprávceDobrý den, té „děravé desce“ se říká nepájivé kontaktní pole a slouží právě k tvorbě obvodů bez nutnosti pájení.
Po obvodu desky jsou vetšinou piny propojené ve dvou řadách. Poté obsahuje deska „uprostřed“ spoustu sloupců pinů, které jsou vzájemně propojené. Asi nejlépe je princip patrný z obrázku – viz ZDE.
Tedy tím, že zastrkáte nožičky součástek do patřičných sloupců je propojíte a můžete tak sestavovat obvody 🙂
Zbyšek VodaSprávceDobrý den, tu tvorbu grafu z dat ukazuji třeba zde: https://bastlirna.hwkitchen.cz/programovani-webovych-rozhrani-pro-arduino/
Zbyšek VodaSprávceDobrý den, něco podobného chystám. Nebude to hned, ale dostanu se k tomu 🙂
Zbyšek VodaSprávceTakže to bude spíš něco jako:
if(Serial.available()){ prijato = Serial.read(); if(prijato == start){ prijato = Serial.read(); while(prijato != stop){ prijato = Serial.read(); //zpracování přijatých dat } } }
Zbyšek VodaSprávceŘekl bych, že tím Posjirka myslel to, že si vyberete dva znaky, které budou ohlašovat začátek a konec posílaného řetězce – ty budou vždy stejné, ať budete posílat cokoliv.
Aby nemohlo dojít k tomu, že budete posílat data, která by mohla obsahovat počáteční, či koncový znak, navrhuje použít netisknutelné znaky – například ty, které mají v ASCII tabulce hodnotu 1 a 2. char(1) a char(2) tedy reprezeentují dva znaky s touto hodnotou.
Mějme tedy dva znaky:
char start = char(1); char stop = char(2);
Obě strany pak budou vědět, že to, co přijaly mezi znaky 1 a 2 je požadovaná zpráva.
Tedy pošlete start data stop.Lepší? 🙂
-
AutorPříspěvky