Sida 1 av 1

LÖST - PCF8591 med RPI för att mäta spänningen?

Postat: 2 maj 2019, 18:15:24
av Henke_83
Hej,
Jag håller på och försöker mäta spänningen över en ADC som heter PCF8591. Men jag får det inte att fungera.
I min Raspberry pi har jag kontakt med IC-kretsen och får den att läsa av på 0x48 som det är tänkt. Men sedan tar det stopp.

Jag har byggt en spänningsdelare med motstånd på 10kOhm och 1.43kOhm - så spänninsdelare på 7. Spänningen som jag ska mäta är 4 serikopplade 18620 Liiion batterier.
Så spänningen är 3.7*4= 14.8. Denna delad med 7 blir 2.11V. När jag mäter med en multimeter över spänningsdelare får jag ett resultat som skulle kunna vara en spänningsdelare på 7.8 och det kanske är så det ska vara kanske inte blir perfekt.

Till spänningsdelaren har jag kopplat - polen från batteriet och + polen går också dit. Sedan har jag tagit och kopplat in mig i spänningsdelaren med AIN som går in på PCF8591.
GND har jag kopplat från PCF8591 till en av RPI. Försökte koppla batteriet - till PCF8591 GND eftersom det ska vara en analog? GND till PCF8591 och om jag förstår det rätt så är RPI GND digital.

Datablad till PCF8591 http://www.nxp.com/documents/data_sheet/PCF8591.pdf

När jag mäter så får jag väldigt låga värden och kommer inte upp närheten av 14.8 eller högre.

I beräkningen i programmet har jag gjort på följande sätt: ((värdet*3.3*7)/255)

Är det någon som ser något uppenbart fel jag gjort? Vet att det kan vara svårt att läsa av och har inte möjlighet att göra ett kopplingsschema just nu..

Tänkte på lite snabb hjälp kanske..

Re: Hjälp - PCF8591 med RPI för att mäta spänningen?

Postat: 2 maj 2019, 18:47:46
av TomasL
Har du koppplat:
Analog referensspänning mellan VREF och AGND? och i så fall vilken spänning.
Har du kopplat ihop AGND med Vss
Batteriets minuspol och spänningsdelarens common till AGND
Batteriets pluss-pol till spänningsdelarens "övre ända" och mittenanslutningen till lämplig analog ingång.
Programmerat den för single-ended och rätt analog ingång.

Och slutligen, hur ser dina paket ut på I2C-linan?

Vad skickar du och vad får du tillbaka?

Re: Hjälp - PCF8591 med RPI för att mäta spänningen?

Postat: 2 maj 2019, 21:18:08
av Henke_83
Har du koppplat:
Analog referensspänning mellan VREF och AGND? och i så fall vilken spänning.
Jag har kopplat Vss till 3.3V utgången på RPI och kopplat AGND? till GND på RPI. Det står nämligen bara GND på kretskortet. Antar därför att Vref är 3.3 och byglat med Vss.
Har du kopplat ihop AGND med Vss
Se ovanstående.
Batteriets minuspol och spänningsdelarens common till AGND
Japp så skulle jag säga att jag har gjort
Batteriets pluss-pol till spänningsdelarens "övre ända" och mittenanslutningen till lämplig analog ingång.
Japp här har jag kopplat mittenanslutningen till AIN1 på PCF8591
Programmerat den för single-ended och rätt analog ingång.
Det här vet jag inte hur jag gör?

Och slutligen, hur ser dina paket ut på I2C-linan?

Kod: Markera allt

#!/usr/bin/python
# -*- coding:utf-8 -*-
import smbus
import time

address = 0x48
A0 = 0x40
A1 = 0x41
A2 = 0x42
A3 = 0x43
bus = smbus.SMBus(1)

while True:
    bus.write_byte(address,A1)
    value = bus.read_byte(address)
    print(value)
#    print("AOUT:%1.3f  " %(value*3.3/255))
#    print("AOUT:%1.3f  " %(value*3.3*7))
    print("AOUT:%1.3f  " %((value*3.3/255)*7.8))
    time.sleep(0.1)
Vad skickar du och vad får du tillbaka?[/quote]
Får tillbaks väldigt varierande saker inte något konstant...

Re: Hjälp - PCF8591 med RPI för att mäta spänningen?

Postat: 2 maj 2019, 21:42:26
av Borre
Vss ska kopplas till GND, inte 3.3V.

VDD, Vref kopplas till 3.3V

AGND, Vss, batteriet minus samt spänningsdelarens minus kopplas till GND på RPIn.

Re: Hjälp - PCF8591 med RPI för att mäta spänningen?

Postat: 2 maj 2019, 21:45:55
av TomasL
Antar därför att Vref är 3.3 och byglat med Vss.
Att anta är rätt farligt, du måste veta hur det hela är kopplat/tänkt.
Det här vet jag inte hur jag gör?
Står rätt tydligt i databladet hur man gör för att kommunicera med kretsen.
Så som jag tolkar det så börjar du med att skicka: adress, kontrollbyte och en databyte.
Sedan läser du från kretsen ifråga.
Det verkar som att du slår på DAC och 4 "single-ended inputs" samt ingång 1.
I så fall skall de övriga ingångarna ligga kopplade till jord. Dvs AIN0, 2 och 3 skall vara jordade, såvida du inte använder dem.
De får inte ligga och flyta.

Du måste också verifiera att Vref är ansluten till en referensspänning, annars så funkar det inte.
Och du måste naturligtvis koppla din spänningsdelare till AIN1

Borres kommentar noterade jag inte, men det är ju naturligtvis helt korrekt.

Re: Hjälp - PCF8591 med RPI för att mäta spänningen?

Postat: 3 maj 2019, 14:22:31
av arvidb
Henke_83 skrev:Jag har byggt en spänningsdelare med motstånd på 10kOhm och 1.43kOhm - så spänninsdelare på 7.
1,43/(10+1,43) är ganska exakt 0,125 = 1/8, så det blir en spänningsdelning med 8, inte 7. Vilket ju också stämmer bättre med de 7,8 som du mätt upp.

LÖST!- PCF8591 med RPI för att mäta spänningen?

Postat: 4 maj 2019, 10:53:24
av Henke_83
Tack för all hjälp! Nu är det löst :)

Hade troligtvis missat att sätta en GND till A0. Trodde den kunde ligga och flyta och att den enbart användes för att justera vilken kanal kretsen skulle jobba på.
Sedan har jag skrivit om programmet och använt ett annat bibliotek istället för SMBus som är mer anpassat för RPI.