GabrielM
Vytvořené odpovědi
-
AutorPříspěvky
-
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 😀Pulec
ÚčastníkZjistil jsem že duležitý je pro mne první řádek ale ten je bohužel bez hodnot.
Decoded Unknown(0): Value:0 (0 bits)Při testu ovladače settopboxu je vše jak má.
Decoded NEC(1): Value:FD6897 (32 bits)
Bohužel tedy z ovladače klimatizace nedostanu tyto hodnoty.
Co stím?Zadávat tedy ty dlouhé kódy raw?S nimi to funguje ale je to hrozná práce.Attachments:
Pulec
ÚčastníkMoc děkuji pane Vosáhlo.Tady je výsledek.Co stoho je k použití?Viz příloha
V čem jsem to měl spustit v IRrecvDumpV2?
Děkuji za pomocAttachments:
Vojtěch Vosáhlo
ÚčastníkTakže to shrnu, zapneme zařízení -> bude pípat v určitých intervalech že je zapnuté -> (mohla by být hezká i telemetrie přes rf ale to je na vás) -> vyletíte (manuálně, vy odpalujete) -> měříme výšku -> pokud je x metrů nad zemí vypustí 1. padák -> y metrů nad zemí, druhý padák -> pípáme extra nahlas
Pípání je v celku jednoduché, stačí nějaký piezo měnič, kolem 100db a více (aby to bylo slyšet co nejdál) a nebo reproduktor ovládaný mosfetem.
Na měření výšky by se dal asi použít nějaký sensor tlaku ale lepší bude například MPL3115A2 s přesností 0,3m a měří i tlak a teplotu.
Kdyby to šlo, asi bych data ukládal na SD a nebo na extérní flash (pojištěnou baterií aby při vybití hlavní baterie nezmizela data) či eeprom ale ta má omezený počet zápisů.
Jako bonus můžete přidávat sensory – akcelerometr, teplota, tlak, vlhkost, gps…
Ať se to povede 😉
Vojtěch Vosáhlo
ÚčastníkZkusme něco jiného, například tuhle knihovnu: https://learn.adafruit.com/using-an-infrared-library/hardware-needed, ta vypisuje i kód ve formáru co by jsme chtěli.
Pulec
ÚčastníkBohužel nejsem schopen dostat z ovladače klimatizace kód v tomto tvaru 0xFDD827.Ten pak stačí v kódu programu?
Tento se mi daří získat pouze z ovladače na settopbox.Vše je zjištěno přes IRrecvDumpV2.Pulec
ÚčastníkDobrý den.Nejsou mi jasné ty kódy ovladače.V příloze posílám kódy získané megou přez ir přijímač.Je to postupně z 18,19,20,21,22 čili pořád směrem nahoru.Neřekl bych že se kód opakuje.Nebo ano?Musí se používat celá řada čísel?Děkuji za ujasnění
Attachments:
darira
ÚčastníkNení to na Arduinu, ale třeba by to stačilo.
Vojtěch Vosáhlo
ÚčastníkPředpokládám že ten ovladač má šipky nahoru a dolu pro zvýšení a snížení teploty a nějaká další tlačítka. Pokud tedy opravdu při stisku tlačítka nahoru pošle vždy jiný kód, což mi přijde trochu jako hovadina ale dobře, zkuste zjistit jak se číslo mění. Chce to něco podle čeho by jsme mohli ty kódy generovat aby jste je neměl jen všechny naklikané v kódu, pro každou teplotu jeden (což by taky šlo). Vyp/zap si taky vyřešíte podle kódů. Pak se dá podle protokolu ve kterém IR mluví napsat odesílání kódů.
Bivoj
ÚčastníkUltrazvuk v žádném případě. Jestli nechcete mít zdravotní potíže. Nejlepší je optická závora s Infra LED a infra čidla. v GM určitě mají. Pokud trochu programujete, tak doporučuji vysílat nějaký jednoduchý kód, aby jste se vyhnul falešným poplachům.
Pulec
ÚčastníkTak změna.Megu mám doma dnes došla.Autorův kód funguje.Jen nevím jak dodělat teplota více/méně.Jak jsem zjistil každá nastavená teplota má svůj kód.Šlo by do kódu dodělat teplota více ,teplota méně?Nebo napsat kód jak pro pitomce (čili mě) úplně nový a česky.
Jedná se mi o toto:
Teplota a vlhkost s dht22 :to se mi podařilo
Ovládat teplotu klimatizace vzestupně sestupně:to neumím
Vyp/zap:neumím není duležité ale potěšíLuke_CZ
ÚčastníkPro doplnění:
A, jde o přeplnění SRAM paměti vloženými obrázky a HTML kódem, autor skriptu řeší vše pouze v rámci SRAM. V jeho případě je to MEGA s 8kB SRAM vs tvoje UNO s 2kB SRAM 🙁Toto jde řešit:
1, větším arduinem, přístup autora = s kanonem na vrabce
2, nahráním obrázků na SD a loadovat je z ní = v případě opravdu velkých obrázků, či skriptů (java apod)
3, místo obrázků použít tag <button>, ten tolik paměti nezabere viz.
http://www.w3schools.com/tags/tag_button.asp
4, celkově optimalizovat zápis HTML viz F() macro
https://playground.arduino.cc/Learning/Memory
a PROGMEM
https://www.arduino.cc/en/Reference/PROGMEML.
Luke_CZ
ÚčastníkA, nerozumím
B, mega != wifi
C, „Učit se, učit se, učit se! VIL“
D, ESP8266 zvládne vše, tj. server, měření teploty a vlhkosti i ovládání IRL:
Pulec
ÚčastníkA.Píše to málo proměné
B.wifi je objednané
C.pro mě moc ne
Nevím jestly si rozumíme ale na arduinu beží server a přes vebowé rozhraní ovládám klimu.Arduino je osazeno ir diodou.Luke_CZ
ÚčastníkA, proč by to normální arduino nezvládlo?
B, nemáš možnost WiFi? ESP8266(NodeMcu) by bylo ideální, napájet by šlo rovnou v klimě a nikde by nelezly dráty
C, kód je jednoduchýL.
Pulec
ÚčastníkAno to jsem našel bohužel to je na megu arduino to nezvládne.Na megu čekám je objednaná.Mám ir přijímač a ir vysílač a uno.Chtěl bych jen zvýšení a snížení teploty klimatizace po ethernet.Kodý ovladače od klimi mám načtené.Dokázal by někdo napsat kód?Podobný tomu v odkazu víše.
Ale jen pro zvýšení a snížení teploty.Moc děkuji za jakoukoliv pomoc.darira
ÚčastníkNebo si udělej plošňák – takový mezi shield. Z jedné strany patice samce na které nasuneš arduino. Na plošným spoji si vyvedeš co potřebuješ, pro vývod senzorů mám šroubovací patice. Ze spodní strany dáš patice samice na které zasuneš shield pro LCD nebo co tam máš (já tam mám RTC + LCD shield od Elecfreaks). Po otevření krabice je arduino dobře přístupné, můžeš kdykoliv vytáhnout a nahradit jinou deskou.
Attachments:
Aleš
Účastník -
AutorPříspěvky