Fórum témák

» Több friss téma
Fórum » DS18B20 hőmérő-szenzor
 
Témaindító: Korben, idő: Nov 16, 2005
Témakörök:
Lapozás: OK   36 / 39
(#) Kovidivi válasza kissi hozzászólására (») Ápr 17, 2020 /
 
Ezt olvastam a korábban linkelt oldalon. Biztosan van valami rendszer a ROM kód generálásban, vagy a ROM kód egy része valamitől függ, ezért írja az oldal is, hogy néhány byte fix.
(#) Bakman válasza Kovidivi hozzászólására (») Ápr 17, 2020 1 /
 
A scratchpad-ben vannak állandó értékek, a ROM kódeban csak egy. Nem kevered a kettőt?
(#) Kovidivi válasza Bakman hozzászólására (») Ápr 17, 2020 /
 
Keverni nem keverem. Amit linkeltem, abban írja, hogy a ROM kódnak ilyennek kell lennie. Az okát fejből nem.tudom, mindjárt elolvasom ismét. Mindenhol ezt hozzák egyébként fel, így lehet tesztelni, hogy fake-e a DS18b20 vagy sem.
Meg van:
"It is a fake if its ROM address does not follow the pattern 28-xx-xx-xx-xx-00-00-xx . (Maxim's ROM is essentially a 48-bit counter with the most significant bits still at 0.) ".
A miértjét ne tőlem kérdezd.
A hozzászólás módosítva: Ápr 17, 2020
(#) Bakman válasza Kovidivi hozzászólására (») Ápr 17, 2020 /
 
Az adatlapban nem ez van. Előbb-utóbb kelleni fog az összes bájt, még ha nem is a közeli jövőben.
(#) Kovidivi hozzászólása Ápr 18, 2020 / 2
 
Végignéztem a raktárkészletem, hamis szenzor ügyben!
A képen látható bal oldaliból 4db-ot találtam. 0.5°C-onként változik a hőmérséklet amikor kiolvasom, és 70°C környékén egyszerűen nem válaszol a kérésekre, semmire.
A középsőből 15db-ot találtam, relatív sokáig tart a konverzió, 70°C környékén lekapcsol.
A jobb oldali pedig tökéletesen működik (15db-ot találtam), 120°C-ig melegítettem, semmi gondot nem okozott, és sokkal gyorsabban kész a konverzió, mint a középsőnél (0.5-0.7mp).
ROM kódilag mindegyik hamis, ezt én is alá tudom támasztani, mert Ebayesek.
A program alap dallas simple példaprogram (skip ROM, konverzió indítás az alapértelmezett felbontással, megvárja amíg kész, majd soros portra kiírja).
Tehát van hamis, hamis ami magas hőmérsékleten leáll, és hamis ami fél fokos felbontást tud és leáll, ha túl meleg
Eddig is mindig teszteltem a szenzorokat, mikor beépítettem, úgy tűnik, jó zacskóból válogattam.
(#) Bell válasza Kovidivi hozzászólására (») Ápr 20, 2020 /
 
Többször tapasztaltam, hogy az Alin, Ebay-en vásárolt elektronikus áramkörök paramétereinek nagyobb a szórása, pl. lassabbak.
(#) eProgress hozzászólása Ápr 27, 2020 /
 
Sziasztok!

Tudna valaki segíteni, hogy ennek a vezetékes szenzornak mi lehet a helyes csatlakozása a jack-hez?

https://www.hestore.hu/prod_10039062.html

Köszi
(#) kissi válasza eProgress hozzászólására (») Ápr 27, 2020 /
 
Szia!

A HESTORE-s alsó adatlap megmutatja !
(#) neogeo2 válasza kissi hozzászólására (») Ápr 27, 2020 /
 
Elvileg a piros a táp+, a fekete a táp-, a sárga az adat. A sárgát ne felejtsd el felhúzni egy 10k-val.
(#) kissi válasza neogeo2 hozzászólására (») Ápr 28, 2020 /
 
Én nem !
(#) neogeo2 válasza kissi hozzászólására (») Ápr 28, 2020 /
 
Ja bocsánat, mellényomtam.
(#) eProgress válasza neogeo2 hozzászólására (») Ápr 29, 2020 /
 
Köszi, akkor is kell az ellenállás, ha SONOFF-TH10-es kapcsolóhoz kell?
(#) NaSa2 hozzászólása Jún 2, 2020 /
 
Sziasztok!
adott egy DS18B20 ként vásárolt (aliról) szenzor.
nekem olybá tűnik, hogy a felső bájt el van csúszva egy bittel. tapasztalt már valaki ilyet?
például 35.8 Celsiusra így jön ki az adat:
alsó Bájt: ‭0011 1110‬
felső Bájt 0000 0100
összerakva: 0100 0011 1110
az alsó négy bit a 6,25 milli fokonként, tehát az egész hőfokra maradna a :
0100 0011 ami 67 Celsius lenne, először próbáltam, még plusz egy bittel jobbra forgatva, akkor ez 33 Celsius lenne, ami kontrollal nem pontos, viszont ha csak a felső négy bitet forgatom el jobbra 1 bittel, akkor pontos!
0010 0011 35 Celsius, és 1110 * 0,0625 0,8125 azaz 35,81 Celsius
így pontosan mér, csak fura számomra, hogy a 4. bitet el kell dobni.
(#) Bakman válasza NaSa2 hozzászólására (») Jún 2, 2020 / 1
 
Pár hozzászólást elolvasol visszafelé haladva az időben és láthatsz egyéb anomáliákat is távolkeleti szenzor esetén.
(#) Kovidivi válasza NaSa2 hozzászólására (») Jún 2, 2020 / 1
 
Próbáld ki egy Arduinos libbel! Így ki tudod zárni a programozási hibákat. Lehet, hogy csak a kommunikáció csúszik el. Fogj egy Arduino Nano-t/Uno-t, ráforrasztva egy tüskesor csatlakozót, le tudod az összes szenzorod tesztelni, mindentől függetlenül.
(#) NaSa2 válasza Kovidivi hozzászólására (») Jún 3, 2020 / 1
 
"Próbáld ki egy Arduinos libbel"
azzal nem tudom, az nincs.
Viszont azt hittem mindent kipróbáltam mielőtt írok, de nem, mert a hiba az általam használt példában volt.
Nevezetesen:
.......
unsigned *temp; // és e miatt volt rossz helyesen: unsigned temp;
.......
temp = Ow_Read(&PORTE, 2);
temp = (Ow_Read(&PORTE, 2) << 8) + temp;
......
ha valaki szintén bele akadna
Ettől független köszönöm a segítő szándékot!
(#) kormika hozzászólása Szept 24, 2020 /
 
Sziasztok!
A topik címében szereplő szenzorokkal és egy arduino nanoval építek fűtésvezérlést, és ezek a szenzorok kikészítenek. Egyszer tökéletesen működik minden, aztán mind a négy szenzort -127 fokosnak olvassa az arduino. Próbára összerakva sem működött az adatlap szerinti 4,7k-s felhúzó ellenállással, 8,2k-val ment a hőmérés. A helyén telepítve az eszközt, 2 szenzor nem a gyári kábellel csatlakozik, hanem toldva lettek, egy kb. 2 méteres kábel végére csatlakozik a 2 szenzor párhuzamosan, és ez a kábel csatlakozik a sorkapocsba a másik 2 szenzor gyári kábelével együtt. Ebben a felállásban már megint -127 fokot ír az arduino mindegyik szenzorra. Nem tudom eldönteni, hogy szoftveres, vagy hardveres a probléma. A szenzorok az arduino A0 bemenetére csatlakoznak, de ez elvileg nem okozhat problémát, egy másik gépemben szintén az A0-ra csatlakozik 2db szenzor, 4,7k felhúzóval és ott semmi gond. Mellékelem a kódot is, hátha ott van valami hiba, amit nem veszek észre... A válaszokat előre is köszönöm.
  1. #include <OneWire.h>
  2. #include <DallasTemperature.h>
  3.  
  4. #define ONE_WIRE_BUS A0
  5.  
  6. OneWire oneWire(ONE_WIRE_BUS);
  7.  
  8. DallasTemperature sensors(&oneWire);
  9.  
  10. const int OUT1=2;
  11. const int OUT2=4;
  12. const int OUT3=3;
  13. const int OUT4=5;
  14. int Kazan=0;
  15. int PFElore=0;
  16. int Benti=0;
  17. int Kinti=0;
  18.  
  19. int Value = 0;
  20. int PumpEnable = 0;
  21.  
  22. void setup() {
  23.   pinMode(OUT1, OUTPUT);
  24.   pinMode(OUT2, OUTPUT);
  25.   pinMode(OUT3, OUTPUT);
  26.   pinMode(OUT4, OUTPUT);
  27.   pinMode(A0, INPUT);
  28.   pinMode(A6, INPUT_PULLUP);
  29.   Serial.begin(9600);
  30.   sensors.begin();
  31.   delay(500);
  32.  
  33.   Serial.write("tm0.en=0");
  34.   Serial.write(0xff);
  35.   Serial.write(0xff);
  36.   Serial.write(0xff);
  37.   Serial.write("tm1.en=0");
  38.   Serial.write(0xff);
  39.   Serial.write(0xff);
  40.   Serial.write(0xff);
  41. }
  42.  
  43. void loop() {
  44.   sensors.requestTemperatures();
  45.   Kazan=sensors.getTempCByIndex(0);
  46.   Serial.print("n0.val=");
  47.   Serial.print(Kazan);
  48.   Serial.write(0xff);
  49.   Serial.write(0xff);
  50.   Serial.write(0xff);
  51.  
  52.   sensors.requestTemperatures();
  53.   PFElore=sensors.getTempCByIndex(1);
  54.   Serial.print("n3.val=");
  55.   Serial.print(PFElore);
  56.   Serial.write(0xff);
  57.   Serial.write(0xff);
  58.   Serial.write(0xff);
  59.  
  60.   sensors.requestTemperatures();
  61.   Benti=sensors.getTempCByIndex(2);
  62.   Serial.print("n2.val=");
  63.   Serial.print(Benti);
  64.   Serial.write(0xff);
  65.   Serial.write(0xff);
  66.   Serial.write(0xff);
  67.  
  68.   sensors.requestTemperatures();
  69.   Kinti=sensors.getTempCByIndex(3);
  70.   Serial.print("n1.val=");
  71.   Serial.print(Kinti);
  72.   Serial.write(0xff);
  73.   Serial.write(0xff);
  74.   Serial.write(0xff);
  75.  
  76.   if(Kazan>50){
  77.     if(PumpEnable==1){
  78.     digitalWrite(OUT1, HIGH);
  79.     Serial.write("tm0.en=1");
  80.     Serial.write(0xff);
  81.     Serial.write(0xff);
  82.     Serial.write(0xff);
  83.     }
  84.     if(PumpEnable==0){
  85.     digitalWrite(OUT1, LOW);
  86.     Serial.write("tm0.en=0");
  87.     Serial.write(0xff);
  88.     Serial.write(0xff);
  89.     Serial.write(0xff);      
  90.     }
  91.   }
  92.  
  93.   if(Kazan<45){
  94.     digitalWrite(OUT1, LOW);
  95.     Serial.write("tm0.en=0");
  96.     Serial.write(0xff);
  97.     Serial.write(0xff);
  98.     Serial.write(0xff);
  99.   }
  100.  
  101.   if(Kazan>40){
  102.     digitalWrite(OUT2, HIGH);
  103.     Serial.write("tm1.en=1");
  104.     Serial.write(0xff);
  105.     Serial.write(0xff);
  106.     Serial.write(0xff);
  107.   }
  108.  
  109.   if(Kazan<35){
  110.     digitalWrite(OUT2, LOW);
  111.     Serial.write("tm1.en=0");
  112.     Serial.write(0xff);
  113.     Serial.write(0xff);
  114.     Serial.write(0xff);
  115.   }
  116.   if(PFElore>36){
  117.     digitalWrite(OUT4, HIGH);
  118.     delay(200);
  119.     digitalWrite(OUT4, LOW);
  120.   }
  121.   if(PFElore<34){
  122.     digitalWrite(OUT3, HIGH);
  123.     delay(200);
  124.     digitalWrite(OUT3, LOW);
  125.   }
  126.   Value = analogRead(A6);
  127.   if(Value>900){
  128.     PumpEnable = 1;
  129.     Serial.write("vis p2,1");
  130.     Serial.write(0xff);
  131.     Serial.write(0xff);
  132.     Serial.write(0xff);
  133.   }
  134.   else{
  135.     PumpEnable = 0;
  136.     Serial.write("vis p2,0");
  137.     Serial.write(0xff);
  138.     Serial.write(0xff);
  139.     Serial.write(0xff);
  140.   }
  141.        
  142.   delay(5000);
  143.      
  144. }

A kódban a soros kommunikáció egy nextion kijelzőnek szól, de az szerintem nem zavarhat bele a hőmérésbe...
A hozzászólás módosítva: Szept 24, 2020
(#) pipi válasza kormika hozzászólására (») Szept 24, 2020 /
 
Hali!
Van rendes tápjuk a dallas-oknak? Szűrőkondit sem árt a szenzor tápjára tenni. Árnyékolt kábel?
Zajos egyéb elektromos cucc tápkábel közelében? Szkóppal nézted a jelalakot?
(#) kormika válasza pipi hozzászólására (») Szept 24, 2020 /
 
Szia!
Egy tápról megy minden, 5V 3A-es kapcsitáp, fojtóval, kis ESR-es kondikkal és jóminőségű kerámiákkal szűrve. A táp és az arduino be van dobozolva egy kalapsínes dobozba, sorkapcsokkal van bekötve egy külön kis panel, amin van a felhúzóellenállás és további 2 kis ESR elko, egy fólia és két kerámiakondi, erre a panelre csatlakoznak a szenzorok. Nem árnyékolt kábelt használtam, mert a gyárilag védőcsőben levő szenzorok gyári kábele sem árnyékolt. Szkópom sajnos nincsen, hogy a jelalakot ellenőrizzem. Azért nem értem az egészet, mert a nappaliban a PC-nél összekötve az egész áramkört működött, aztán felszereltem a mosókonyhába a falra egy erre a célre felrakott falon kívüli lakáselosztóba, ugyanúgy bekötöttem mindent, a kábelhossz változott, és már nem megy, azóta már visszahoztam a nappaliba, itt a szenzorok gyári kábeleivel bekötve már megint nem megy, pedig most ugyanaz a felállás, mint délután, amikor a program íródott és működött...
(#) Kovidivi válasza kormika hozzászólására (») Szept 24, 2020 /
 
Ha jól értem, ez a baj:
"So the maximum bus length of an I2C link is about 1 meter at 100 Kbaud, or 10 meters at 10 Kbaud. Unshielded cable typically has much less capacitance, but should only be used within an otherwise shielded enclosure.".
I2C kommunikációt olyan 1m-ig használunk...
(#) Bakman válasza kormika hozzászólására (») Szept 24, 2020 /
 
A tápegység kiementéről szedd le a fojtótekercset, a felhúzóellenállás legyen 3.3 kΩ. A "további 2 kis ESR elko" mit takar? Hol vannak? Remélhetőleg nem az adatvezetéken, azon csak a felhúzó legyen. 1-Wire használata esetén az árnyékolás és/vagy a nem használt vezetékek bekötése a kábelben csak árt az egésznek, jól csináltad, hogy nem használtál árnyékolt vezetéket.
A hozzászólás módosítva: Szept 24, 2020
(#) Bakman válasza Kovidivi hozzászólására (») Szept 24, 2020 /
 
DS18B20, 1-Wire protokoll.
(#) kormika válasza kormika hozzászólására (») Szept 24, 2020 /
 
Így néz ki maga a kapcsolás, a bal oldali kissebb dobozban egy külön táp lakik a Nextion számára, illetve a kommunikációért felelős szintillesztés és zavarszűrés is ebben van, a jobb oldali nagyobb dobozban van a 3A-es táp, az arduino és 4 relé a meghajtással együtt. A jobb felső sarokban levő kis panelen vannak a plussz szűrőkondik a felhúzóellenállással, ide csatlakozik jelen esetben egy darab DS18B20 szenzor, amivel szintén nem működik.
(#) kormika válasza Kovidivi hozzászólására (») Szept 24, 2020 /
 
Szia!
Az említett másik gépben is árnyékolatlan kábellel vannak bekötve a szenzorok és egy kábecsatornában fut a 3 fázisú motor frekivátóból jövő kábeleivel olyan 3 méter hosszan és ott semmi gond. Ezért vagyok tanácstalan...
(#) kormika válasza Bakman hozzászólására (») Szept 24, 2020 /
 
A fojtó a gyári tápegység után van, aztán kb. 3000µF-nyi kis ESR kondi és erről megy maga az arduino, meg igazából a Nextion kijelző kivételével minden. A kis panelen 2db 6,3V 100µF LOW ESR kondi, egy 100nF fóliakondi és 2db 4,7µF kerámiakondi van a tápon, és egy darab 8,2k ellenállás felhúzónak. 4,7k-val kezdtem, azzal nem ment, tettem 2,2k-t, azzal sem, végül a 8,2k-val működött rendesen.
(#) Bakman válasza kormika hozzászólására (») Szept 24, 2020 /
 
Meglepő, hogy a nagyobb ellenállással ment, pont fordítva kellett volna. Honnan vannak a szenzorok? Az Arduino programjában fut valamilyen megszakítás? Az meg tudja keverni a dolgokat, lévén a szenzor kommunikációja idő alapú. Feljebb tudod tornázni a kontroller órajelét?
(#) kormika válasza Bakman hozzászólására (») Szept 24, 2020 /
 
A szenzorok a HEStore-ból vannak, fém védőcsöves, gyárilag 2m vezetékkel. A programban semmilyen megszakítás nincsen, beolvassa a 4 szenzort az arduino gyári példaprogijából Ctrl+C Ctrl+V módon átemelt sorokkal, ezeknek az értékeit sorosan elküldi a Nextion kijelzőnek, majd az értékek alapján egyszerű if-es relációkkal kapcsolja a 4 db relét, amiből kettő 2db keringető szivattyút kapcsol, a másik kettő relé pedig egy motoros keverőszelepet vezérel. Őszintén megmondom, hogy nem tudom milyen órajellel megy most az arduinon nanom, soha nem volt ilyen jellegű problémám velük, szóval nem foglalkoztam még ezen részével.
(#) Bakman válasza kormika hozzászólására (») Szept 24, 2020 /
 
Innentől kezdve kb. csak a logikai analizátor és/vagy oszcilloszkóp tudna érdemben segíteni. Ellenőrizni kellene az adatfolyamot.
(#) kormika hozzászólása Szept 24, 2020 /
 
Most megpróbáltam 3,3k-val, semmi, 2,2k-val semmi, 1k-val szintén süket. Dugdosós próbapanelen egy másik arduino nano ugyanezzel a progival, minden tápszűrés és külső felhúzó ellenállás nélkül, az arduino saját belső felhúzóját használva USB-ről táplálva megy a 4 szenzorral...
(#) Bakman válasza kormika hozzászólására (») Szept 24, 2020 /
 
Lehet, hogy a tápegység zavarja a rendszert.
Következő: »»   36 / 39
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem