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/
DS18B20_01-scaled.jpg

Re: DS18B20 – digitální teploměr pro Arduino

Napsal: 08 črc 2026, 21:56
od Cmrnda
Diego píše: ↑
08 črc 2026, 04:23
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/
DS18B20_01-scaled.jpg
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é 8-) .

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 :D

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é 8-) .
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 ;)

Obrázek