Stránka 1 z 2

ds18b20 chyba

Napsal: 14 led 2019, 19:59
od vizner2
Ahoj dá se nějak poměřit čidlo ds18b20 ?
Po připojení a nahrání kódu ( https://www.hwkitchen.cz/arduino-navody ... no-navody/ ) na desku arduino mega 2560 (klon) píše teplotu -127 stupňů.

Díky za rady.

Re: ds18b20 chyba

Napsal: 14 led 2019, 20:38
od AstroMiK
... Dočti ten článek až do konce. Píše se tam přesně o problému -127°C. Asi ti tam chybí ten odpor, nebo máš špatně zvolený vstup.

Re: ds18b20 chyba

Napsal: 14 led 2019, 20:54
od vizner2
bohužel odpor tam mám a vstup mám taky dobře. Už mě jedině napadá špatný kabel k čidlu nebo špatné čidlo.
Odpor mám teda 4k7 ale na jiných návodech normálně funguje.
kabel dlouhý origo 1m.

Re: ds18b20 chyba

Napsal: 06 bře 2019, 22:29
od posjirka
překontroluj zapojení (jestli nemáš otočené čidlo, odpor mezi +5V a signálem,...) , případně zkus jiné čidlo nebo jiné arduino ...

Re: ds18b20 chyba

Napsal: 07 bře 2019, 06:21
od pavel1tu
- pokud máš čidlo "samotné", vyzkoušej ho bez kabelu
- vyzkoušej ho s kodem co je u knihovny v Arduino IDE, nebo si najdi kod pro "skenování adres na OneWire"
- pokud to máš zapojené jen na stole - ověř hlavně že odpro má kontakt, ty desky z číny někdy blbnou

čidlo neproměříš, je to takový malý "počítač" který po dotazu se probudí, změří teplotu, pošle ti teplotu a zase se uspí"

Re: ds18b20 chyba

Napsal: 22 říj 2019, 11:03
od Matko
Ahoj

Mám podobný problém. DS18B20 som pripojil k doske STM32 cez pullup odpor 4,7k na pin 10 (A0).
V okne Monitor sériového portu mi ukazuje teplotu -127. Zapojenie je v poriadku.
Vymenil som i druhý DS18B20 a to isté. Keď ho odpojím výsledok rovnaký.
Skúšal som 3V i 5V pri odpore 10k a to isté.

program:

Kód: Vybrat vše

#include <OneWire.h>
#include <DallasTemperature.h>

// pin, kde bude senzor zapojený
#define pin 10

// nastavení komunikace senzoru přes pin
OneWire oneWire(pin);     
// převedeme onewire do Dallasu                     
DallasTemperature sensors(&oneWire);           
 
void setup(void)
{
  // nastavení rychlosti sériové komunikace
  Serial.begin(9600);
  // zapnutí senzoru                          
  sensors.begin();                             
}
 
void loop(void)
{
  // požádáme senzor o hodnotu teploty
  sensors.requestTemperatures();               
  Serial.print("Teplota je: ");
  // tento řádek je vysvětlený v článku
  Serial.print(sensors.getTempCByIndex(0));    
  Serial.println(" stupnu Celsia");
  delay(1000);
}
Čo s tím ? Neviem kde by mohla byť chyba..

Re: ds18b20 chyba

Napsal: 22 říj 2019, 11:19
od martinius96
Problém bude podľa mňa v tom, že používaš analógový pin na digitálny senzor.
Analógový pin je iba vstupný (ak vychádzam z Arduina), t.j. nevieš poslať príkaz na vyžiadanie si dát zo senzora.
Určite by som skúsil znova použitím digitálneho pinu.
Edit:
A taktiež po vyžiadaní by som pridal delay 750-1000ms aby dáta stihli dôjsť a správne sa načítať.

Re: ds18b20 chyba

Napsal: 22 říj 2019, 13:17
od gilhad
Na Arduinu jde vetsina analogovych pinu pouzit i jako digitalni vystupy (a vstupy)

Re: ds18b20 chyba

Napsal: 22 říj 2019, 14:19
od Matko
Tak som pridal delay 1000 ms a zmenil na pin 25 PB12 a žiadna zmena.
Stále zobrazuje -127

Kód: Vybrat vše

#include <OneWire.h>
#include <DallasTemperature.h>

// pin, kde bude senzor zapojený
#define pin 25

// nastavení komunikace senzoru přes pin
OneWire oneWire(pin);     
// převedeme onewire do Dallasu                     
DallasTemperature sensors(&oneWire);           
 
void setup(void)
{
  // nastavení rychlosti sériové komunikace
  Serial.begin(9600);
  // zapnutí senzoru                          
  sensors.begin();                             
}
 
void loop(void)
{
  // požádáme senzor o hodnotu teploty
  sensors.requestTemperatures();
  delay(1000);               
  Serial.print("Teplota je: ");
  // tento řádek je vysvětlený v článku
  Serial.print(sensors.getTempCByIndex(0));    
  Serial.println(" stupnu Celsia");
  delay(1000);
}

:?:

Re: ds18b20 chyba

Napsal: 22 říj 2019, 16:13
od AstroMiK
Původní řádku:

Kód: Vybrat vše

#define pin 25
přepiš na:

Kód: Vybrat vše

#define pin PB12
nebo na:

Kód: Vybrat vše

#define pin PA0
Podle toho, kam to čidlo připojíš.

Odzkoušeno a funguje to.
Pokud by ti to nešlo, tak bude chyba u tebe v hardwéru...