Radsej ako vymyslat nejake priority do programu, by som sa zamyslel nad tym, co vlastne chcem. Nakresli si na papier tie hranicne teploty (na os), medzi ne stav rele a podla toho tie podmienky jednoducho napises.
Souhlasim, taky jsem mu to predtim psal. Sam musi vedet co chce. Arduino mu to samo nevymysli.
jen pro upřesnění, abych správně pochopil, jak to přesně bude fungovat.
Program dojde ke smyčce loop (v setup mám nastavena všechna relé, jako vypnutá) a pokud bude teplota1 větší jak 50 skočí to na konec a pojede to odznovu,takže ostatní podmínky to bude přeskakovat.
Pokud bude teplota1 menší jak 50, tak to zároveň vykoná podmínku teplota2 (tu za else) a opět to skočí na konec a pojedou dokola jen ty dvě podmínky.
Teplota3 (za else) bude splněna jen pokud nebudou platit ty dvě předchozí?
to unsigned char rele1, rele2, rele3;
digitalWrite(1,rele1);
digitalWrite(2,rele2);
digitalWrite(3,rele3);
tam mít nemusím ne, když mám stavy relé definované jako HIGH nebo LOW?
aha teď sem si toho všiml, takže když vyhodím rele1, 2 a 3 a nahradím to přímo digitalWrite(1,HIGH); a tak dále, tak by mi to taky mělo šlapat...
Já to odzkouším a dám vědět, jak jsem dopadl zatím moc díky za pomoc
aha teď sem si toho všiml, takže když vyhodím rele1, 2 a 3 a nahradím to přímo digitalWrite(1,HIGH); a tak dále, tak by mi to taky mělo šlapat...
Já to odzkouším a dám vědět, jak jsem dopadl zatím moc díky za pomoc
Takhle ne. Do promennych rele1 az rele3 se uklada jejich prubezna hodnota, tzn.bud HIGH nebo LOW a pak se to na KONCI zrealizuje. Na konci proto, ze cestou to projde jeste sitem dalsich mereni a porovnavani a kdyby se hned melo hybat s relatkama, tak by cvakaly.
Promennou si muzes nazvat jakkoliv, treba stavrele1 apod.
tak to mi nedošlo já myslel, že pokud to v loop projde první podmínku a ta bude platit a za ní to hned skočí na END: ,tak nebude vadit to okamžité nastavení relátek, protože by to s nimi nemělo znovu hýbat... budu to muset odzkoušet, abych viděl jak to pracuje a co se na těch relátkách děje.
Díky za doplňující info
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: pá červen 19 2015, 14:53 Předmět:
jiri255 napsal(a):
a jak by se to řešilo pomocí té tabulky stavů?
To je pro mě trošku složitější na vysvětlování, protože nejsem programátor.
Pokud má prioritu teplota1 a 3 stavy, uděláš tabulku se třema sloupcema.
Další podmínky jsou teplota2 a 3, takže bude mít tabulka dva x dva řádky pro dvě mezní teploty2,3 (t.j. jednu mezní pro 2 a jednu mezní pro 3). Pak pro t2<x°C a t3<y°C platí řádek 1 atd.
Každé políčko obsahuje 3bity = 3 stavy výstupů (relátek).
Podle t1 nastavíš sloupec.
Podle t2 x t3 nastavíš řádek.
Až to začneš vyplňovat, tak zjistíš, kde máš prázdná místa nebo kolize.
Pak podle teplot1,2,3 nastavíš "ukazatel" na správné místo v tabulce a přečteš hodnotu.
Hysterezi to neřeší - to vyřešíš porovnáním aktuálního stavu teploty s předchozí hodnotou + vloženou pauzou ve smyčce. _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
to nevím jestli bych dal dohromady, asi by to nebylo špatné řešení jen bych musel přijít na to jak to udělat... zkusím se nad tím zamyslet a něco dát dohromady, ale prvně chci otestovat tu variantu s tím END: ta mi přijde hodně zajímavá na můj problém
otestoval jsem to goto END; a funguje to přímo s digitalWrite(2,LOW nebo HIGH);
a relátka necvakají myslím, že to můj problém vyřešilo, protože si můžu priority u podmínek nastavit přesně, jak potřebuju Díky moc
Relatka necvakaji, protoze to nestihnou. Bude-li ale teplota1 napr. 30st, nastavi se to nejak a dal v programu to teplota 2 30st zmeni.
A tak pujde pozadovana priorita podle teploty1 do kopru.
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2
Strana 2 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.