ds18b20 chyba

vizner2
Příspěvky: 8
Registrován: 08 led 2019, 21:22
Reputation: 0

ds18b20 chyba

Příspěvek od vizner2 » 14 led 2019, 19:59

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.

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: ds18b20 chyba

Příspěvek od AstroMiK » 14 led 2019, 20:38

... 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.

vizner2
Příspěvky: 8
Registrován: 08 led 2019, 21:22
Reputation: 0

Re: ds18b20 chyba

Příspěvek od vizner2 » 14 led 2019, 20:54

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.

posjirka
Příspěvky: 14
Registrován: 05 srp 2017, 22:12
Reputation: 0

Re: ds18b20 chyba

Příspěvek od posjirka » 06 bře 2019, 22:29

překontroluj zapojení (jestli nemáš otočené čidlo, odpor mezi +5V a signálem,...) , případně zkus jiné čidlo nebo jiné arduino ...

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: ds18b20 chyba

Příspěvek od pavel1tu » 07 bře 2019, 06:21

- 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í"
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Matko
Příspěvky: 5
Registrován: 22 říj 2019, 10:42
Reputation: 0

Re: ds18b20 chyba

Příspěvek od Matko » 22 říj 2019, 11:03

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..

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: ds18b20 chyba

Příspěvek od martinius96 » 22 říj 2019, 11:19

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ť.

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: ds18b20 chyba

Příspěvek od gilhad » 22 říj 2019, 13:17

Na Arduinu jde vetsina analogovych pinu pouzit i jako digitalni vystupy (a vstupy)

Matko
Příspěvky: 5
Registrován: 22 říj 2019, 10:42
Reputation: 0

Re: ds18b20 chyba

Příspěvek od Matko » 22 říj 2019, 14:19

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);
}

:?:

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: ds18b20 chyba

Příspěvek od AstroMiK » 22 říj 2019, 16:13

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...

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů