propojení kódů

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
johnok777
Příspěvky: 9
Registrován: 05 úno 2018, 16:43

propojení kódů

Příspěvek od johnok777 » 07 úno 2018, 16:33

Dobrý den, jsem naprostý začátečník. Poradíte mě prosím jak se dají spojit 2 kody v jeden (nezavisle na sobe-napr. chci aby blkala ledka a utoho chci merit osvetleni luxmetrem). Díky.

martinius96
Příspěvky: 585
Registrován: 01 srp 2017, 19:29
Bydliště: Poprad
Kontaktovat uživatele:

Re: propojení kódů

Příspěvek od martinius96 » 07 úno 2018, 17:51

Ahoj vies dat oba kody sem? Problem byva s funkciou delay, ktoru pravdepodobne tvoje blikanie ledky vyuziva. Malo by sa to prestavat na millis a tak bude "pauza" pristupna aj pre inu akciu/prerusenie ak ho meranie luxmetrom vyuziva.

petan
Příspěvky: 358
Registrován: 23 črc 2017, 10:19
Kontaktovat uživatele:

Re: propojení kódů

Příspěvek od petan » 07 úno 2018, 20:20

Jde o to, jaký kódy potřebuješ spojit. Vždycky to je individuální. Doporučil bych ti nastudovat základy v knize "Průvodce světem Arduina". Provádění více operací "zároveň" můžeš provést např. pomocí tohoto kódu: https://www.mylms.cz/text-kusy-kodu-k-arduinu/#delay
Do fce Podprogram1 a Podprogram2 dáš části kódu a v loopu nastavíš jak často se mají provádět.

jankop
Příspěvky: 1057
Registrován: 06 zář 2017, 20:04
Bydliště: Brno
Kontaktovat uživatele:

Re: propojení kódů

Příspěvek od jankop » 07 úno 2018, 21:47

Lze to pochopitelně řešit různě. Já preferuji periodické přerušování Tickerem.
Následující program bliká dvěma LED, každou s jinou periodou. Pouhou změnou konstanty lze rychlost blikání libovolně měnit. Těchto periodických dějů mohu definovat libovolný počet a může to být čtení tlačítka, senzoru nebo cokoliv jiného. Faktem je, že tenhle Ticker je knihovna, která je součástí jádra esp8266. Ale myslím si, že by na Arduinu normálně běžela. Nemám to však jak zkusit. Na druhé straně na githubu je takových knihoven - Ticker pro Arduino několik.

Kód: Vybrat vše

#include <Ticker.h>
#define LED1PIN         13         // port s připojenou LED
#define LED2PIN         14         // port s připojenou LED 
#define LED1TIME        0.25       // doba periodickeho opakovani
#define LED2TIME        1.0        // doba periodickeho opakovani
bool    Led1State       = false;
bool    Led2State       = false;
Ticker Led1Tick;
Ticker Led2Tick;

void setup(void) {
  pinMode(LED1PIN, OUTPUT);
  digitalWrite(LED1PIN, Led1State);
  pinMode(LED2PIN, OUTPUT);
  digitalWrite(LED2PIN, Led2State);
  Led1Tick.attach(LED1TIME, Led1Blink);
  Led2Tick.attach(LED2TIME, Led2Blink);
}
void loop(void) {
}
void Led1Blink(void) {
  Led1State = !Led1State;
  digitalWrite(LED1PIN, Led1State);
}
void Led2Blink(void) {
  Led2State = !Led2State;
  digitalWrite(LED2PIN, Led2State);
}

petan
Příspěvky: 358
Registrován: 23 črc 2017, 10:19
Kontaktovat uživatele:

Re: propojení kódů

Příspěvek od petan » 07 úno 2018, 22:04

Já jsem použil něco podobného - Tasker. Je to v podstatě to samé, české, viz http://joysfera.blogspot.cz/2015/03/tas ... duinu.html

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti