reklama

Pojďme programovat elektroniku: Vyzkoušíme ultrazvukový dálkoměr, detektor pohybu, deště a další kouzla

  • Vyzkoušíme si senzory na pokročilých sběrnicích
  • Budeme ultrazvukem měřit vzdálenost
  • Detekujeme déšť i pohyb

Zatímco rodiče pomalu nakupují nové penály, tužky, propisky, kružítka, pravítka, aktovky s pokémony a datové tarify pro své ratolesti, do Česka v záplavě ostatních cetek přicestoval i kontejner plný laciných senzorů, a tak se konečně můžeme vrhnout na pokračování našeho seriálu o domácím programování drobné elektroniky.

Dnes si vyzkoušíme, jak vlastně získat údaje z některého z mnoha čidel, které dnes můžete společně s nejrůznějšími mikropočítači pořídit v kdejakém českém e-shopu pro kutily, anebo na eBayi a celém zástupu asijských katalogů od Banggoodu po DealExtreme.

Klepněte pro větší obrázek
Prototypovací počítače v praxi: Intel Edison, Intel Galileo, Arduino Uno (na něm dnes budeme vše stavět), SmartEverything pro bezdrátový protokol Sigfox, NodeMCU s Wi-Fi, armový Photon s Wi-Fi a konečně maličké Arduino Pro Mini

Platí zde jednoduché pravidlo. Na eBayi sice seženete senzor i základní prototypovací mikropočítač Arduino Uno za pár korun a zpravidla i s bezplatnou dotovanou dopravou z Číny nebo Hongkongu, ale počkáte si i několik dlouhých týdnů. Pokud chcete svoje Arduino s armádou senzorů, propojovacích kablíků a dalšího potřebného příslušenství teď hned, české e-shopy jako Arduino-shop, Robotstore, GME, GES, Tays, Santy a další vám vyjdou vstříc, ale pochopitelně za trošku jiné ceny – není to přeci charita a hlavně získáte zákonnou záruku.

Klepněte pro větší obrázek
Hromada mikropočítačů, součástek a senzorů. Dnes si některé z nich předvedeme.

Tak, konec nakupování a jdeme si hrát a zapojovat naše nové moduly do mikropočítače typu Arduino Uno, jehož laciný klon i s USB kabelem jsem koupil na eBayi zhruba za sto korun.

Analogový teploměr TMP36

Pro začátek si připomeňme zapojení primitivního analogového teploměru TMP36 se třemi vodiči. Zatímco krajní nožky slouží pro napájení (+/-), ta prostřední vede samotný signál o teplotě. A jelikož se jedná o analogový senzor, oním signálem je napětí o určité velikosti. Čím vyšší teplotu čidlo zaznamená, tím se zvýší i napětí na signálovém vodiči. Mikropočítač toto napětí přečte, pomocí A/D převodníku převede na celé číslo a s ním už můžeme pracovat.

Klepněte pro větší obrázek
Analogový teploměr TMP36

Počítače Arduino mají 10bitový A/D převodník a pracují s napětím 5 V, což v praxi znamená, že 0 až 5 V na některém z analogových konektorů vyjádří hodnotou 0 až 1 023 (1 024 = 210 = deset bitů).

Pak už pouze stačí pročíst dokumentaci konkrétní elektrické součástky, ze které se dozvíte, že TMP36 vyjádří teplotu 25 °C napětím 750 mV a změna napětí o 10 mV odpovídá 1 °C. Proč tedy rovnou nevyjádří onu pokojovou teplotu napětím 250 mV? Protože 500mV posun (500 + 250 = 750) usnadní výpočet záporných teplot. Když bychom tedy na signálovém vodiči naměřili napětí 300 mV, odpovídá to -20°C, protože platí rovnice 300-500 = -200 a -200/10 = -20.

Suma sumárum, celé číslo z A/D převodníku přepočítáme zpět na napětí a to podle pravidel výše na teplotu.

Klepněte pro větší obrázek

Jak to zapojit dohromady

Takže to bychom měli analogovou teorii a teď samotné zapojení. Mikropočítače označení + a pro napájení zpravidla nepoužívají. Namísto toho zde máme konektor GND (zem) pro záporný pól a ostatní konektory pro generování určitého napětí a tedy kladný pól.

V případě teplotního čidla nepotřebujeme programově zapínat a vypínat jeho napájení jako třeba u LED diody, která má blikat, můžeme jej tedy připojit k některému konektoru, který poskytuje stálé a regulované napětí. Arduino zpravidla disponuje piny pro 5V a 3,3V zdroj napětí, které můžeme použít.

TMP36 je nízkonapěťové čidlo, pro které je 5 V opravdu nejvyšší hranice a více mu sluší napětí okolo 3 V, kdy podává přesnější výsledky. Pro napájení jsem tedy použil konektor označený 3.3V.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Zapojení našeho analogového teploměru TMP36 k Arduinu. Pomohlo nám tzv. nepájivé pole – breadboard, což je matice propojených děr, do kterých stačí zapíchnout senzory a drátky bez potřeby jakéhokoliv pájení

