Sida 2 av 2

Re: Övervakning batterianläggning flera punkter

InläggPostat: 08 sep 2015 20:59
av Bittämjaren
Du måste ha avbrott mellan R2 motståndens 0V punkt och AGND på A/D'n
Annars har flussresterna mellan lödningen av 5 och 6 blivit elektrisk ledande.
Sen antar jag att jordsymbolen inte är kopplad i verkligheten utan kommer via hallonets minus/jord anslutning till batteriet. :roll:
Ska du fixa mätning av batteriets 0V som kommer vara svagt negativ p.g.a. spänningsfallet i strömförsörjningen till hallonet :?:
Kul att du inte har rostat hallonet ännu :)

Re: Övervakning batterianläggning flera punkter

InläggPostat: 10 sep 2015 23:07
av Mogge
Resistorernas summor o delsummor stämmer. Inga avbrott o lödningarna ser bra ut.

Läste någonstans på forumet att det är aldrig för sent att ge upp :wink: Släpper detta tills vidare. Dom andra kanalerna fungerar. Dagarna blir mörkare o kortare. Behöver få ut denna till stugan.
Förra året med de gamla panelerna hittade jag batterierna flämtandes på 10v. Vill inte upprepa det.

*Host* Jord (och termer) vet jag inget om. Allt går via hallonets minuspinnar (som det iof står Ground på).
Har inte testat mäta 0v ännu, väntar med det. Vill se hur bra/dåligt denna setup beter sig. Hallonet snurrar på 5v hoppas det inte fluktuerar lika mycket som 12v-sidan.

Rostat!? Kunde ju mata med 300v innan det börjadar ryka tycker jag mig se lite tidigare i tråden :wink:
Däremot slocknar det som ett värmeljus i snålblåst när man slinter med kablarna

Tack för hjälpen so far. Uppskattas :!:

Re: Övervakning batterianläggning flera punkter

InläggPostat: 18 sep 2015 21:13
av Bittämjaren
När du ska mäta batteriets 0 V kommer den att uppfattas som en negativ spänning av A/D omvandlaren eftersom du har ett spänningsfall i strömmatningen till hallonet med A/D omvandlaren.
men det går att lösa på ett enkelt sätt (jag har kladdat lite i ditt schema)

Kopplingsschema_AD.png
Kopplingsschema_AD.png (113.82 KB) Visad 2490 gånger

Du kopplar "jord"-motståndet helt enkelt till A/D omvandlarens Vref anslutning och med lika stora värden på motstånden i spänningsdelaren och en Vref spänning på 5 V (antar jag att den är) får du följande resultat:
5 V Vin eller öppen mätanslutning --> 1023 = 5,0 V in på A/D ing.
0 V Vin --> 511 = 2,5 V in på A/D ing. (omvandlarvärdet 511 varierar med motståndstoleranserna)
-5 V Vin --> 0 = 0 V in på A/D ing.
Sen får du skala omvandlarvärdet så det passar ihop med spänningsmätningens omvandlarvärde eftersom spänningsdelarna är olika.

Re: Övervakning batterianläggning flera punkter

InläggPostat: 19 sep 2015 10:18
av McB
Där ser man, när jag läste problemet kom jag bara på dom sista raderna av lösningen.
Man lär sig varje dag :D

Re: Övervakning batterianläggning flera punkter

InläggPostat: 20 sep 2015 08:31
av Mogge
Vad bra. Ser nu att jag tolkade lika stora värden på motstånden i spänningsdelaren felaktigt.

Passar på att slå ett slag för Raspberry-sharp-io. När man väl konfat upp hallonet för .NET och Mono, behövs inte mer kod än så för att läsa av samtliga pinnar på A/D omvandlaren

Kod: Markera allt
public static string ReadMcp3008()
{
    const ConnectorPin clock = ConnectorPin.P1Pin12;
    const ConnectorPin miso = ConnectorPin.P1Pin16;
    const ConnectorPin mosi = ConnectorPin.P1Pin18;
    const ConnectorPin cs = ConnectorPin.P1Pin22;

    var driver = new MemoryGpioConnectionDriver();
    using (var connection = new Mcp3008SpiConnection(driver.Out(clock), driver.Out(cs), driver.In(miso), driver.Out(mosi)))
    {
        var res = string.Format("Channel 0/1/2/3/4/5/6/7 Value = {0}/{1}/{2}/{3}/{4}/{5}/{6}/{7}",
            connection.Read(Mcp3008Channel.Channel0).Value,
            connection.Read(Mcp3008Channel.Channel1).Value,
            connection.Read(Mcp3008Channel.Channel2).Value,
            connection.Read(Mcp3008Channel.Channel3).Value,
            connection.Read(Mcp3008Channel.Channel4).Value,
            connection.Read(Mcp3008Channel.Channel5).Value,
            connection.Read(Mcp3008Channel.Channel6).Value,
            connection.Read(Mcp3008Channel.Channel7).Value);

        return res;
    }
}