Stránka 1 z 1
DS18B20 – digitální teploměr pro Arduino
Napsal: 08 črc 2026, 04:23
od Diego
Dnes jsem si připravil klasiku mezi teplotními čidly. Podíváme se na DS18B20, jeho varianty a možnosti zapojení.
https://www.michaluvbrloh.cz/2026/07/08 ... o-arduino/
Re: DS18B20 – digitální teploměr pro Arduino
Napsal: 08 črc 2026, 21:56
od Cmrnda
To není klasika, ale šmejd všech šmejdů! Takovouhle falešnou nalejvárnu co píšeš, kdo Tě za to platí?
Velmi špatný zdrojový kód, co uvádíš.
Víš o tom kulový, nebylo by lepší si to co píšeš předem prověřit?
Re: DS18B20 – digitální teploměr pro Arduino
Napsal: 08 črc 2026, 23:53
od Caster
@Cmrnda
Máš nějakou konkrétní poznámku ?!?
Diego to má pěkně popsané

.
Re: DS18B20 – digitální teploměr pro Arduino
Napsal: 09 črc 2026, 04:17
od Diego
Taky nechápu co se ti nezdá. Nesmíš kupovat klony pak s tím není problém

Re: DS18B20 – digitální teploměr pro Arduino
Napsal: 09 črc 2026, 10:39
od Cmrnda
Caster píše: ↑08 črc 2026, 23:53
@Cmrnda
Máš nějakou konkrétní poznámku ?!?
Diego to má pěkně popsané

.
Těch poznámek je několik.
Tenhle pomalej integráč se zákl. zdrojákem zablokuje na dobu těch 750ms celej procesor, takže se musí vytvořit úkol a do něj dát funce vTaskDelay.
Kód: Vybrat vše
void Ukol_mereni_Dallas(void *param)
//void Ukol_mereni_Dallas()
{
Jadro_CPU_DALLAS = xPortGetCoreID();
while (true)
{
if (delay_hlavni_smycka != 0)
{
delay(delay_hlavni_smycka);
}
ArduinoOTA.handle();
sensors.requestTemperatures();
tempC = sensors.getTempCByIndex(0);
Mereni_DALLAS_OK = true;
vTaskDelay(pdMS_TO_TICKS((1000)));
// 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.
}
}
Další poznámky se odkouřily, podruhý to psát nebudu.
Re: DS18B20 – digitální teploměr pro Arduino
Napsal: 10 črc 2026, 11:25
od Caster
Pro zajímavost
