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

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Henke_83
Inlägg: 233
Blev medlem: 20 oktober 2007, 09:17:41
Ort: Ekerö
Kontakt:

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

Inlägg 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..
Senast redigerad av Henke_83 4 maj 2019, 10:58:21, redigerad totalt 1 gång.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47172
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

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

Inlägg 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?
Henke_83
Inlägg: 233
Blev medlem: 20 oktober 2007, 09:17:41
Ort: Ekerö
Kontakt:

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

Inlägg 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...
Borre
Inlägg: 4610
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

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

Inlägg 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.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47172
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

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

Inlägg 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.
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

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

Inlägg 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.
Henke_83
Inlägg: 233
Blev medlem: 20 oktober 2007, 09:17:41
Ort: Ekerö
Kontakt:

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

Inlägg 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.
Skriv svar