Prostřední signálový vodič teploměru jsem pak připojil do konektoru A0, který je společně s dalšími piny okolo určený pro práci s analogovým signálem.

Začátečníci si mohou celý obvod vyzkoušet třeba ve webovém simulátoru Circuits.io, aniž by se museli obávat, že chybným zapojením něco poškodí.

Změř teplotu každou sekundu

A to je celé. Teď už pouze stačí napsat jednoduchý program ve stejnojmenném vývojovém prostředí Arduino, který přečte hodnotu z A/D převodníku, převede ji na napětí, to dále na teplotu a všechny tři hodnoty pošle skrze sériovou linku do velkého počítače, který je s Arduinem spojený USB kabelem na portu COM7. Následně program počká jednu sekundu a vše zopakuje.

Klepněte pro větší obrázek
Program vypisuje surovou hodnotu z A/D převodníku,
zpětně vypočítané napětí a konečně i teplotu

Kód programu

Jakmile se program přeloží a nahraje do paměti mikropočítače, začne se zpracovávat, kdykoliv Arduino připojíte do elektřiny. Právě jsme tedy dali křemíkové destičce její první smysl.

int data;
float napeti, teplota;

void setup(){
 // Nastaveni seriove linky
 Serial.begin(9600);
 while(!Serial){;}
}

void loop() {
 // Precti hodnotu z analogoveho pinu A0
 data = analogRead(A0);

 // Vypocitej napeti na pinu A0
 napeti = (5.0/1024.0) * data;

 // Vypocitej teplotu podle dokuemntace cidla TMP36 
 teplota = (napeti - 0.5) * 100;

 // Vypis hodntu z A/D, vypocitane napeti a teplotu
 Serial.print(data); Serial.print("\t");
 Serial.print(napeti); Serial.print(" V\t");
 Serial.print(teplota); Serial.println(" stupnu");

 // Pockej jednu sekudnu a opakuj
 delay(1000);
}

V další kapitole se už podíváme na mnohem zajímavější a také digitální senzory, se kterými se pracuje úplně jinak a vlastně i jednodušeji, protože pro každý kousek složitějšího hardwaru už dnes existuje nějaká ta knihovna, která vše naprosto usnadní.

Témata článku: Hardware, Technologie, Pojďme programovat elektroniku, Programování, Arduino, IoT, Zajímavosti, Echo, Serial, Print, Arduino Uno, Cactus, GME, Pravítka, Dallas

24 komentářů

Nejnovější komentáře

  • Jan Krajíc 29. 9. 2016 20:17:03
    Super článek. Jen nevím jestli jsem to nenašel, nebo to tady není. Ale byl...
  • Martin Novák 30. 8. 2016 7:38:53
    Super článek! Mimo tento seriál ještě často sleduji...
  • Tomáš Kapler 29. 8. 2016 23:03:13
    myslím, že chybka: int hodnota = map(hodnotaZprevodniku, 0, 1023, 1,...
reklama
Určitě si přečtěte

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

** Herní hardware se od toho běžného často liší jen vzhledem ** Při výběru stále nezapomínejte na základní parametry ** Poradíme jak vybrat herní hardware i periferie

20.  2.  2017 | Stanislav Janů | 36

10 nejhorších produktů v historii Microsoftu

10 nejhorších produktů v historii Microsoftu

20.  2.  2017 | Karel Javůrek | 141

AMD oficiálně představilo procesory Ryzen. Známe i jejich české ceny

AMD oficiálně představilo procesory Ryzen. Známe i jejich české ceny

** AMD uvedlo první tři procesory Ryzen 7 ** Všechny budou pracovat s osmi jádry a šestnácti vlákny ** Na pulty obchodů se dostanou už za týden

22.  2.  2017 | Stanislav Janů | 132

Pojďme programovat elektroniku: Žádný bastlíř se neobejde bez armády švábů

Pojďme programovat elektroniku: Žádný bastlíř se neobejde bez armády švábů

** Každý bastlíř se po čase neobjede bez armády švábů ** Dnes si některé z nich vyzkoušíme ** Třeba zázračný posuvný registr

19.  2.  2017 | Jakub Čížek | 40

EU se děsí Windows 10. Prý o nás vědí až příliš. Microsoft chystá změny

EU se děsí Windows 10. Prý o nás vědí až příliš. Microsoft chystá změny

** Evropští úředníci chtějí, aby byly Desítky transparentnější ** Microsoft od jara skutečně chystá změny ** Ochráncům soukromí to ale nestačí

21.  2.  2017 | Jakub Čížek | 218

Remix Singularity: Microsoft si na tom vylámal zuby. Jak dopadne Android?

Remix Singularity: Microsoft si na tom vylámal zuby. Jak dopadne Android?

** Microsoft do svých telefonů integroval desktopové prostředí ** Moc to ale nevyšlo, chyběl pořádný výkon ** Teď to zkoušejí ex-googleři s Remix Singularity

23.  2.  2017 | Jakub Čížek | 74


Aktuální číslo časopisu Computer

Supertéma o počítačové bezpečnosti

AMD Ryzen přichází

Velké testy kinoprojektorů a levných špuntových sluchátek

Příslušenství do USB-C

reklama
reklama