christinesharkey
Vytvořené odpovědi
-
AutorPříspěvky
-
SvPatrick
ÚčastníkKoukám, že ten zdroják se neuložil, zkusím ho nahrát jako TXT soubor a ještě jedn graf z měření.
PatrikAttachments:
Luke_CZ
ÚčastníkA, píšeš cosi o přerušení som to napojil na pin prerusenie napriklad D2 + na GND , ale nikde v loop nepřerušuješ běh programu. Pokud dáš, jako ve tvém skeči, vše do loop, tak arduino zpracovává tuto smyčku a nic jiného ho nezajímá.
B, tvůj skeč v loopu hlídá změnu na D2 a přičítá pulsy do proměnné REEDCOUNT, žádná jiná čidla, jak zmiňuješ ked chcem pridat dalsie cidla tak uz to nereaguje tam nevidím…
posjirka
Účastníksuper …
Pulec
ÚčastníkTak tlačítka jsem přidal ale dál se mi nedaří 🙁
Když přidám else if (readString.indexOf(„L=X“) > 0) {irsend.sendRaw(TEPLOTA, sizeof(TEPLOTA)</ sizeof(int), khz);
}
Hazí to chybu.
C:\Users\MPUHLO~1\AppData\Local\Temp\untitled1276640573.tmp\sketch_nov07e\sketch_nov07e.ino: In function ‚void loop()‘:sketch_nov07e:103: error: expected primary-expression before ‚/‘ token
irsend.sendRaw(18, sizeof(18)</ sizeof(int), khz);/
^
sketch_nov07e:103: error: expected primary-expression before ‚/‘ token
irsend.sendRaw(18, sizeof(18)</ sizeof(int), khz);/
^
sketch_nov07e:106: error: expected primary-expression before ‚}‘ token
}
^
Byly nalezené násobné knihovny „DHT.h“
Použitý: C:\Users\Mpuhlovsky\Documents\Arduino\libraries\DHT
Nepoužitý: C:\Users\Mpuhlovsky\Documents\Arduino\libraries\DHT_sensor_library
exit status 1
expected primary-expression before ‚/‘ tokenNezkusil by jste prosím alespoň jedno tlačítko oživit?Jdou mi jen ty první tři.
Attachments:
johnyhol
ÚčastníkTo jsem právě počítal a proto to nemůžu pořád pochopit. Takže 8s+1s=9s a watchdog má maximum 8s. Nicméně jsem to zkusil podle tvojí rady (rozdělit to) a Heureka! funguje to!
Tady je tedy výsledná změněná část kódu:digitalWrite(davkovaniPelet, LOW); //davkuj pelety delay(4000); //pockej 4s wdt_reset(); // resetuj watchdog delay(4000); //pockej 4s wdt_reset(); // resetuj watchdog digitalWrite(davkovaniPelet, HIGH); //vypni davkovani delay(5000); //pockej 5s wdt_reset(); // resetuj watchdog delay(5000); //pockej 5s wdt_reset(); // resetuj watchdog
posjirka
Účastníkjohny, johny …. já tě chápu ale obávám se že je to pouze 1smerná komunikace. Nevím jak jinak ti to vysvětlit. Spočítal sis kolik je 8s + 1s ?
Vojtěch Vosáhlo
ÚčastníkVy komentujete španělsky? 😀 Samozřejmě jen vtip…
Prakticky by vám mělo stačit přidávat jen else if
else if (readString.indexOf("L=X") > 0) { irsend.sendRaw(TEPLOTA, sizeof(TEPLOTA)</ sizeof(int), khz); }
a pak jen do tohoto oddílu
client.print("<h2> <a href='/?L=0'> OFF </a>| <a href='/?L=1'> Teplota mene </a> | <a href='/?L=2'> Teplota vice </a></h2>");
přidávat html kód viz.
<h2> <a href='/?L=X'> TEPLOTA </a>
Aspoň tak bych to chápal já…
Vojtěch Vosáhlo
ÚčastníkNo tak to vás tu motám furt dokola 😀 asi je test nejlepší odpověď…
Pulec
ÚčastníkTady v příloze mnou pokřivený kód který umí pouze dvě teploty a vypnout.Potřebuji alespoň 5 teplot a on/OFF.
Attachments:
Diego
ÚčastníkDíky za rady. O závislosti na velikosti RAM vim. Šlo mi o to jestli to bude arduino stíhat.
Asi to prostě zkusim a uvidim 🙂Pulec
ÚčastníkTakto mi to už zhruba funguje ale pouze na třech funkčních tlačítkach
Attachments:
Pulec
ÚčastníkKlimatizace je nějaká čína Nordline.Ale kódy mě zas až tak netrápí nacpu tam ty dlouhé a s těmi to funguje.Byl by někdo ochoten upravit program z těchto stránek ?
tady
Potřebuji abych tam měl třeba 6 tlačítek a po jejich stisku na stránkách klimatizace bych změnil teplotu.Kódy a popis přiřadit umím.Jen nevím jak napsat ten program jednotlivých tlačítek.
Arduino bude napájeno ze sítě sólo.Poběží pořád v topné sezoně.Kaniiisek
ÚčastníkVypíše mi to pouze – „DS18B20 adress:“ a dál se nic neděje. Zapojení je určitě správně.
Vojtěch Vosáhlo
ÚčastníkA zapojení je správné? Co to přesně dělá?
Kaniiisek
ÚčastníkAno zkoušel, zatím mám tohle:
#include <OneWire.h> #include <DallasTemperature.h> #include <LiquidCrystal.h> // Data wire is plugged into port 2 on the Arduino #define ONE_WIRE_BUS 8 OneWire ds(8); // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); void setup(void) { // set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("DS18B20 adress:"); // Start up the library sensors.begin(); } void getDeviceAddress(void) { byte i; byte addr[8]; while(ds.search(addr)) { lcd.setCursor(0, 1); for( i = 0; i < 8; i++) { lcd.print("0x"); if (addr[i] < 16) { lcd.print('0'); } // print each byte in the address array in hex format lcd.print(addr[i], HEX); if (i < 7) { lcd.print(", "); } } // a check to make sure that what we read is correct. if ( OneWire::crc8( addr, 7) != addr[7]) { lcd.print("CRC is not valid!\n"); return; } } ds.reset_search(); return; } void loop(void) { } /* // call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus sensors.requestTemperatures(); // Send the command to get temperatures // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); lcd.print(sensors.getTempFByIndex(0)); lcd.print((char)223); lcd.print("F "); lcd.print(sensors.getTempCByIndex(0)); lcd.print((char)223); lcd.print("C"); delay(500); } */
Vojtěch Vosáhlo
ÚčastníkDobrý den,
zkoušel jste již na lcd vypisovat zvlášť, jen třeba hello word? Pokud ne doporučuji si pročíst třeba toto:
https://www.arduino.cc/en/Tutorial/HelloWorldHodně štěstí
Vojtěch Vosáhlo
ÚčastníkOpět jedna z citací která by mohla otázku zodpovědět.
_RESOLUTION_HORIZONTAL must be set to a multiple of 8. _
(_RESOLUTION_HORIZONTAL/8)*_RESOLUTION_VERTICAL must be smaller than the amount of SRAM the Arduino has, It also must leave some memory for the user applications and the library to run.Takže podle téro rovničky se dá přibližně propočítat zda to arduino zvládne. Nevím jestli je to prakticky pravda, tvout jsem nikdy nezkoušel.
Mimo toto je tam informace že kdyby bylo rozlišení moc velké a SRAM málo, funkce begin() vrátí chybový kód 4.
Diego
ÚčastníkTo si právě myslim že na typu tolik nezáleží, v základu jedou snad všechny na 16MHz takže rychlost bude u všech stejná. Jasný je že záleží na RAMce, ale když použiju MCU s 16kB RAM tak de o to jestli to vůbec stihne vykreslit 😉
johnyhol
ÚčastníkPořád nevím jestli jsme se dobře pochopili, dávkování funguje (tam potřebuju těch 8s), ale pauza (vypni dávkování) nefunguje. Tam bych potřeboval nastavit těch 10s. Když to změním na jinou hodnotu než 1s tak to nejede.
posjirka
Účastníka kde máš to resetování watchdogu? 🙂
digitalWrite(davkovaniPelet, LOW); //davkuj pelety delay(4000); //pockej 4s wdt_reset(); // resetuj watchdog delay(4000); //pockej 4s wdt_reset(); // resetuj watchdog digitalWrite(davkovaniPelet, HIGH); //vypni davkovani delay(1000); //pockej 1s wdt_reset(); // resetuj watchdog
Vojtěch Vosáhlo
ÚčastníkNo to samozřejmě velive záleží na typu arduina který používáte. S Unem toho moc neuděláte, bohužel. Viz např. Reddit: https://m.reddit.com/r/arduino/comments/1dsusl/increasing_the_max_resolution_on_the_tvout_library/
johnyhol
Účastník// REGULACE PELETKOVEHO KOTLE // author. Johnyhol & by JP // v 14_5_2016 // changelog // v 5_11_2016 // zmena casu - upraveno pro realny provoz // v 4_11_2016 // zmena vsech vystupu na rele // v 14_5_2016 // precislovani pinu // zmena funkce fotobunky z digitalu na analog // dolpneni seriove komunikace o hodnotu fotobunky // v 30_3_2016 // oprava funkce tlacitka kvitace poruchy -> HIGH->LOW // umazani parametru "long cas=13000;" -> jiz neni potreba // umazani parametru "//delay(84000); //pockej 84s" u funkce dohoreni -> jiz neni potreba // umazani parametru "//delay(12000); //po dobu 12s" u funkce davkovani zapalovaci davky pelet -> jiz neni potreba // umazani parametru "//if(digitalRead(prostorovyTermostat) == LOW || digitalRead(kotlovyTermostat) == LOW){ // prostorovy nebo kotlovy termostat vypne" u funkce zapaleni // drobne upravy textu/popisu jednotlivych parametru/funkci // v 27_3_2016 // uprava procesu zapalovani - nebude reagovat na prostorovy termostat // uprava dlouhych delayu na smycky, pro vyuziti watchdogu - autoreset pri zaseknuti procesou - doba nez se resetuje = 8s // nastaveni definice poruch pro pozdejsi vyuziti // v22_3_2016 // uprava ladicich textu pro termostaty // v21_3_2016 // presunuti testuPlamene pouze do smycky udrzuj horeni // doplneni textu do testu horeni // oprava textu zprav // zruseni diakritiky // zapnuti alarmu pri vyskytu poruchy // v20_3_2016 // slouceni podminenych funkci // vypnuti zhaveni pri rozepnuti termostatu (kotlovy nebo prostorovy) // rozdeleni funkci do vlastnich funkcnich bloku // zapojeni seriove komunikace pro odladeni funkci // v16_3_2016 // uprava podminky smycek (zruseno =) // posun zpozdeni 5s z procesu zapaleni na jeho konec // doplnena podminka reakce na termostaty (kotlovy/prostorovy) v procesu zapaleni // upravena doba na 1 zapalovaci proces - nastavitelna trimrem na analog.vstupu A0. v rozsahu 60 - 600 s = 1 - 10 min. - nastaveni pouze v dobe necinosti kotle // nastaveni poruchy a jeji kvitance tlacitkem na pinu 9 // definice poruch // bit funkce // 0 prehrati kotle pri zapalovani // 1 ztrata plamene pri horeni // 2 volne // 3 volne // 4 volne // 5 volne // 6 volne // 7 volne // knihovna watchdogu #include <avr/wdt.h> #define davkovaniPelet 2 //davkovani pelet snek #define spirala 3 //zapalovaci spirala #define ventilator 5 //ventilator #define alarm 6 //signalizace poruchy #define prostorovyTermostat 7 //prostorovy termostat #define kotlovyTermostat 8 //kotlovy termostat #define fotobunka 15 //fotobunka pro kontrolu plamene DI15 = A1 pro arduino UNO #define trimr1 14 // nastaveni doby zapaleni DI14 = A0 pro arduino UNO #define tlacitkoKvitance 9 // pin tlacitka kvitance poruchy int smycka1 = 0; // pomocna smycka - zapaleni int smycka1max = 600; // max.pomocne smycky - ted jiz nastavitelne trimrem na A0 60-600s int smycka2 = 0; // pomocna smycka - udrzeni horeni int smycka2max = 2; // max.pomocne smycky int smycka3 = 0; // pomocna smycka - pocet pokusu o zapaleni int smycka3max = 2; // max.pomocne smycky int smycka4 = 0; // pomocna smycka - davkovani zapalne davky pelet int smycka4max = 110; // max.pomocne smycky int smycka5 = 0; // pomocna smycka - rozhoreni int smycka5max = 50; // max.pomocne smycky int smycka6 = 0; // pomocna smycka - dohoreni int smycka6max = 840; // max.pomocne smycky byte porucha = 0; // promenna pro zaznam poruchy int ldr = 1; //analogovy pin kde je pripojen fotorezistor int ldr_value = 0; //promenna pro zaznam hodnot z fotorezistoru void setup() { // nastav seriovou komunikaci na rychlost 9600 bd Serial.begin(9600); Serial.println("Nastavuji vstupy/vystupy"); // ladici seriova komunikace pinMode(davkovaniPelet, OUTPUT); pinMode(spirala, OUTPUT); pinMode(ventilator, OUTPUT); pinMode(alarm, OUTPUT); pinMode(prostorovyTermostat, INPUT); pinMode(kotlovyTermostat, INPUT); pinMode(fotobunka, INPUT); pinMode(trimr1, INPUT); pinMode(tlacitkoKvitance, INPUT); // vsechno vypni vypniVse(); // nastav watchdog na 8s wdt_enable(WDTO_8S); } void loop() { wdt_reset(); // resetuj watchdog ldr_value = analogRead(ldr); //čte hodnoty LDR Serial.print("HODNOTA FOTOBUNKY = "); Serial.println(ldr_value); //zobrazí hodnoty LDR na seriove lince Serial.println("Cekam na sepnuti termostatu ..."); // ladici seriova komunikace smycka1max = map(analogRead(trimr1), 0, 1024, 60, 600); // nastaveni doby zapaleni trimrem na A0 if(digitalRead(prostorovyTermostat) == HIGH){ // prostorovy termostat je zapnuty Serial.println("Prostorovy termostat zapnut"); // ladici seriova komunikace if(digitalRead(kotlovyTermostat) == HIGH){ // kotlovy termostat je zapnuty Serial.println("Kotlovy termostat zapnut"); // ladici seriova komunikace // startovaci davka pelet //------------------------ zapalovaciDavkaPelet(); // proces zapaleni //---------------- zapaleni(); // test poruchy // ----------------- //testPlamene(); // udrzeni horeni //-------------- udrzujHoreni(); // dohoreni //--------- dohoreni(); } } else { Serial.println("Prostorovy termostat vypnut"); // ladici seriova komunikace } // kvitence pripadne poruchy //------------------------------- kvitancePoruchy(); } void vypniVse() { // funkce vypni vse Serial.println("Vypinam vsechny rele ..."); // ladici seriova komunikace digitalWrite(davkovaniPelet, HIGH); //vypni davkovani digitalWrite(spirala, HIGH); //vypni zhaveni digitalWrite(ventilator, HIGH); //vypni ventilator } void zapalovaciDavkaPelet() { // prvotni davkovani pelet pro zapaleni Serial.println("Davkuji pelety pro zapaleni ... 110s"); // ladici seriova komunikace digitalWrite(davkovaniPelet, LOW); //davkuj pelety for (smycka4 = 0; smycka4 < smycka4max; smycka4 ++){ delay(1000); wdt_reset(); // resetuj watchdog } digitalWrite(davkovaniPelet, HIGH); //potom vypni davkovani digitalWrite(ventilator, LOW); //zapni ventilator digitalWrite(spirala, LOW); //zapni zhaveni } void zapaleni() { // funkce zapaleni pelet // 3 pokusy o zapaleni Serial.println("Spoustim zapaleni ..."); // ladici seriova komunikace for (smycka3 = 0; smycka3 < smycka3max; smycka3 ++){ // smycka "1-10" minut zapalovani for (smycka1 = 0; smycka1 < smycka1max; smycka1 ++){ wdt_reset(); // resetuj watchdog Serial.print("Pokus "); // ladici seriova komunikace Serial.print(smycka3); // ladici seriova komunikace Serial.print("/"); // ladici seriova komunikace Serial.print(smycka3max); // ladici seriova komunikace Serial.print(" stav: "); // ladici seriova komunikace Serial.print(smycka1); // ladici seriova komunikace Serial.print("s/"); // ladici seriova komunikace Serial.print(smycka1max); // ladici seriova komunikace Serial.println("s "); // ladici seriova komunikace if(digitalRead(kotlovyTermostat) == LOW){ // kotlovy termostat vypne digitalWrite(spirala, HIGH); //vypni zhaveni smycka1 = smycka1max; // ukonci smycku1 smycka3 = smycka3max; // ukonci smycku3 Serial.println("Rozepnuti termostatu ..."); // ladici seriova komunikace bitSet(porucha,0); // nastav poruchu bit c.0 na "1" } if(analogRead(fotobunka) <= 500){ //pokud fotobunka vidi plamen digitalWrite(spirala, HIGH); //vypni zhaveni smycka1 = smycka1max; // ukonci smycku1 smycka3 = smycka3max; // ukonci smycku3 Serial.println(" hori ..."); // ladici seriova komunikace } else { Serial.println(" nehori ..."); // ladici seriova komunikace } delay(1000); } for (smycka5 = 0; smycka5 < smycka5max; smycka5 ++){ delay(1000); wdt_reset(); // resetuj watchdog } //delay(5000); //cekej 5s } } void udrzujHoreni() { // funkce udrzeni horeni ldr_value = analogRead(ldr); //čte hodnoty LDR Serial.print("HODNOTA FOTOBUNKY = "); Serial.println(ldr_value); //zobrazí hodnoty LDR na seriove lince Serial.println("Udrzeni horeni ..."); // ladici seriova komunikace for (smycka2 = 0; smycka2 < smycka2max; smycka2 ++){ wdt_reset(); // resetuj watchdog smycka2 = 0; // vynuluj smycku if(digitalRead(prostorovyTermostat) == HIGH && digitalRead(kotlovyTermostat) == HIGH){ // prostorovy + kotlovy termostat je zapnuty if(analogRead(fotobunka) <= 500){ //pokud fotobunka vidi plamen Serial.println("Test plamene ... hori"); // ladici seriova komunikace digitalWrite(davkovaniPelet, LOW); //davkuj pelety delay(8000); //pockej 8s digitalWrite(davkovaniPelet, HIGH); //vypni davkovani delay(1000); //pockej 1s } else { delay(1000); // pocekej jeste 1s a zkus to znovu if(analogRead(fotobunka) >= 500){ //pokud fotobunka nevidi plamen Serial.println("Test plamene ... porucha"); // ladici seriova komunikace smycka2 = smycka2max; // ukonci smycku //porucha = 1; // nastav poruchu bitSet(porucha,1); // nastav poruchu bit c.1 na "1" digitalWrite(alarm, LOW); // zapni alarm } } } else { smycka2 = smycka2max; // ukonci smycku } } } void dohoreni() { // funkce dohoreni Serial.println("Dohoreni ..."); // ladici seriova komunikace digitalWrite(davkovaniPelet, HIGH); //vypni davkovani pelet digitalWrite(spirala, HIGH); //vypni zhaveni - pro jistotu for (smycka6 = 0; smycka6 < smycka6max; smycka6 ++){ delay(1000); wdt_reset(); // resetuj watchdog } digitalWrite(ventilator, HIGH); //vypni ventilator } void kvitancePoruchy() { // funkce kvitance poruchy if(porucha > 0 ){ // kdyz je porucha aktivni Serial.println("Kvitance poruchy ..."); // ladici seriova komunikace // vypni vse vypniVse(); while (digitalRead(tlacitkoKvitance) == LOW) { // zapni alarm a cekej na stisk tlacitka digitalWrite(alarm, LOW); // zapni alarm Serial.println("Porucha ... cekam na kvitanci"); // ladici seriova komunikace wdt_reset(); // resetuj watchdog } Serial.println("Porucha kvitovana ..."); // ladici seriova komunikace digitalWrite(alarm, HIGH); // vypni alarm porucha = 0; // vynuluj poruchu } else { // jinak Serial.println("Zadna porucha ..."); // ladici seriova komunikace digitalWrite(alarm, HIGH); // vypni alarm } }
Měním čas(zpoždění) u funkce „udrzujHoreni“:
digitalWrite(davkovaniPelet, LOW); //davkuj pelety delay(8000); //pockej 8s digitalWrite(davkovaniPelet, HIGH); //vypni davkovani delay(1000); //pockej 1s
Původně tam bylo 1s davkovani pelet a 1s vypnuto davkovani. To fungovalo bez problémů, ale když změním zpoždění „vypni davkovani“ na jiný čas než 1s tak to nejde.
posjirka
Účastníkco to znamená, že to nejde ? Nevím co měníš … hoď sem kod …
johnyhol
ÚčastníkTak jsem zkoušel cvičně změnit čas u pauzy dávkování na 1x 5s (myslel jsem, že když to bude fungovat tak že to rozdělím jak radíš na 2x 5s) a stejně to nejde. Funguje to pouze s pauzou 1s. Zkoušel jsem i 2s a to už taky nešlo. Tak nevím jestli jsem tě dobře pochopil, nebo je chyba ještě jinde.
posjirka
Účastníkten watchdog je ochranná funkce … jak jsem již psal …
celá funkce watchdog se skládá z:– vložení knihovny:
#include <avr/wdt.h>
– aktivace watchdogu v setupu :wdt_enable(WDTO_8S);
– průběžný reset :wdt_reset();
a 8s je pro něj maximum:
https://tushev.org/articles/arduino/5/arduino-and-watchdog-timer
add.2. – ano ten kod musíš napsat všude, kde bude čas delší než 8s. Radši méně, když máš pak víc funkcí nemusel by uplně všechno včas stíhat a omylem by se procesor sám resetoval.když chceš pauzu 10s tak jí rozděl na 2x 5s a pokaždé resetuj watchdog….
u 15s to rozděl na 3x 5s a opět pokaždé resetuj watchdog …johnyhol
ÚčastníkTakže pokud to dobře chápu, tak je těch max. 8s na watchdogu nastaveno už někde v knihovně a proto nejde v programu nastavit víc? Zkoušel jsem právě na něm (ve void setup) nastavit víc a už to hlásilo chybu.
Ještě k bodu 2., ten kód co navrhuješ, ten musím napsat všude (do každý funkce: void loop, void zapalovaciDavkaPelet atd.) kde je watchdog použitý?A celkový čas by měl být delší než maximální čas funkce? (např. když bude pauza dávkování 10s tak součet časů watchdogu musí být 11s a víc?)Díky moc za rady!
posjirka
Účastníkproblém je v tom, že je tu použit tzv. watchog. ten je nastaven na určitý čas (8s což je jeho maximum). když se nezresetuje včas watchdog a přeteče tak se resetuje celý procesor. To je ta halvní výhoda celéhe řešneí. Když se někde kousne procesor tak se sám resetuje a pokračuje dál . Je to odpově´d na otázku, proč nejde nastavit čas delší než 8s.
1. nepoužívej čas delší než 4-5s ať máš nějákou rezervu.
2. Pro delší čas použij více postupných pauz:delay(3000); wdt_reset(); // resetuj watchdog delay(3000); wdt_reset(); // resetuj watchdog delay(4000); wdt_reset(); // resetuj watchdog
celý kod je řešen opravdu primitivně. Tak jsem ho i bral aby s ena něm dalo dobře naučit jak co funguje. I proto jen jej rozdělil na funkce, které jsou zkoumat postupně. Mrkni na to a kdybys něco nepobíral, tak určitě napovíme ….
johnyhol
ÚčastníkOmluvám se, špatně jsem zkopíroval kód…
Druhý pokus:// REGULACE PELETKOVEHO KOTLE // author. Johnyhol & by JP // v 14_5_2016 // changelog // v 5_11_2016 // zmena casu - upraveno pro realny provoz // v 4_11_2016 // zmena vsech vystupu na rele // v 14_5_2016 // precislovani pinu // zmena funkce fotobunky z digitalu na analog // dolpneni seriove komunikace o hodnotu fotobunky // v 30_3_2016 // oprava funkce tlacitka kvitace poruchy -> HIGH->LOW // umazani parametru "long cas=13000;" -> jiz neni potreba // umazani parametru "//delay(84000); //pockej 84s" u funkce dohoreni -> jiz neni potreba // umazani parametru "//delay(12000); //po dobu 12s" u funkce davkovani zapalovaci davky pelet -> jiz neni potreba // umazani parametru "//if(digitalRead(prostorovyTermostat) == LOW || digitalRead(kotlovyTermostat) == LOW){ // prostorovy nebo kotlovy termostat vypne" u funkce zapaleni // drobne upravy textu/popisu jednotlivych parametru/funkci // v 27_3_2016 // uprava procesu zapalovani - nebude reagovat na prostorovy termostat // uprava dlouhych delayu na smycky, pro vyuziti watchdogu - autoreset pri zaseknuti procesou - doba nez se resetuje = 8s // nastaveni definice poruch pro pozdejsi vyuziti // v22_3_2016 // uprava ladicich textu pro termostaty // v21_3_2016 // presunuti testuPlamene pouze do smycky udrzuj horeni // doplneni textu do testu horeni // oprava textu zprav // zruseni diakritiky // zapnuti alarmu pri vyskytu poruchy // v20_3_2016 // slouceni podminenych funkci // vypnuti zhaveni pri rozepnuti termostatu (kotlovy nebo prostorovy) // rozdeleni funkci do vlastnich funkcnich bloku // zapojeni seriove komunikace pro odladeni funkci // v16_3_2016 // uprava podminky smycek (zruseno =) // posun zpozdeni 5s z procesu zapaleni na jeho konec // doplnena podminka reakce na termostaty (kotlovy/prostorovy) v procesu zapaleni // upravena doba na 1 zapalovaci proces - nastavitelna trimrem na analog.vstupu A0. v rozsahu 60 - 600 s = 1 - 10 min. - nastaveni pouze v dobe necinosti kotle // nastaveni poruchy a jeji kvitance tlacitkem na pinu 9 // definice poruch // bit funkce // 0 prehrati kotle pri zapalovani // 1 ztrata plamene pri horeni // 2 volne // 3 volne // 4 volne // 5 volne // 6 volne // 7 volne // knihovna watchdogu #include <avr/wdt.h> #define davkovaniPelet 2 //davkovani pelet snek #define spirala 3 //zapalovaci spirala #define ventilator 5 //ventilator #define alarm 6 //signalizace poruchy #define prostorovyTermostat 7 //prostorovy termostat #define kotlovyTermostat 8 //kotlovy termostat #define fotobunka 15 //fotobunka pro kontrolu plamene DI15 = A1 pro arduino UNO #define trimr1 14 // nastaveni doby zapaleni DI14 = A0 pro arduino UNO #define tlacitkoKvitance 9 // pin tlacitka kvitance poruchy int smycka1 = 0; // pomocna smycka - zapaleni int smycka1max = 600; // max.pomocne smycky - ted jiz nastavitelne trimrem na A0 60-600s int smycka2 = 0; // pomocna smycka - udrzeni horeni int smycka2max = 2; // max.pomocne smycky int smycka3 = 0; // pomocna smycka - pocet pokusu o zapaleni int smycka3max = 2; // max.pomocne smycky int smycka4 = 0; // pomocna smycka - davkovani zapalne davky pelet int smycka4max = 110; // max.pomocne smycky int smycka5 = 0; // pomocna smycka - rozhoreni int smycka5max = 50; // max.pomocne smycky int smycka6 = 0; // pomocna smycka - dohoreni int smycka6max = 840; // max.pomocne smycky byte porucha = 0; // promenna pro zaznam poruchy int ldr = 1; //analogovy pin kde je pripojen fotorezistor int ldr_value = 0; //promenna pro zaznam hodnot z fotorezistoru void setup() { // nastav seriovou komunikaci na rychlost 9600 bd Serial.begin(9600); Serial.println("Nastavuji vstupy/vystupy"); // ladici seriova komunikace pinMode(davkovaniPelet, OUTPUT); pinMode(spirala, OUTPUT); pinMode(ventilator, OUTPUT); pinMode(alarm, OUTPUT); pinMode(prostorovyTermostat, INPUT); pinMode(kotlovyTermostat, INPUT); pinMode(fotobunka, INPUT); pinMode(trimr1, INPUT); pinMode(tlacitkoKvitance, INPUT); // vsechno vypni vypniVse(); // nastav watchdog na 8s wdt_enable(WDTO_8S); } void loop() { wdt_reset(); // resetuj watchdog ldr_value = analogRead(ldr); //čte hodnoty LDR Serial.print("HODNOTA FOTOBUNKY = "); Serial.println(ldr_value); //zobrazí hodnoty LDR na seriove lince Serial.println("Cekam na sepnuti termostatu ..."); // ladici seriova komunikace smycka1max = map(analogRead(trimr1), 0, 1024, 60, 600); // nastaveni doby zapaleni trimrem na A0 if(digitalRead(prostorovyTermostat) == HIGH){ // prostorovy termostat je zapnuty Serial.println("Prostorovy termostat zapnut"); // ladici seriova komunikace if(digitalRead(kotlovyTermostat) == HIGH){ // kotlovy termostat je zapnuty Serial.println("Kotlovy termostat zapnut"); // ladici seriova komunikace // startovaci davka pelet //------------------------ zapalovaciDavkaPelet(); // proces zapaleni //---------------- zapaleni(); // test poruchy // ----------------- //testPlamene(); // udrzeni horeni //-------------- udrzujHoreni(); // dohoreni //--------- dohoreni(); } } else { Serial.println("Prostorovy termostat vypnut"); // ladici seriova komunikace } // kvitence pripadne poruchy //------------------------------- kvitancePoruchy(); } void vypniVse() { // funkce vypni vse Serial.println("Vypinam vsechny rele ..."); // ladici seriova komunikace digitalWrite(davkovaniPelet, HIGH); //vypni davkovani digitalWrite(spirala, HIGH); //vypni zhaveni digitalWrite(ventilator, HIGH); //vypni ventilator } void zapalovaciDavkaPelet() { // prvotni davkovani pelet pro zapaleni Serial.println("Davkuji pelety pro zapaleni ... 110s"); // ladici seriova komunikace digitalWrite(davkovaniPelet, LOW); //davkuj pelety for (smycka4 = 0; smycka4 < smycka4max; smycka4 ++){ delay(1000); wdt_reset(); // resetuj watchdog } digitalWrite(davkovaniPelet, HIGH); //potom vypni davkovani digitalWrite(ventilator, LOW); //zapni ventilator digitalWrite(spirala, LOW); //zapni zhaveni } void zapaleni() { // funkce zapaleni pelet // 3 pokusy o zapaleni Serial.println("Spoustim zapaleni ..."); // ladici seriova komunikace for (smycka3 = 0; smycka3 < smycka3max; smycka3 ++){ // smycka "1-10" minut zapalovani for (smycka1 = 0; smycka1 < smycka1max; smycka1 ++){ wdt_reset(); // resetuj watchdog Serial.print("Pokus "); // ladici seriova komunikace Serial.print(smycka3); // ladici seriova komunikace Serial.print("/"); // ladici seriova komunikace Serial.print(smycka3max); // ladici seriova komunikace Serial.print(" stav: "); // ladici seriova komunikace Serial.print(smycka1); // ladici seriova komunikace Serial.print("s/"); // ladici seriova komunikace Serial.print(smycka1max); // ladici seriova komunikace Serial.println("s "); // ladici seriova komunikace if(digitalRead(kotlovyTermostat) == LOW){ // kotlovy termostat vypne digitalWrite(spirala, HIGH); //vypni zhaveni smycka1 = smycka1max; // ukonci smycku1 smycka3 = smycka3max; // ukonci smycku3 Serial.println("Rozepnuti termostatu ..."); // ladici seriova komunikace bitSet(porucha,0); // nastav poruchu bit c.0 na "1" } if(analogRead(fotobunka) <= 500){ //pokud fotobunka vidi plamen digitalWrite(spirala, HIGH); //vypni zhaveni smycka1 = smycka1max; // ukonci smycku1 smycka3 = smycka3max; // ukonci smycku3 Serial.println(" hori ..."); // ladici seriova komunikace } else { Serial.println(" nehori ..."); // ladici seriova komunikace } delay(1000); } for (smycka5 = 0; smycka5 < smycka5max; smycka5 ++){ delay(1000); wdt_reset(); // resetuj watchdog } //delay(5000); //cekej 5s } } void udrzujHoreni() { // funkce udrzeni horeni ldr_value = analogRead(ldr); //čte hodnoty LDR Serial.print("HODNOTA FOTOBUNKY = "); Serial.println(ldr_value); //zobrazí hodnoty LDR na seriove lince Serial.println("Udrzeni horeni ..."); // ladici seriova komunikace for (smycka2 = 0; smycka2 < smycka2max; smycka2 ++){ wdt_reset(); // resetuj watchdog smycka2 = 0; // vynuluj smycku if(digitalRead(prostorovyTermostat) == HIGH && digitalRead(kotlovyTermostat) == HIGH){ // prostorovy + kotlovy termostat je zapnuty if(analogRead(fotobunka) <= 500){ //pokud fotobunka vidi plamen Serial.println("Test plamene ... hori"); // ladici seriova komunikace digitalWrite(davkovaniPelet, LOW); //davkuj pelety delay(8000); //pockej 8s digitalWrite(davkovaniPelet, HIGH); //vypni davkovani delay(10000); //pockej 10s } else { delay(1000); // pocekej jeste 1s a zkus to znovu if(analogRead(fotobunka) >= 500){ //pokud fotobunka nevidi plamen Serial.println("Test plamene ... porucha"); // ladici seriova komunikace smycka2 = smycka2max; // ukonci smycku //porucha = 1; // nastav poruchu bitSet(porucha,1); // nastav poruchu bit c.1 na "1" digitalWrite(alarm, LOW); // zapni alarm } } } else { smycka2 = smycka2max; // ukonci smycku } } } void dohoreni() { // funkce dohoreni Serial.println("Dohoreni ..."); // ladici seriova komunikace digitalWrite(davkovaniPelet, HIGH); //vypni davkovani pelet digitalWrite(spirala, HIGH); //vypni zhaveni - pro jistotu for (smycka6 = 0; smycka6 < smycka6max; smycka6 ++){ delay(1000); wdt_reset(); // resetuj watchdog } digitalWrite(ventilator, HIGH); //vypni ventilator } void kvitancePoruchy() { // funkce kvitance poruchy if(porucha > 0 ){ // kdyz je porucha aktivni Serial.println("Kvitance poruchy ..."); // ladici seriova komunikace // vypni vse vypniVse(); while (digitalRead(tlacitkoKvitance) == LOW) { // zapni alarm a cekej na stisk tlacitka digitalWrite(alarm, LOW); // zapni alarm Serial.println("Porucha ... cekam na kvitanci"); // ladici seriova komunikace wdt_reset(); // resetuj watchdog } Serial.println("Porucha kvitovana ..."); // ladici seriova komunikace digitalWrite(alarm, HIGH); // vypni alarm porucha = 0; // vynuluj poruchu } else { // jinak Serial.println("Zadna porucha ..."); // ladici seriova komunikace digitalWrite(alarm, HIGH); // vypni alarm } }
johnyhol
ÚčastníkAhoj kluci, tak jsem se do toho opět po půl roce pustil a chtěl bych to zkusit spustit naostro, tedy přímo v kotli. Udělal jsem tedy úpravy časů (prodloužil jsem je na reálný hodnoty) a výstupů (změnil jsem je na relé). Skoro všechno funguje, jenom se mi nedaří nastavit čas dávkování pelet. Pro testování bylo nastaveno 1s sypání pelet (dávkování) a 1s stání(hoření). Dávkování se mi podařilo změnit na 8s, ale po změně stání z 1s na 10s se to chová nějak chaoticky. Dávkuje to správně 8s a pak to jenom procvakne relé a vyskočí alarm. Můžete na to prosím kouknout kde je chyba?
Tady je kód:<pre> <font color="#434f54">// REGULACE PELETKOVEHO KOTLE</font> <font color="#434f54">// author. Johnyhol & by JP</font> <font color="#434f54">// v 14_5_2016</font> <font color="#434f54">// changelog</font> <font color="#434f54">// v 4_11_2016</font> <font color="#434f54">// zmena vsech vystupu na rele</font> <font color="#434f54">// v 14_5_2016</font> <font color="#434f54">// precislovani pinu</font> <font color="#434f54">// zmena funkce fotobunky z digitalu na analog</font> <font color="#434f54">// dolpneni seriove komunikace o hodnotu fotobunky </font> <font color="#434f54">// v 30_3_2016</font> <font color="#434f54">// oprava funkce tlacitka kvitace poruchy -> HIGH->LOW</font> <font color="#434f54">// umazani parametru "long cas=13000;" -> jiz neni potreba</font> <font color="#434f54">// umazani parametru "//delay(84000); //pockej 84s" u funkce dohoreni -> jiz neni potreba</font> <font color="#434f54">// umazani parametru "//delay(12000); //po dobu 12s" u funkce davkovani zapalovaci davky pelet -> jiz neni potreba</font> <font color="#434f54">// umazani parametru "//if(digitalRead(prostorovyTermostat) == LOW || digitalRead(kotlovyTermostat) == LOW){ // prostorovy nebo kotlovy termostat vypne" u funkce zapaleni</font> <font color="#434f54">// drobne upravy textu/popisu jednotlivych parametru/funkci</font> <font color="#434f54">// v 27_3_2016</font> <font color="#434f54">// uprava procesu zapalovani - nebude reagovat na prostorovy termostat</font> <font color="#434f54">// uprava dlouhych delayu na smycky, pro vyuziti watchdogu - autoreset pri zaseknuti procesou - doba nez se resetuje = 8s</font> <font color="#434f54">// nastaveni definice poruch pro pozdejsi vyuziti</font> <font color="#434f54">// v22_3_2016</font> <font color="#434f54">// uprava ladicich textu pro termostaty</font> <font color="#434f54">// v21_3_2016</font> <font color="#434f54">// presunuti testuPlamene pouze do smycky udrzuj horeni</font> <font color="#434f54">// doplneni textu do testu horeni</font> <font color="#434f54">// oprava textu zprav</font> <font color="#434f54">// zruseni diakritiky</font> <font color="#434f54">// zapnuti alarmu pri vyskytu poruchy</font> <font color="#434f54">// v20_3_2016</font> <font color="#434f54">// slouceni podminenych funkci </font> <font color="#434f54">// vypnuti zhaveni pri rozepnuti termostatu (kotlovy nebo prostorovy)</font> <font color="#434f54">// rozdeleni funkci do vlastnich funkcnich bloku</font> <font color="#434f54">// zapojeni seriove komunikace pro odladeni funkci </font> <font color="#434f54">// v16_3_2016</font> <font color="#434f54">// uprava podminky smycek (zruseno =)</font> <font color="#434f54">// posun zpozdeni 5s z procesu zapaleni na jeho konec</font> <font color="#434f54">// doplnena podminka reakce na termostaty (kotlovy/prostorovy) v procesu zapaleni</font> <font color="#434f54">// upravena doba na 1 zapalovaci proces - nastavitelna trimrem na analog.vstupu A0. v rozsahu 60 - 600 s = 1 - 10 min. - nastaveni pouze v dobe necinosti kotle</font> <font color="#434f54">// nastaveni poruchy a jeji kvitance tlacitkem na pinu 9</font> <font color="#434f54">// definice poruch</font> <font color="#434f54">// bit funkce</font> <font color="#434f54">// 0 prehrati kotle pri zapalovani</font> <font color="#434f54">// 1 ztrata plamene pri horeni</font> <font color="#434f54">// 2 volne</font> <font color="#434f54">// 3 volne</font> <font color="#434f54">// 4 volne</font> <font color="#434f54">// 5 volne</font> <font color="#434f54">// 6 volne</font> <font color="#434f54">// 7 volne</font> <font color="#434f54">// knihovna watchdogu</font> <font color="#5e6d03">#include</font> <font color="#434f54"><</font><font color="#000000">avr</font><font color="#434f54">/</font><font color="#000000">wdt</font><font color="#434f54">.</font><font color="#000000">h</font><font color="#434f54">></font> <font color="#5e6d03">#define</font> <font color="#000000">davkovaniPelet</font> <font color="#000000">2</font> <font color="#434f54">//davkovani pelet snek</font> <font color="#5e6d03">#define</font> <font color="#000000">spirala</font> <font color="#000000">3</font> <font color="#434f54">//zapalovaci spirala</font> <font color="#5e6d03">#define</font> <font color="#000000">ventilator</font> <font color="#000000">5</font> <font color="#434f54">//ventilator</font> <font color="#5e6d03">#define</font> <font color="#000000">alarm</font> <font color="#000000">6</font> <font color="#434f54">//signalizace poruchy</font> <font color="#5e6d03">#define</font> <font color="#000000">prostorovyTermostat</font> <font color="#000000">7</font> <font color="#434f54">//prostorovy termostat</font> <font color="#5e6d03">#define</font> <font color="#000000">kotlovyTermostat</font> <font color="#000000">8</font> <font color="#434f54">//kotlovy termostat</font> <font color="#5e6d03">#define</font> <font color="#000000">fotobunka</font> <font color="#000000">15</font> <font color="#434f54">//fotobunka pro kontrolu plamene DI15 = A1 pro arduino UNO</font> <font color="#5e6d03">#define</font> <font color="#000000">trimr1</font> <font color="#000000">14</font> <font color="#434f54">// nastaveni doby zapaleni DI14 = A0 pro arduino UNO</font> <font color="#5e6d03">#define</font> <font color="#000000">tlacitkoKvitance</font> <font color="#000000">9</font> <font color="#434f54">// pin tlacitka kvitance poruchy</font> <font color="#00979c">int</font> <font color="#000000">smycka1</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">// pomocna smycka - zapaleni</font> <font color="#00979c">int</font> <font color="#000000">smycka1max</font> <font color="#434f54">=</font> <font color="#000000">600</font><font color="#000000">;</font> <font color="#434f54">// max.pomocne smycky - ted jiz nastavitelne trimrem na A0 60-600s</font> <font color="#00979c">int</font> <font color="#000000">smycka2</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">// pomocna smycka - udrzeni horeni</font> <font color="#00979c">int</font> <font color="#000000">smycka2max</font> <font color="#434f54">=</font> <font color="#000000">2</font><font color="#000000">;</font> <font color="#434f54">// max.pomocne smycky</font> <font color="#00979c">int</font> <font color="#000000">smycka3</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">// pomocna smycka - pocet pokusu o zapaleni</font> <font color="#00979c">int</font> <font color="#000000">smycka3max</font> <font color="#434f54">=</font> <font color="#000000">2</font><font color="#000000">;</font> <font color="#434f54">// max.pomocne smycky</font> <font color="#00979c">int</font> <font color="#000000">smycka4</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">// pomocna smycka - davkovani zapalne davky pelet</font> <font color="#00979c">int</font> <font color="#000000">smycka4max</font> <font color="#434f54">=</font> <font color="#000000">110</font><font color="#000000">;</font> <font color="#434f54">// max.pomocne smycky</font> <font color="#00979c">int</font> <font color="#000000">smycka5</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">// pomocna smycka - rozhoreni</font> <font color="#00979c">int</font> <font color="#000000">smycka5max</font> <font color="#434f54">=</font> <font color="#000000">50</font><font color="#000000">;</font> <font color="#434f54">// max.pomocne smycky</font> <font color="#00979c">int</font> <font color="#000000">smycka6</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">// pomocna smycka - dohoreni</font> <font color="#00979c">int</font> <font color="#000000">smycka6max</font> <font color="#434f54">=</font> <font color="#000000">840</font><font color="#000000">;</font> <font color="#434f54">// max.pomocne smycky</font> <font color="#00979c">byte</font> <font color="#000000">porucha</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">// promenna pro zaznam poruchy</font> <font color="#00979c">int</font> <font color="#000000">ldr</font> <font color="#434f54">=</font> <font color="#000000">1</font><font color="#000000">;</font> <font color="#434f54">//analogovy pin kde je pripojen fotorezistor</font> <font color="#00979c">int</font> <font color="#000000">ldr_value</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">//promenna pro zaznam hodnot z fotorezistoru</font> <font color="#00979c">void</font> <font color="#5e6d03">setup</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#434f54">// nastav seriovou komunikaci na rychlost 9600 bd </font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">begin</font><font color="#000000">(</font><font color="#000000">9600</font><font color="#000000">)</font><font color="#000000">;</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Nastavuji vstupy/vystupy"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#d35400">pinMode</font><font color="#000000">(</font><font color="#000000">davkovaniPelet</font><font color="#434f54">,</font> <font color="#00979c">OUTPUT</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#d35400">pinMode</font><font color="#000000">(</font><font color="#000000">spirala</font><font color="#434f54">,</font> <font color="#00979c">OUTPUT</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#d35400">pinMode</font><font color="#000000">(</font><font color="#000000">ventilator</font><font color="#434f54">,</font> <font color="#00979c">OUTPUT</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#d35400">pinMode</font><font color="#000000">(</font><font color="#000000">alarm</font><font color="#434f54">,</font> <font color="#00979c">OUTPUT</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#d35400">pinMode</font><font color="#000000">(</font><font color="#000000">prostorovyTermostat</font><font color="#434f54">,</font> <font color="#00979c">INPUT</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#d35400">pinMode</font><font color="#000000">(</font><font color="#000000">kotlovyTermostat</font><font color="#434f54">,</font> <font color="#00979c">INPUT</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#d35400">pinMode</font><font color="#000000">(</font><font color="#000000">fotobunka</font><font color="#434f54">,</font> <font color="#00979c">INPUT</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#d35400">pinMode</font><font color="#000000">(</font><font color="#000000">trimr1</font><font color="#434f54">,</font> <font color="#00979c">INPUT</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#d35400">pinMode</font><font color="#000000">(</font><font color="#000000">tlacitkoKvitance</font><font color="#434f54">,</font> <font color="#00979c">INPUT</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// vsechno vypni</font> <font color="#000000">vypniVse</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// nastav watchdog na 8s</font> <font color="#000000">wdt_enable</font><font color="#000000">(</font><font color="#000000">WDTO_8S</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#00979c">void</font> <font color="#5e6d03">loop</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#000000">wdt_reset</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// resetuj watchdog</font> <font color="#000000">ldr_value</font> <font color="#434f54">=</font> <font color="#d35400">analogRead</font><font color="#000000">(</font><font color="#000000">ldr</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//čte hodnoty LDR</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#005c5f">"HODNOTA FOTOBUNKY = "</font><font color="#000000">)</font><font color="#000000">;</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#000000">ldr_value</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//zobrazí hodnoty LDR na seriove lince</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Cekam na sepnuti termostatu ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#000000">smycka1max</font> <font color="#434f54">=</font> <font color="#d35400">map</font><font color="#000000">(</font><font color="#d35400">analogRead</font><font color="#000000">(</font><font color="#000000">trimr1</font><font color="#000000">)</font><font color="#434f54">,</font> <font color="#000000">0</font><font color="#434f54">,</font> <font color="#000000">1024</font><font color="#434f54">,</font> <font color="#000000">60</font><font color="#434f54">,</font> <font color="#000000">600</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// nastaveni doby zapaleni trimrem na A0</font> <font color="#5e6d03">if</font><font color="#000000">(</font><font color="#d35400">digitalRead</font><font color="#000000">(</font><font color="#000000">prostorovyTermostat</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#434f54">// prostorovy termostat je zapnuty</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Prostorovy termostat zapnut"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#5e6d03">if</font><font color="#000000">(</font><font color="#d35400">digitalRead</font><font color="#000000">(</font><font color="#000000">kotlovyTermostat</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#434f54">// kotlovy termostat je zapnuty</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Kotlovy termostat zapnut"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#434f54">// startovaci davka pelet</font> <font color="#434f54">//------------------------</font> <font color="#000000">zapalovaciDavkaPelet</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// proces zapaleni</font> <font color="#434f54">//----------------</font> <font color="#000000">zapaleni</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// test poruchy</font> <font color="#434f54">// -----------------</font> <font color="#434f54">//testPlamene(); </font> <font color="#434f54">// udrzeni horeni</font> <font color="#434f54">//--------------</font> <font color="#000000">udrzujHoreni</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// dohoreni</font> <font color="#434f54">//---------</font> <font color="#000000">dohoreni</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#000000">{</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Prostorovy termostat vypnut"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#000000">}</font> <font color="#434f54">// kvitence pripadne poruchy</font> <font color="#434f54">//-------------------------------</font> <font color="#000000">kvitancePoruchy</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#00979c">void</font> <font color="#000000">vypniVse</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#434f54">// funkce vypni vse</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Vypinam vsechny rele ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">davkovaniPelet</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//vypni davkovani</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">spirala</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//vypni zhaveni</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">ventilator</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//vypni ventilator</font> <font color="#000000">}</font> <font color="#00979c">void</font> <font color="#000000">zapalovaciDavkaPelet</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#434f54">// prvotni davkovani pelet pro zapaleni</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Davkuji pelety pro zapaleni ... 110s"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">davkovaniPelet</font><font color="#434f54">,</font> <font color="#00979c">LOW</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//davkuj pelety</font> <font color="#5e6d03">for</font> <font color="#000000">(</font><font color="#000000">smycka4</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#000000">smycka4</font> <font color="#434f54"><</font> <font color="#000000">smycka4max</font><font color="#000000">;</font> <font color="#000000">smycka4</font> <font color="#434f54">++</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">1000</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">wdt_reset</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// resetuj watchdog</font> <font color="#000000">}</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">davkovaniPelet</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//potom vypni davkovani</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">ventilator</font><font color="#434f54">,</font> <font color="#00979c">LOW</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//zapni ventilator</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">spirala</font><font color="#434f54">,</font> <font color="#00979c">LOW</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//zapni zhaveni</font> <font color="#000000">}</font> <font color="#00979c">void</font> <font color="#000000">zapaleni</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#434f54">// funkce zapaleni pelet</font> <font color="#434f54">// 3 pokusy o zapaleni</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Spoustim zapaleni ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#5e6d03">for</font> <font color="#000000">(</font><font color="#000000">smycka3</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#000000">smycka3</font> <font color="#434f54"><</font> <font color="#000000">smycka3max</font><font color="#000000">;</font> <font color="#000000">smycka3</font> <font color="#434f54">++</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#434f54">// smycka "1-10" minut zapalovani</font> <font color="#5e6d03">for</font> <font color="#000000">(</font><font color="#000000">smycka1</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#000000">smycka1</font> <font color="#434f54"><</font> <font color="#000000">smycka1max</font><font color="#000000">;</font> <font color="#000000">smycka1</font> <font color="#434f54">++</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#000000">wdt_reset</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// resetuj watchdog</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#005c5f">"Pokus "</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#000000">smycka3</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#005c5f">"/"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#000000">smycka3max</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#005c5f">" stav: "</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#000000">smycka1</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#005c5f">"s/"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#000000">smycka1max</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"s "</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#5e6d03">if</font><font color="#000000">(</font><font color="#d35400">digitalRead</font><font color="#000000">(</font><font color="#000000">kotlovyTermostat</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#00979c">LOW</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#434f54">// kotlovy termostat vypne</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">spirala</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//vypni zhaveni</font> <font color="#000000">smycka1</font> <font color="#434f54">=</font> <font color="#000000">smycka1max</font><font color="#000000">;</font> <font color="#434f54">// ukonci smycku1</font> <font color="#000000">smycka3</font> <font color="#434f54">=</font> <font color="#000000">smycka3max</font><font color="#000000">;</font> <font color="#434f54">// ukonci smycku3</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Rozepnuti termostatu ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#d35400">bitSet</font><font color="#000000">(</font><font color="#000000">porucha</font><font color="#434f54">,</font><font color="#000000">0</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// nastav poruchu bit c.0 na "1"</font> <font color="#000000">}</font> <font color="#5e6d03">if</font><font color="#000000">(</font><font color="#d35400">analogRead</font><font color="#000000">(</font><font color="#000000">fotobunka</font><font color="#000000">)</font> <font color="#434f54"><=</font> <font color="#000000">500</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#434f54">//pokud fotobunka vidi plamen</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">spirala</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//vypni zhaveni</font> <font color="#000000">smycka1</font> <font color="#434f54">=</font> <font color="#000000">smycka1max</font><font color="#000000">;</font> <font color="#434f54">// ukonci smycku1</font> <font color="#000000">smycka3</font> <font color="#434f54">=</font> <font color="#000000">smycka3max</font><font color="#000000">;</font> <font color="#434f54">// ukonci smycku3 </font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">" hori ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace </font> <font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#000000">{</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">" nehori ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace </font> <font color="#000000">}</font> <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">1000</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#5e6d03">for</font> <font color="#000000">(</font><font color="#000000">smycka5</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#000000">smycka5</font> <font color="#434f54"><</font> <font color="#000000">smycka5max</font><font color="#000000">;</font> <font color="#000000">smycka5</font> <font color="#434f54">++</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">1000</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">wdt_reset</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// resetuj watchdog</font> <font color="#000000">}</font> <font color="#434f54">//delay(5000); //cekej 5s</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#00979c">void</font> <font color="#000000">udrzujHoreni</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#434f54">// funkce udrzeni horeni</font> <font color="#000000">ldr_value</font> <font color="#434f54">=</font> <font color="#d35400">analogRead</font><font color="#000000">(</font><font color="#000000">ldr</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//čte hodnoty LDR</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">print</font><font color="#000000">(</font><font color="#005c5f">"HODNOTA FOTOBUNKY = "</font><font color="#000000">)</font><font color="#000000">;</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#000000">ldr_value</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//zobrazí hodnoty LDR na seriove lince</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Udrzeni horeni ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#5e6d03">for</font> <font color="#000000">(</font><font color="#000000">smycka2</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#000000">smycka2</font> <font color="#434f54"><</font> <font color="#000000">smycka2max</font><font color="#000000">;</font> <font color="#000000">smycka2</font> <font color="#434f54">++</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#000000">wdt_reset</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// resetuj watchdog</font> <font color="#000000">smycka2</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">// vynuluj smycku</font> <font color="#5e6d03">if</font><font color="#000000">(</font><font color="#d35400">digitalRead</font><font color="#000000">(</font><font color="#000000">prostorovyTermostat</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#00979c">HIGH</font> <font color="#434f54">&&</font> <font color="#d35400">digitalRead</font><font color="#000000">(</font><font color="#000000">kotlovyTermostat</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#434f54">// prostorovy + kotlovy termostat je zapnuty</font> <font color="#5e6d03">if</font><font color="#000000">(</font><font color="#d35400">analogRead</font><font color="#000000">(</font><font color="#000000">fotobunka</font><font color="#000000">)</font> <font color="#434f54"><=</font> <font color="#000000">500</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#434f54">//pokud fotobunka vidi plamen</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Test plamene ... hori"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">davkovaniPelet</font><font color="#434f54">,</font> <font color="#00979c">LOW</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//davkuj pelety</font> <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">8000</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//pockej 8s</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">davkovaniPelet</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//vypni davkovani</font> <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">10000</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//pockej 10s</font> <font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#000000">{</font> <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">1000</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// pocekej jeste 1s a zkus to znovu</font> <font color="#5e6d03">if</font><font color="#000000">(</font><font color="#d35400">analogRead</font><font color="#000000">(</font><font color="#000000">fotobunka</font><font color="#000000">)</font> <font color="#434f54">>=</font> <font color="#000000">500</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#434f54">//pokud fotobunka nevidi plamen</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Test plamene ... porucha"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#000000">smycka2</font> <font color="#434f54">=</font> <font color="#000000">smycka2max</font><font color="#000000">;</font> <font color="#434f54">// ukonci smycku</font> <font color="#434f54">//porucha = 1; // nastav poruchu</font> <font color="#d35400">bitSet</font><font color="#000000">(</font><font color="#000000">porucha</font><font color="#434f54">,</font><font color="#000000">1</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// nastav poruchu bit c.1 na "1"</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">alarm</font><font color="#434f54">,</font> <font color="#00979c">LOW</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// zapni alarm</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#000000">{</font> <font color="#000000">smycka2</font> <font color="#434f54">=</font> <font color="#000000">smycka2max</font><font color="#000000">;</font> <font color="#434f54">// ukonci smycku</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#00979c">void</font> <font color="#000000">dohoreni</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#434f54">// funkce dohoreni</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Dohoreni ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">davkovaniPelet</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//vypni davkovani pelet</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">spirala</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//vypni zhaveni - pro jistotu</font> <font color="#5e6d03">for</font> <font color="#000000">(</font><font color="#000000">smycka6</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#000000">smycka6</font> <font color="#434f54"><</font> <font color="#000000">smycka6max</font><font color="#000000">;</font> <font color="#000000">smycka6</font> <font color="#434f54">++</font><font color="#000000">)</font><font color="#000000">{</font> <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">1000</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">wdt_reset</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// resetuj watchdog</font> <font color="#000000">}</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">ventilator</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">//vypni ventilator</font> <font color="#000000">}</font> <font color="#00979c">void</font> <font color="#000000">kvitancePoruchy</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#434f54">// funkce kvitance poruchy</font> <font color="#5e6d03">if</font><font color="#000000">(</font><font color="#000000">porucha</font> <font color="#434f54">></font> <font color="#000000">0</font> <font color="#000000">)</font><font color="#000000">{</font> <font color="#434f54">// kdyz je porucha aktivni</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Kvitance poruchy ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#434f54">// vypni vse</font> <font color="#000000">vypniVse</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#5e6d03">while</font> <font color="#000000">(</font><font color="#d35400">digitalRead</font><font color="#000000">(</font><font color="#000000">tlacitkoKvitance</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#00979c">LOW</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#434f54">// zapni alarm a cekej na stisk tlacitka</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">alarm</font><font color="#434f54">,</font> <font color="#00979c">LOW</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// zapni alarm</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Porucha ... cekam na kvitanci"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#000000">wdt_reset</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// resetuj watchdog</font> <font color="#000000">}</font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Porucha kvitovana ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">alarm</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// vypni alarm</font> <font color="#000000">porucha</font> <font color="#434f54">=</font> <font color="#000000">0</font><font color="#000000">;</font> <font color="#434f54">// vynuluj poruchu</font> <font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#000000">{</font> <font color="#434f54">// jinak </font> <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#005c5f">"Zadna porucha ..."</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// ladici seriova komunikace</font> <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">alarm</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#434f54">// vypni alarm</font> <font color="#000000">}</font> <font color="#000000">}</font> </pre>
Díky moc!
Vojtěch Vosáhlo
ÚčastníkJeště tak mimochodem co je to za klimošku? Předpokládám že cíl je nepájet přímo na ni ani na ovladač. To že je tam 0 znamená že to nevysílá v žádném známém formátu. Chtělo by to její název a pak se dá třeba kouknout i po nějakejch projektech, jestli nedělal někdo reverse engineering…
To pane si prosím nechte 😀 -
AutorPříspěvky