Elektronika, ukázky pro STM8S103F3, plus programování v assembleru.


Svítilna spínaná pohybovým čidlem

pomocí čidla PIR-SB00312A-1

Velmi jednoduchý projekt LED osvětlení, které je spínané pohybovým čidlem. Základem je vývojová deska STM8S103F3 K ní je připojem modul relé KY-019 (viz obrázek vlevo), který je spínán logickou jedničkou, na základě signálu z pohybového čidla PIR-SB00312A-1. Na obrázku vpravo je jeho vzhled a popis zapojení, pozor na správnou polaritu. pir. Toto pohybové čidlo je aktivní, to znamená, že reaguje na pohyb, asi až po třiceti vteřinách po zapnutí. V kódu je kvůli tomu malá zpožďovací smyčka (stabilizace).
Pro osvětlení jsem použil krátký LED pásek napájený stejnosměrným napětím 12V. Pro KY-019 napájení jsou tedy potřebná dvě napětí, 5V pro řídící obvod s vývojovou deskou a 12V pro obvod LED osvětlení.
Odběr řídícího obvodu v rozepnutém stavu (čekání na pohyb) je 6mA. Odběr v sepnutém stavu záleží na připojeném osvětlovacím LED pásku. V mém případě (asi 30-40 cm dlouhý pásek) byl odběr 150mA. Pokud by toto zařízení mělo být napájeno z baterií, bylo by nutné pro osvětlení použít nějaké úspornější LEDky pokudmožno napájené max 5V, viz výkonové LED. Pak by stačilo jedno napájecí napětí 5 voltů.
Řídící obvod by bylo možné doplnit o nějaké čidlo citlivé na světlo tak, aby relé spínalo pouze pokud je tma. Já jsem se však snažil o co největší jednoduchost.
Celkové schéma zapojení je jednoduché, pro relé i čidlo je použit port A, a to pin 1 pro čidlo a pin 3 pro relé. Pin pro čidlo je v módu input a pin pro relé v módu output v režimu "push-pool".
V tomto projektíku jsem se snažil ukázat, že programování v assembleru není až "taková hrůza", zvláště, když samotný kód zabírá pouhých 146 byte (sto čtyřicet šest bajtů).


Propojení modulů
schema

Jednoduchý je i kód v assembleru. Demonstruje nahazování a shazování pinu A3, a použití přerušení, aktivované pinem A1 při náběžné hraně (rising). Při příchodu logické 1 z výstupu čidla se aktivuje přerušení, které nahodí příznak pro sepnutí relé a vynuluje 24-bitový čítač zpožďovací smyčky (asi 20 vteřin při 2 MHz CPU), pro rozepnutí. Čítač je však zároveň nulován s každým dalším přerušením, takže relé rezepne, až když se oněch 20 vteřin nic nehýbe. Pro co nejmenší spotřebu je v hlavní smyčce instrukce WFI, která uspí procesor a čeká na přerušení (od čidla). Bližší upřesnění viz komentáře v kódu.


všeobecné informace

Všechny zde uváděné zdrojáky mají stejnou strukturu, jsou vytvořeny podle stejné šablony. Na prvním řádku každého zdrojáku musí být direktiva stm8/, jinak překlad skončí chybou. Program má inicializační část (SETUP), kde je nastaven vrchol zásobníku, je vynulována paměť ram, nastaví se rychlost CPU a proběhne základní nastavení použitého hardware, například UART, CPI, I2C, GPIO, atd. Vyhrazené piny pro UART, SPI, I2C a analogy jsou v této tabulce:
STM8S103F3P6

určení jednotlivých pinů
Napájení5V, 3V3 a zem GND
GPIOvšechny piny An, Bn, Cn, Dn
UARTTX=pin D5, RX=pin D6
SPIMISO=pin C7, MOSI=pin C6, SCK=C5, CS/SS=pin A3
I2CSCL=pin B4, SDA=pin B5
ANALOGA0=pin C4, A1=pin D2, A2=pin D3, A3=pin D5, A4=pin D6
ST-LINKpiny pro programátor SWIM a NRST

V nekonečné smyčce (LOOP) se pak provádi samotná činnost. Úplně na konci je tabulka vektorů přerušení v segmentu vectit s popisy, které zařízení může přerušení vyvolat.
U 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, utilita ST Visual Programmer a dále jsou zde velmí podrobné manuály v PDF (v angličtině) odledně popisu mikrokontroléru a jeho instrukčního souboru.

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.

Vzkazník - dotazy, názory, připominky, hlášení chyb, atd:
případný E-mail nebude nikde zveřejněn, uveďte jej, pouze pokud si přejete odpověď.

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.
nahoru
tyto stránky jsou provozovány jako hobby, bez reklam a bez sběru osobních dat (c) 2026 iisivak.xf.cz