Elektronika, ukázky pro STM8S103F3, plus programování v assembleru. |
|
S modulem DHT-22, nebo AM2302 (DHT-11) jsem si pohrál a následující kód pro práci s ním je funkční. Alespoň u mne :-). Časování procesoru je zde
nastaveno na 2MHz. CPU rychlost ovlivňuje i čtení z čidla, kde je časování kritické. IO pin zde je PA1. Je možné to samozřejmě změnit.
V tomto kodu se čtení z DHT provádí na základě timeru, po spuštění ihned, pak každých cca 15 minut. Při checksum error se čtení opakuje po
několika vteřinách. Pokud čidlo nebude komunikovat vůbec, bude po volání čtení nastaven příznak overflow. Postup pro čtení dat:
Tato ukázka kódu je primárně určená pro DHT-22 (AM2302), ale po malé úpravě je možné ji aplikovat i na jednodušší DHT-11. Rozdíl je hlavně v tom, že DHT-22 i AM2302 vrací hodnotu teploty a vlhkosti jako word (2 byte) v destinách stupňů, či procent. U jednodušší DHT-11 vraci u teploty i vlhkosti dva byte, kde první byte jsou celá čísla a druhý byte mají být desetiny. Tyto však obsahují buď nulu, nebo velmi malou hodnotu. Je možné je ignorovat a zobrazovat pouze první byte. Další rozdíl, je ve startovacím LOW impulzu. U DHT-22 i AM2302 má trvat 1 až 2 milisekundy, zatímco u DHT-11 musí být delší, 18 až 20 milisekund. Podrobnosti viz komentáře v kódu. všeobecné informaceU modulů, které jsem v rámci svých možností odladil a otestoval, jsem vytvořil prográmek, který lze formou copy-paste vytáhnout (buď celý, nebo pouze potřebné kusy kódu) a použít jej v nějaké Vaší aplikaci. Zkopírovat se musí potřebný kód, proměnné v paměti a deklarace konstant (equ).
Na stránkách výrobce ST Microelectronics je ke stažení vývojové prostředí ST Visual develop
a dále jsou zde velmí podrobné manuály v PDF (v angličtině) odledně popisu mikrokontroléru a jeho instrukčního souboru.
Každý zde uváděný zdroják má stejnou strukturu. Na začátku jsou deklarace adres použitých systémových registrů (UART, I2C, GPIO...), což je klíčové. Tyto adresy jsou popsány
jednak v datasheetu STM8, a také jsou k dispozici ve zdrojovém kódu, který je nainstalován spolu s prostředím ST Visual develop ve složce
[Program Files]\ STMicroelectronics\ st_toolset\ asm\ include\ STM8S103F.asm). Asi je možné ji deklarovat jako include, ale zde jsou ve zdrojáku
definovány pouze ty, které jsou použity. Rychlý návod jak vytvořit nový projekt v prostředí ST Visual Dvelop:
Tím se vytvoří projekt. Na levé straně se objeví strom Workspace, kde ve větvi source files otevřete main.asm, které je hlavní zdroják
projektu. Je předvyplněn o počáteční definici segmentů a tabulku přerušení. Můžete jej vyčistit a pak do něj přes copy-paste (CTRL+A - CTRL+C -> CTRL+V) vložit některé s
zde uváděných mých (nebo Vašich) zdrojáků. Soubory mapping.asm a mapping.inc systém vytvořil automaticky a není doporučeno do nich zasahovat, protože systém je interně
přepisuje. Do téhož workspace můžete vkládat více projektů, každý však musí mít svou složku. Nahrání (vypálení) programu do modulu:
Dúležité upozornění: Zde presentovaný modul mikrokontroléru má výstupy 5V, 3V3 a GND. Na výstupu 5V ve skutečnosti není 5 voltů, ale vstupní napětí, kterým celý tento modul napájíte, buď přes piny +/-, nebo přes konektor mikroUSB, což může být 4.5 - 15V. Buďte opatrní, co k tomu pinu (5V) připojíte, připojovaný modul můžete tímto zničit. Doporučuji modul napájet výhradně z 5V zdroje. |
|
Elektronika, ukázky pro Arduino a STM8, plus programování v Delphi (Lazarusu).
Všechna zapojení modulů v ukázkách (viz elektrická schémata) pracují s velmi malým napětím 3.3V až 12V a neobsahují návod na napájecí zdroj. Pokud se rozhodnete některé z těchto
zařízení postavit, důrazně doporučuji používat zdroje s výstupním napětím maximálně 12V, podle schválených norem platných v ČR. Autor návodů za případné škody nepřebírá žádnou odpovědnost.
(c) 2026 iisivak.xf.cz |