DS2438Z jännitteen mittauksessa

Kun halusin tietää, onko etäohjattu 240 V laite todellakin jännitteellinen vai ei, toteutin sen näin.
Pisteestä johon verkkojännite kytkeytyy, otettu sama jännite verkkolaturille, joka antaa ulos 6.3 V DC.
Ja kuvan mukainen yksinkertainen kytkentä DS2438Z anturille, joka kytketty 1-wire:lla Raspberry Pi:aan (jossa RPI2 1-wire adapteri)

Tuo kyllä toimii, eli kun verkkosähkö on kytkettynä, Rasperry saa arvon 6.3, josta voidaan päätellä ohjauksen olevan OK.
Mutta, kun jännite katkaistaan, niin tuo lukema putoaa, mutta jonkin ajan kuluttua näyttääkin 10.23 V, joka on tuolla anturilla maksimiarvo. Miten tuota kytkentää parantaisi jotta tuollaista 10.23 lukemaa ei esiintyisi?
Vastus johonkin väliin vai mitä?

Periaatteessa pull-down vastuksella hoituu. Eli kunhan signaali saadaan kytkettyä nollatasoon.

Itse olen toteuttanut vastaavan mittauksen laittamalla operaatiovahvistimen “bufferiksi” väliin, jolloin saa tarvittaessa skaalattua jännitteen sopivalle alueelle ja samalla opari hoitaa mittasignaalin alasvedon, jos mittasignaali katkeaa. Eli täysin normaali operaatiovahvistimen vahvistinkytkentä, johon sitten tönitään vastukset sopivasti (tai shortataan) tarpeen mukaan. Oparilla saa sitten mukavasti myös pientä suojaa piiriin, kun output jännite saadaan rajattua esim. välille 0-10V käyttämällä sitä oparin käyttöjännitteenä. Tällöin (toivottavasti) ensimmäinen komponentti joka palaa, on se halpa opari DS2438:n sijaan.

Kiitos vastauksesta.
Sano vielä mihin tarkoitit pull-down vastuksen laittaa?
Järkeilin, että tuo VAD-inputti vedetään maihin, laitoin sen ja GND väliin 10k vastuksen, ei vaikutusta, laitoin toisen 10k vastuksen vielä tuon 6.3 V virtalähteen ulostuloon, ei vaikutusta.
Eli edelleen se jonkun ajan kuluttua asettuu 10.23 lukemaan.

Jännite kytkettynä noiden vastusten kanssa lukema oli n. 6 V, eli hieman putosi, luonnollisesti.

Mittaa yleismittarilla jännite GND:n ja VADin välillä (lienee nolla ilman vastuksiakin). Sitten katsot koodiasi ja varmistat, ettei tapahdu jotain erikoista nollan kohdalla. Jos luet jännitettä jatkuvasti virran katkaisusta, pitäisi sen laskea siististi nollaan. Antaako DS2438 jonkun erikoiskoodin, jos jännite menee mittausalueen ulkopuolelle?

Jos koko homman tarkoitus on vain varmistaa 230 V olemassaolo, on siihen varmasti paljon suoraviivaisempiakin tapoja. Vai mittaatko myös virtoja tuolla?

Koodi ei ole sen kummallisempi mitä on ne 1-wire antureiden lukemiseen tehdyt komennot.
Minä luulen, että tuo DS2438 vaan toimii niin, että kun sen AD-sisäänmenossa jännitetaso on 0, niin se antaakin epäloogisesti lukeman joka vastaa sen maksimiarvoa (ilmeisesti) 10.23

Voi olla että tuo kytkentä ei ole täydellinen, ehkä jotain pitäisi kytkeä niihin kahteen pinniin joita ei tuohon piirtänytkään, eli VSENS+ ja VSENS-
DQ - Data In/Out
VAD - General A/D input
VSENS+ - Battery current monitor input (+)
VSENS- - Battery current monitor input (-)
VDD - Power Supply (2.4V to 10.0V)
GND - Ground

Tarkoitus on vaan mitata samassa paikassa lämpötila ja tuo 230 V (todellakin, ei siis 240) olemassaolo.
Ja nuo molemmat tapahtuisi kätevästi jo olevan 1-wire systeemin avulla.
Muitakin konsteja varmaankin olisi. Kyllä sen tuolla toteutan, tai yritän vielä löytää jonkin muun DS-1-wire-piirin. DS2436 olisi hyvä, mutta se on vanha malli jota ei tahdo enää löytää. Jos jollakulla on pöytälaatikossa, voisin ostaa, vaikka useammankin.

Jos tuolla piirillä haluat tuon totetuttaa ja tiedät, että se antaa nollan sijaan 10,23, voit joko tulkita kaikki alle 5 V ja yli 10 V virhetilanteeksi eli ei ole normaali 6,3 V. Toinen vaihtoehto on laittaa sopiva jännitejako kolmella vastuksella GND, 5 V ja 6,3 V välille. Tuolla saat kaksi eri jännitearvoa riippuen siitä onko 6,3 V päällä vai ei. Kytkemällä vaikkapa 10 k vastukset kaikista noista VAD:hen saat 2,5 V tai 1,67 V, jos vain 5 V on päällä ja 6,3 V on “auki” tai nollassa. 6,3 V ollessa päällä saat 3,77 V.

Tapoja on tietysti miljoonia muitakin, vaikkapa transistoria tai diodia käyttäen.

Minulla onkin jo koodissa ehtona jännitteelliseksi tulkinnaksi
if ($vad > 5 and $vad < 7)

toimiihan se noinkin, jotenkin vaan turhauttaa tuollainen epäloogisuus, digitaalipiiri antaa arvoksi 10.23 V vaikka AD-tulon jännite on käytännössä 0. Olisipa säädettävä virtalähde niin nostaisi jännitettä tuohon niin menisikö se 10.23 jännitteellä nollaksi.

Eräällä nettisivullakin luki:
"Sometimes the VAD input will report 10.23 V even if nothing is attached. This value is also the maximum voltage that part can report. "

Ja toisella:
If the light-level is zero, VAD reads sometimes 0, sometimes 10.23. Don’t know wether this is something with the sensor or even specific for the DS2438, the same with the MS-TV, also reads 10.23 when it should be 0.
Looks to me for any application using the values everything above 10 should most likely be interpreted as zero or below

Kyllä DS2438 nollan mittaa, kunhan se on nolla eikä ole vaan kelluvana. Eli esim. jos kytkin vain aukaistaan, jää taso kellumaan ja jännite nousee tuonne 10 volttiin.

Kuten jo edellä taisin mainita, niin tuo opari bufferina kytkentä toimii mallikkaasti, opari tiputtaa jännitteen nolliin ja pitää sen siellä.