Pri nacitani cidiel pomiesa teploty

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Pacok
Příspěvky: 33
Registrován: 08 bře 2020, 10:14

Pri nacitani cidiel pomiesa teploty

Příspěvek od Pacok » 13 říj 2020, 07:51

Zdravim vospolok.Mam uz asi pat rokov Arduino Mega + dotykovy display + Rtc.Ked som mal na zaciatku dva cidla ds18b20 islo vsetko ok.A teraz ked som pridal tretie,ktore je asi 10m daleko vedene po utp kabli tak sa stava ze sa pomiesaju adresy cidiel a spina mi solarny panel .Kod teraz nemam no musel som dat casovac kedy nacita cidla,kedze nepotrebujem rychlost.Bez toho casovaca mi nesiel display.nerobi to pravidelne.Ako sikovne softwerovo tomu zabranit?Vdaka

ondraN
Příspěvky: 935
Registrován: 08 srp 2019, 20:01

Re: Pri nacitani cidiel pomiesa teploty

Příspěvek od ondraN » 13 říj 2020, 12:39

Tak na to bych nepotřeboval jednu, ale dvě křišťálové koule. Tou první bych si na dálku prohlédl Tvůj kód a tou druhou hardware. Myslíš, že ti je někdo schopen poradit bez detailní znalosti obojího? :evil:

jankop
Příspěvky: 1057
Registrován: 06 zář 2017, 20:04
Bydliště: Brno
Kontaktovat uživatele:

Re: Pri nacitani cidiel pomiesa teploty

Příspěvek od jankop » 13 říj 2020, 13:18

ondraN píše:
13 říj 2020, 12:39
Tak na to bych nepotřeboval jednu, ale dvě křišťálové koule.
To já vím přesně, co tomu je. Je to pokažený! :D

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

Re: Pri nacitani cidiel pomiesa teploty

Příspěvek od pavel1tu » 13 říj 2020, 13:47

Dej sem kod, zapojení 3 vodič, nebo parazirní napájení, délka vedení ?

při více čidlech je musíš vyčíst jakoumají adresu - ideálně po jednoma označit si je,
pak je vyčítat přímo dle adres - po jednom
když je vyčítáš hromadně a netřídíš dle adres, může se stát, že když jedno neodpoví, vyčtené hodnoty se srovnají v jiném pořadí - jakoby se zamění.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Pacok
Příspěvky: 33
Registrován: 08 bře 2020, 10:14

Re: Pri nacitani cidiel pomiesa teploty

Příspěvek od Pacok » 13 říj 2020, 13:57

Vsetky tri cidla su rovnake zapojene su vsetky tri vodice.dva z nich mam dlho a su zapojene 1m kablom takze isli pat rokov bez zavad.no teraz som doplnil tretie tiez vodotesne rovnako no je daleko vonku asi 10m.Pouzil som utp kabel.pokial som pouzival tretie cidlo s druhym sli ok.A teraz ked sa uz pouzivaju dokopy tri miesaju sa hodnoty.Kod dam vecer ked pridem z roboty.

Uživatelský avatar
kiRRow
Příspěvky: 1313
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Pri nacitani cidiel pomiesa teploty

Příspěvek od kiRRow » 13 říj 2020, 14:22

I2C sběrnice je původně určená ke komunikaci zařízení na jedné DPS do vzdálenosti max 30cm. U I2C sběrnice nikdy nepoužívej kroucený pár (vem třeba hnědý a modrý), nikdy nezkrucuj páry dohromady aby jsi získal větší průřez. Použíj nekroucený stítněný kabel, kde stínění na straně arduina zapojíš na GND na druhé straně se nezapojuje nikam. A to vše jen za předpokladu, že každý senzor má svou vlastní jedinečnou adresu. Na větší vzdálenosti se používají jinačí protokoly ... RS232 do 15m, RS485 do 1,5km (tenhle zrovna vyžaduje kroucený pár) ...

Další věc ... většina těhle modulů má na sobě pull-up rezistory. Máš je tam pak 3x ... ale měly by být jen jednou. Je třeba ty odpory z těch modulů dát do pryč.

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

Re: Pri nacitani cidiel pomiesa teploty

Příspěvek od AstroMiK » 13 říj 2020, 14:36

kiRRow píše:
13 říj 2020, 14:22
... I2C sběrnice je původně určená ke komunikaci zařízení na jedné DPS do vzdálenosti max 30cm....
DS18B20 není I2C, ale OneWire.
Na datovém vodiči by měl být jeden společný Pull-Up 4k7.

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

Re: Pri nacitani cidiel pomiesa teploty

Příspěvek od pavel1tu » 13 říj 2020, 14:57

Pacok píše:
13 říj 2020, 13:57
Vsetky tri cidla su rovnake zapojene su vsetky tri vodice.dva z nich mam dlho a su zapojene 1m kablom takze isli pat rokov bez zavad.no teraz som doplnil tretie tiez vodotesne rovnako no je daleko vonku asi 10m.Pouzil som utp kabel.pokial som pouzival tretie cidlo s druhym sli ok.A teraz ked sa uz pouzivaju dokopy tri miesaju sa hodnoty.Kod dam vecer ked pridem z roboty.
OK, každé čidlo je na vlastní vstup Arduina, nebo jsou všechny připojené jakoby na jednu sběrnici - tedy na jeden vstup ?
Pokud jsou na jeden vstup - prostuduj si jak se "tahá" sběrnice "OneWire".
Může být dlouhá ----- hodně ;)
Ale odbočky z ní mají svá omezení - vzdálenost.
NEFUNGUJE v zapojení "star" - tedy do hvězdy - z jednoho bodu rozbočené na více stran.
Jak se píše výše - jedna sběrna - 1 odpor proti datovému vodiči.
A další "standarty" ;)
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Uživatelský avatar
kiRRow
Příspěvky: 1313
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Pri nacitani cidiel pomiesa teploty

Příspěvek od kiRRow » 13 říj 2020, 15:01

AstroMiK píše:
13 říj 2020, 14:36
kiRRow píše:
13 říj 2020, 14:22
... I2C sběrnice je původně určená ke komunikaci zařízení na jedné DPS do vzdálenosti max 30cm....
DS18B20 není I2C, ale OneWire.
Na datovém vodiči by měl být jeden společný Pull-Up 4k7.
Pardon ... už tak nějak předpokládám všude možně I2C ... omlouvám se za mystifikaci

Pacok
Příspěvky: 33
Registrován: 08 bře 2020, 10:14

Re: Pri nacitani cidiel pomiesa teploty

Příspěvek od Pacok » 13 říj 2020, 15:17

Zabudol som no mam zapojeny 4k7.teda musim doplnit este dalsie dva?Jedna adresa je 0. Moze byt aj tam chyba?

Odpovědět

Kdo je online

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