Transistor bottnar ej....

Har en kWh-mätare med open-collector puls utgång.

Lägger jag +5 V via 500 ohm på kollektorn och emitter direkt på jord så mäter jag +0,5-0,6 V på den negativa pulsen (30 mS).

Jag behöver högst +0,4 för att TTL skall tolka säkert som "0".

Hur gör jag?

Har lyckats få det att fungera med en ingång på parallellporten pinne 12 direkt på kollektorn samt emitter till jord men den missar puler ganska ofta. (Har ett VB-program som räknar pulserna)

Reply to
Ralph
Loading thread data ...

Tror inte att det är spänningsnivån som är problemet men du kan ju enkelt dubbla motståndet vilket borde sänka Vce ytterligare. Buffra med en fet-trissa funkar också. Två parallella motriktade dioder i serie med porten är ytterligare ett sätt, fast här tappar du även 0,6 volt på hög nivå. En anledning till missade pulser kan bero på elektriska störningar vilket lätt uppstår, i synnerhet om man har långa ledningar mellan mätare och dator. Vanligast är annars att man får extra pulser pga yttre störningar.

Även på en relativt gammal dator ska du hinna läsa 1000-10000 pulser i sekunden om inte alltför mycket ska göras mellan pulserna. Att du missar pulser kan bero på en kombination av hur ditt program är utformat samt att Windows hade annat för sej när pulsen fanns. Om det är så att datorn missar pulser så kan en avsevärd förbättring uppnås genom att använda en IRQ-pinne på en COM-port istället. Då belägger inte ditt program processorn 100% med att inte göra någon ting utom att vänta på en eventuell puls och datorn hinner göra mycket annat under väntetiden.

Vet inte hur du tänker använda pulserna eller dess pulsfrekvens men jag hade nog gjort lite annorlunda. Vid datorn hade inkommande signal kopplats på en optokopplare via RC-länk för att få bort evt störningar och skydda övrig elektronik. Optokopplaren hade kopplats till en cmos-räknare typ 4040. Därifrån kan man lägga ett 8-bitars tal dirket in på LPT-porten. Ditt program kan sedan nöja sej med att läsa av hur mycket räkneverket ändrat sej sedan förra avläsningen. Se till att läsa 8-bitars absolutvärden så funkar det även när räknaren slår över vid 255. Man kan då tillfälligt missa upp till 255 pulser och ändå komma i kapp. Vill du så går det ju även använda ytterligare 4 bitar på räknaren, det finns tillräckligt med pinnar på LPT-porten. Har du separat strömförsörjning till räknaren kan kanske datorn t.o.m hinna boota om utan att tappa några pulser.

Oavsett hur du väljer att lösa det hela rekommenderars alltid en buffertkrets innan datorn får in signalen. CMOS-buffrar typ 4049 eller

4050 är billiga och mycket lättare att ersätta än om något brinner inne i datorn, när något går fel, vilket det gör förr eller senare när man hänger på egentillverkade konstruktioner.

/Alf

Reply to
Alf.F

Hej nattkompis, tack för synpunkterna!

svar nedan

Alf.F skrev:

Nej, störningar är det inte, jag ser pulserna på mitt oscilliscop och allt är rent och fint, triggar negativt. Pulsen når dock bara ner till + 0,5-0,6 V.

Pulserna kommer ganska glest, 2-3 sekunder mellan varje puls, det går bara 500 pulser/kWh och bergvärmepumpen som är inkopplad på mätaren drar bara drygt 2 kW. Så pulsfrekvensen är inget problem.

Jo, en lösning med räknare och buffer har jag också tänkt på men ville ändå se om detta fungerar. Programmet skrivet i VB 2005 Express klarar ganska hög frekvens så där finns det inte nåt problem. Kortsluter jag pinne 12 på parallellporten mot jord så räknar programmet upp snällt och lydigt men inte alltid från mätaren. TTL behöver väl under 0,5 V för att tolka som logisk "0"? Så minns jag det iallafall.

Vi får se...

/Ralph

Reply to
Ralph

Nja, en TTL-utgång skall lämna högst 0.4V vid nolla om jag minns rätt men ingången skall tolka allt under 0.8V som nolla, så det borde inte vara några problem. Men jag håller med Alf, testa med ett 1K motstånd.

/Henrik

Reply to
Henrik Johnsson

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.