Teplotní čidlo DALLAS DS18B20
Teplotní čidlo DALLAS DS18B20
Koupil jsem čidlo DALLAS na vyhodnocování teploty na chladiči u regulátoru panelů, zapojil do ESP 32, naprogramoval a zjistil jsem to že "všehlasné" Dallas je tak pomalé, že je k vyhození hned, a né až potom.
Použil jsem kód pro Arduino IDE:
//----------------------------------------------
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 0 //vývod P0
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
//----------------------------------------------
float tempC = sensors.getTempCByIndex(0);
if (tempC != DEVICE_DISCONNECTED_C)
{
udp.print("Temperature for the device 1 (index 0) is: ");
udp.println(tempC);
}
else
{
udp.println("Error: Could not read temperature data");
}
//----------------------------------------------
První je deklarace a druhý je lup.
Ono to funguje, ale čekací doba na výpočet či měření, nebo co se děje dál, je 500ms.
Kdo by věděl a měl chuť sem sdělit kód s měřením kratším než 1ms, určitě ho uvítají všeci majitelé čídla se senzoremr Dalas DS18B20.
Použil jsem kód pro Arduino IDE:
//----------------------------------------------
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 0 //vývod P0
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
//----------------------------------------------
float tempC = sensors.getTempCByIndex(0);
if (tempC != DEVICE_DISCONNECTED_C)
{
udp.print("Temperature for the device 1 (index 0) is: ");
udp.println(tempC);
}
else
{
udp.println("Error: Could not read temperature data");
}
//----------------------------------------------
První je deklarace a druhý je lup.
Ono to funguje, ale čekací doba na výpočet či měření, nebo co se děje dál, je 500ms.
Kdo by věděl a měl chuť sem sdělit kód s měřením kratším než 1ms, určitě ho uvítají všeci majitelé čídla se senzoremr Dalas DS18B20.
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
- kybos
- Příspěvky: 239
- Registrován: čtv srp 05, 2021 5:49 pm
- Výkon panelů v FVE [Wp]: 15000
- Kapacita baterie [kWh]: 40
Re: Teplotní čidlo DALLAS DS18B20
Za 1 ms se ani nevytvoří dostatečná teplotní diference oproti minulému stavu, aby bylo možno při takové rychlosti snímání a rozlišovací schopnosti teplotního čidla (12 bitů) monitorovat nějakou změnu. Pokud chceš řešit teplotní diference jaderného reaktoru, musíš použít jiná čidla. Na běžné monitorování nebo řízení chlazení polovodičů DS18B20 stačí. Změř si teplotní gradienty při skokové změně zátěže a časy reálné změny teploty pouzdra čidla a nejspíš zjistíš, že řídíš systém, který má reakční časy v jednotkách sekund. Na to čidlo s reakční dobou 500 ms s rezervou stačí. Na stole takový regulátor bez problému chodí. Potíže nastanou až při jeho instalaci do silně zarušeného prostředí. Někdy se to povede na první dobrou, jindy je to duchařina a musí se silně filtrovat i získané hodnoty.
15 kWp JJZ + 3x Tristar MPPT60 + Victron 150/100 + 48V LiFePO 850 Ah + UPS 8kW (MPP-Solar 8048 LC) + nabíječka 4 x 1,2 kW (DELTA) Start: 2012
Re: Teplotní čidlo DALLAS DS18B20
Takový kód neexistuje protože samotnému čidlu trvá konverze podstatně déle:
Re: Teplotní čidlo DALLAS DS18B20
A proč potřebuješ měřit chladiče každou ms? Jak psal Kybos, než se rozdíl promítne do ohřevu/ochlazení té kovové olačky a následně se to projeví na dallasu, uběhne několik sekund. I pokud použiješ jen samotné čidlo, tak 0,5s zpoždění ve zpracování bude +- odpovídat teplotním změnám na čidle. Pokud chceš o něco (ne o moc) rychlejší a přesnější reakce, pořiď si odporové PT1000.
Re: Teplotní čidlo DALLAS DS18B20
Prý to umí Chuck Norris.
Ale ten to zas nepotřebuje, protože on naopak řekne jaká má být teplota, a ta se přizpůsobí.
Docela by mě zajímalo, co reguluješ, že potřebuješ odezvu do 1ms.
Na to by snad mohl fungovat nějaký opravdu miniaturní termistor (vypadají jako zrnko písku, ze kterého lezou 2 vlasy), aby měl minimální tepelnou setrvačnost.
Ale ten to zas nepotřebuje, protože on naopak řekne jaká má být teplota, a ta se přizpůsobí.
Docela by mě zajímalo, co reguluješ, že potřebuješ odezvu do 1ms.
Na to by snad mohl fungovat nějaký opravdu miniaturní termistor (vypadají jako zrnko písku, ze kterého lezou 2 vlasy), aby měl minimální tepelnou setrvačnost.
Re: Teplotní čidlo DALLAS DS18B20
Díky všem za infa, nejde o to, zda potřebuju měřit po 500ms nebo po 1sec. a nebo výše, ale o to že to značně brzdí procesor s jinými výpočty které jsou nutné měřit a řídit bez takovýhlech prodlev.
Jinak termistor + odpor měří ESP32 za méně než 100 us ve 12bitech.
Kde najdu takovouhle tabulku?
Jinak termistor + odpor měří ESP32 za méně než 100 us ve 12bitech.
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Re: Teplotní čidlo DALLAS DS18B20
kamil neuvedl zdroj, ale je to v datasheetu
https://www.analog.com/media/en/technic ... s18b20.pdf
https://www.analog.com/media/en/technic ... s18b20.pdf
Re: Teplotní čidlo DALLAS DS18B20
Co mě hodně pomohlo je "pulldown" a to u každého vstupu (pokuď je podporován). Nějaké zatlumování odpory bylo spíše na nic. Dále měření 5x po sobě a hodnotu vydělit /5. Víc než 5 a méně než 5 se mi ukázalo jako neoptimální.
Pro toto čidlo jsem přidal odpor 4K7 na +, vč.pulldown.
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Re: Teplotní čidlo DALLAS DS18B20
Dík.tomasi02 píše: ↑pát čer 07, 2024 9:41 am kamil neuvedl zdroj, ale je to v datasheetu
https://www.analog.com/media/en/technic ... s18b20.pdf
Nj, n... Tak to je v kopru.
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
-
- Příspěvky: 294
- Registrován: stř zář 08, 2021 10:40 am
- Bydliště: za Berounem
- Výkon panelů v FVE [Wp]: 4010
- Kapacita baterie [kWh]: 12
Re: Teplotní čidlo DALLAS DS18B20
Nejsem úplně programátor, ale takovéhle věci se řeší tak, že pošlu požadavek na zjištění teploty, mezitím si počítám co potřebuju a jakmile mám měření teploty hotový, tak si ho přečtu, ne? Nemusíš čekat 500ms...
mobilní elektrárna (VW California): 290Wp mono, Winston 12V/130Ah, Victron MPPT 75/15, Victron inverter 250VA, Victron charger 20A. Orion 30A
domácí elektrárna "ETERNIT": FV 5kWp, LiFePO4 48V/120Ah+120Ah, Axpert King 48/5000
domácí elektrárna "ETERNIT": FV 5kWp, LiFePO4 48V/120Ah+120Ah, Axpert King 48/5000
Re: Teplotní čidlo DALLAS DS18B20
No, to je ten příkaz "sensors.requestTemperatures();", trvá cca 100msec. Další příkaz čtení je "sensors.getTempCByIndex(0); trvá cca 400ms.
Tak o čem je řeč?
Prostě tě to dál nepustí...
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
-
- Příspěvky: 294
- Registrován: stř zář 08, 2021 10:40 am
- Bydliště: za Berounem
- Výkon panelů v FVE [Wp]: 4010
- Kapacita baterie [kWh]: 12
Re: Teplotní čidlo DALLAS DS18B20
Aha, tak to se do toho budeš muset ponořit hlouběji.
1) čti to čidlo přímo podle adresy. Takhle to pokaždé hledá všechna čidla na sběrnici a pak ti vypíše to první.
2) Jdi trochu hlouběji - to čidlo požádáš o čtení teploty a po nějaké době si přečteš, jestli už je hotový a případně jaký je výsledek převodu. Tuším tam byl v registech nějaký flag, že už je hotovo a umělo se to i samo na běrnici nějak přihlásit o řeč.
1) čti to čidlo přímo podle adresy. Takhle to pokaždé hledá všechna čidla na sběrnici a pak ti vypíše to první.
2) Jdi trochu hlouběji - to čidlo požádáš o čtení teploty a po nějaké době si přečteš, jestli už je hotový a případně jaký je výsledek převodu. Tuším tam byl v registech nějaký flag, že už je hotovo a umělo se to i samo na běrnici nějak přihlásit o řeč.
mobilní elektrárna (VW California): 290Wp mono, Winston 12V/130Ah, Victron MPPT 75/15, Victron inverter 250VA, Victron charger 20A. Orion 30A
domácí elektrárna "ETERNIT": FV 5kWp, LiFePO4 48V/120Ah+120Ah, Axpert King 48/5000
domácí elektrárna "ETERNIT": FV 5kWp, LiFePO4 48V/120Ah+120Ah, Axpert King 48/5000
- kybos
- Příspěvky: 239
- Registrován: čtv srp 05, 2021 5:49 pm
- Výkon panelů v FVE [Wp]: 15000
- Kapacita baterie [kWh]: 40
Re: Teplotní čidlo DALLAS DS18B20
U mne pomohlo použít aktivní napájení 5 V místo 3,3 V, blokovací keramický kondenzátor na napájení u každého čidla na sběrnici, stíněné datové vedení připojené na zemi u procesoru, programové zahazování nepředpokládaných hodnot (všechny záporné a nulové hodnoty teploty a příliš velké odchylky od vlečeného průměru, pokud jsou jedinečné) a hodnoty 85°C. Je ale potřeba vzít na vědomí, že ovládanými ventilátory řídím teplotu chladičů spínacích prvků, na kterých se spínají proudy v řádu 200 A a čidlo musí být v co nejtěsnějším tepelném kontaktu s chladičem. Frekvence chybných čtení se snížila z jednou za pět minut na jednou za týden, ale pořád to neodpovídá mým představám o spolehlivosti tak důležité komponenty systému, jako je chlazení výkonového střídače.Cmrnda píše: ↑pát čer 07, 2024 9:53 am Co mě hodně pomohlo je "pulldown" a to u každého vstupu (pokuď je podporován). Nějaké zatlumování odpory bylo spíše na nic. Dále měření 5x po sobě a hodnotu vydělit /5. Víc než 5 a méně než 5 se mi ukázalo jako neoptimální.
Pro toto čidlo jsem přidal odpor 4K7 na +, vč.pulldown.
15 kWp JJZ + 3x Tristar MPPT60 + Victron 150/100 + 48V LiFePO 850 Ah + UPS 8kW (MPP-Solar 8048 LC) + nabíječka 4 x 1,2 kW (DELTA) Start: 2012
Re: Teplotní čidlo DALLAS DS18B20
Bohužel standardní knihovna pro Dallas blokuje program dokud není měření dokončeno. Je potřeba trochu zesložitit kód o druhou úlohu, která bude čekat na výsledek měření.
Nejjednodušší je vytvořit task "loop_mereni" ve kterém se čte z čidla a po je skončeni se nastaví proměnná "Mereni_OK". V hlavní smyčce se jen kontroluje nastaveni "Mereni_OK".
Asi nějak takhle:
Nejjednodušší je vytvořit task "loop_mereni" ve kterém se čte z čidla a po je skončeni se nastaví proměnná "Mereni_OK". V hlavní smyčce se jen kontroluje nastaveni "Mereni_OK".
Asi nějak takhle:
Kód: Vybrat vše
//----------------------------------------------
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 0 //vývod P0
void loop_mereni(void *parametry);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float tempC;
bool Mereni_OK;
TaskHandle_t uloha_mereni;
void setup ()
{
/***
setup vseho moznoho
***/
xTaskCreate(loop_mereni, "MERENI", 1000, NULL, configMAX_PRIORITIES - 1, &uloha_mereni);
Mereni_OK = false;
}
void loop()
{
//----------------------------------------------
if(Mereni_OK == true)
{
Mereni_OK = false;
if (tempC != DEVICE_DISCONNECTED_C)
{
udp.print("Temperature for the device 1 (index 0) is: ");
udp.println(tempC);
}
else
{
udp.println("Error: Could not read temperature data");
}
}
}
//----------------------------------------------
void loop_mereni(void *parametry)
{
while (true)
{
tempC = sensors.getTempCByIndex(0);
Mereni_OK = true;
vTaskDelay(pdMS_TO_TICKS((100));
}
}
Re: Teplotní čidlo DALLAS DS18B20
Multitasking, asi vhodná věc, jenže vím já jestli už se nepoužívá v nějakých knihovnách pro ESP32? V tom prvním článku píšou že všechny kódy běží na prvním jádru, to ano, ale co knihovny? Zase jinde sem čet že právě WiFi a kol běží na druhém jádru.
Pokuď nebudu znát průběžnou vytíženost CPU obou jader, bude velmi obtížné do toho nechat balancovat přepínání jader a ještě včetně priority procesů.
Zkusím nějaký experiment.
Pokuď nebudu znát průběžnou vytíženost CPU obou jader, bude velmi obtížné do toho nechat balancovat přepínání jader a ještě včetně priority procesů.
Zkusím nějaký experiment.
Nj, ale kam až zajít, k propájené plechové krabičce s průchodkovými kondenzátory? Jinak to blokování konndenzátory je dost problém, protože vývody/vstupy nemají vedle "zem". U ESP jsou snad jen 3 a je to celý velký, takže není možné blokování provést těsně u vstupů. U RPI pico je ijch daleko víc a ještě je to menší, tam možná, ikdyž stěží...
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Re: Teplotní čidlo DALLAS DS18B20
Nevím, proč jsi ve spojitosti s blokováním kondenzátory zmiňoval vývody ESP?
Blokovat napájení kondíkem je třeba u čidla. Ideálně přilepit malý SMD kondenzátor přímo na jeho nohy.
U ESP má případně smysl snížit rychlost hran malým sériovým odporem. Něco mezi 22R a 68R. Ale to platí u dlouhých vedení.
A u těch dlouhých pak má smysl dát na konec i antiparalelně malou schottky diodu proti podkmitu úrovně na datovém vodiči.
Ty Dallasy jsou na to dost citlivé.
Ale opět, má to smysl až u dlouhých vedení, řekněme tak od 5m víc.
Napsat neblokující čtení, na to nepotřebuješ multitasking a už vůbec ne víc jader.
Komunikace s tím čidlem je tak pomalá, a ESP tak rychlé, že to zvládneš jednoduchým algoritmem s přerušením.
Blokovat napájení kondíkem je třeba u čidla. Ideálně přilepit malý SMD kondenzátor přímo na jeho nohy.
U ESP má případně smysl snížit rychlost hran malým sériovým odporem. Něco mezi 22R a 68R. Ale to platí u dlouhých vedení.
A u těch dlouhých pak má smysl dát na konec i antiparalelně malou schottky diodu proti podkmitu úrovně na datovém vodiči.
Ty Dallasy jsou na to dost citlivé.
Ale opět, má to smysl až u dlouhých vedení, řekněme tak od 5m víc.
Napsat neblokující čtení, na to nepotřebuješ multitasking a už vůbec ne víc jader.
Komunikace s tím čidlem je tak pomalá, a ESP tak rychlé, že to zvládneš jednoduchým algoritmem s přerušením.
Re: Teplotní čidlo DALLAS DS18B20
Protože jestli chceš odrušit přívod do procesoru, tak je nutné dát R/C člen kondenzátorem ke vstupu toho vstupního zařízení, ať je to co je to.
Bude-li to naopak, tak obráceně, budeš odrušovat vstup do čidla.
U mě nepadá na váhu, 1m. Jinak 22-68 Ohm do série? Záleží na výstupních reálných odporech čidla, předpokládám že u tohoto budou velmi nízká a tím pádem i odolná proti rušení bez nějakého odporu 22Ohm, u mě k smíchu...Mex píše: ↑sob čer 08, 2024 7:05 pm U ESP má případně smysl snížit rychlost hran malým sériovým odporem. Něco mezi 22R a 68R. Ale to platí u dlouhých vedení.
A u těch dlouhých pak má smysl dát na konec i antiparalelně malou schottky diodu proti podkmitu úrovně na datovém vodiči.
Ty Dallasy jsou na to dost citlivé.
Ale opět, má to smysl až u dlouhých vedení, řekněme tak od 5m víc.
Přerušením čeho?
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Re: Teplotní čidlo DALLAS DS18B20
Co bys chtěl odrušit od procesoru?
Potřebuješ tomu čidlu zajistit hladké napájení. Je to vevnitř částečně analogový obvod a dobře vyfiltrované napájení je důležité, pokud to má dávat nějaké rozumné výsledky. Proto kondenzátor přes napájecí piny.
S tím smíchem a svými smajlíky mi připomínáš naši moudrou eurokandidátku Danuši Nerudovou.Cmrnda píše: ↑sob čer 08, 2024 9:56 pmU mě nepadá na váhu, 1m. Jinak 22-68 Ohm do série? Záleží na výstupních reálných odporech čidla, předpokládám že u tohoto budou velmi nízká a tím pádem i odolná proti rušení bez nějakého odporu 22Ohm, u mě k smíchu...Mex píše: ↑sob čer 08, 2024 7:05 pm U ESP má případně smysl snížit rychlost hran malým sériovým odporem. Něco mezi 22R a 68R. Ale to platí u dlouhých vedení.
A u těch dlouhých pak má smysl dát na konec i antiparalelně malou schottky diodu proti podkmitu úrovně na datovém vodiči.
Ty Dallasy jsou na to dost citlivé.
Ale opět, má to smysl až u dlouhých vedení, řekněme tak od 5m víc.
Až budeš mít někdy volnou chvilku tak si něco nastuduj o impedanci vedení, o odrazech na volném konci a podobně.
Podle toho, jak si ten algoritmus vymyslíš. Buď od změny na vstupu pinu, nebo od časovače.
Re: Teplotní čidlo DALLAS DS18B20
Všechny ty směsice kmitočtů co procesory a místní příslušenství vydává.
O odfiltrování napájení snad nemůže být mezi odborníkama ani řeč, protože to považují za samozřejmé.
Za to u in/out je to potřebné zvážit.
Jen študuj, budeš za to pochválen před nastoupenou jednotkou.
Aha, , ale dám vědět co jsem prakticky zjistil, narozdíl od študia rádoby bezvadných skriptů.
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Re: Teplotní čidlo DALLAS DS18B20
Výborně, funguje na první spuštění, 593ms stačí, míň to nejde, bez zdržování pracovního cyklu. Dík.
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Re: Teplotní čidlo DALLAS DS18B20
Není zač,
ať se daří.
ať se daří.
Re: Teplotní čidlo DALLAS DS18B20
tohle už jsem řešil před mnoha lety na arduinu, na časování existuje knihovna http://www.xpablo.cz/?p=421 a potom o žádný zastavování procesoru nejde, dallasu jsem nechával celu sekundu, ono není zas tak moc kam spěchat, ale když uteče zpráva z uartu, tak je to větší průšvih. Ostatně na tohle se používá zase přerušení... Ale jako antiprogramátor o tom vlastně vůbec nic nevím.
Polostrovní FVE 8 kWp na severu jižní moravy. multiplus II 5000, osvětlení na DC, MPPT od Victronu. Dyibms na lifepo4 baterkách.
Re: Teplotní čidlo DALLAS DS18B20
No, moment, o zastavování procecoru vůbec nejde, jde o to jak odpojit čekání od sondy od průběhu CPU.
14 let "nový" ?
Mě to funguje, v přeložení nápovědy v samotném kÓdu je napsáno o co tam, a jak běží.
14 let "nový" ?
Mě to funguje, v přeložení nápovědy v samotném kÓdu je napsáno o co tam, a jak běží.
void Ukol_1(void *parametry)
{
while (true)
{
sensors.requestTemperatures();
tempC = sensors.getTempCByIndex(0);
Mereni_DALLAS_OK = true;
Jadro_CPU_DALLAS = xPortGetCoreID();
vTaskDelay(pdMS_TO_TICKS((100)));
//Odložte úkol o daný počet zaškrtnutí. Skutečná doba, po kterou zůstane úloha zablokována, závisí na rychlosti tikání. Konstantu portTICK_PERIOD_MS lze použít k výpočtu reálného času z rychlosti tikání - s rozlišením jedné periody ticku.
//Aby byla tato funkce dostupná, musí být INCLUDE_vTaskDelay definováno jako 1.
//Další informace naleznete v části konfigurace.
//vTaskDelay() určuje čas, kdy se úkol chce odblokovat vzhledem k času, kdy je volána vTaskDelay().
//Například zadání doby blokování 100 tiků způsobí, že úloha po volání vTaskDelay() odblokuje 100 tiků.
//vTaskDelay() proto neposkytuje dobrou metodu řízení frekvence periodického úkolu, protože cesta procházející kódem, stejně jako další úkoly a aktivity přerušení, ovlivní frekvenci, při které se vTaskDelay() volá, a tedy i čas. při kterém se úkol dále provede.
//Viz xTaskDelayUntil() pro alternativní funkci API navrženou pro usnadnění provádění s pevnou frekvencí. Provádí to zadáním absolutního času (spíše než relativního času), kdy se má volající úloha odblokovat.
//@param xTicksToDelay Množství času v intervalech tikání, které by měla volající úloha zablokovat.
}
}
Elektrárna optimalizována pro temnější období.
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024
Panely jih: 3kWp
Panely západ: 3kWp
Panely hoře (top). 4kWp
Regulátor: MůjSystém 2024
Baterie: 8 x Lifepo4 280AH
Měnič DC/AC: Easun 12 000 000 mWp
MaR: MůjSystém 2024