problem beim Spannung messen

Hallo ich versuche schon seit einiger Zeit die Spannung meiner Solarakkus online darzustellen aber es klappt einfach nicht.
Die werte stimmen einfach nicht aber die Widerstände sind ok.
Ich komme einfach nicht mehr weiter.
Akku Spannung 14V
Arduino misst aber 15,7V
Wenn ich dass (enc2860j) abklemme stimmen die Werte.
Vielleicht könnt ihr mit ja weiterhelfen,Vielen Dank im voraus
Hier der Code

// Simple demo for feeding some random data to Pachube.
// 2011-07-08 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

// Handle returning code and reset ethernet module if needed
// 2013-10-22 hneiraf@gmail.com

#include <EtherCard.h>

// change these settings to match your own setup
#define FEED ""
#define APIKEY ""

// ethernet interface mac address, must be unique on the LAN
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

const char website[] PROGMEM = "api.xively.com";

byte Ethernet::buffer[350];
uint32_t timer;
Stash stash;
byte session;

//timing variable
int res = 0;

float vout = 0.0;
float vin = 0.0;
float value = 0;
int result = 0;
float R1 = 9900.0;   
float R2 = 4670.0; 

void setup () {
  Serial.begin(9600);
  Serial.println("\n[Xively example]");

  //Initialize Ethernet
  initialize_ethernet();
}


void loop () { 
  
  //if correct answer is not received then re-initialize ethernet module
  if (res > 220){
    initialize_ethernet(); 
  }
  
  res = res + 1;
  
  ether.packetLoop(ether.packetReceive());
  
  //200 res = 10 seconds (50ms each res)
  if (res == 200) {

    
    //Generate random info
  

 float average = 0;
  for(int i = 0; i < 1000; i++) {
    average = average + (0.048875855327468 * analogRead(A0) -25) / 1000;
    delay(1);
  }
   value = analogRead(A5);
  vout = (value * 5.0) / 1024.0;
  vin = vout / (R2/(R1+R2));
  
    // generate two fake values as payload - by using a separate stash,
    // we can determine the size of the generated message ahead of time
    byte sd = stash.create();
    stash.print("Verbrauch,");
    stash.println(average);
    stash.print("Akku,");
    stash.println(vin);
    stash.save();

    //Display data to be sent
    Serial.println(average);
    

    // generate the header with payload - note that the stash size is used,
    // and that a "stash descriptor" is passed in as argument using "$H"
    Stash::prepare(PSTR("PUT http://$F/v2/feeds/$F.csv HTTP/1.0" "\r\n"
      "Host: $F" "\r\n"
      "X-PachubeApiKey: $F" "\r\n"
      "Content-Length: $D" "\r\n"
      "\r\n"
      "$H"),
    website, PSTR(FEED), website, PSTR(APIKEY), stash.size(), sd);

    // send the packet - this also releases all stash buffers once done
    session = ether.tcpSend(); 
  }
  
   const char* reply = ether.tcpReply(session);
   
   if (reply != 0) {
     res = 0;
     Serial.println(reply);
   }
   delay(50);
}



void initialize_ethernet(void){  
  for(;;){ // keep trying until you succeed 
    //Reinitialize ethernet module
    pinMode(5, OUTPUT);
    Serial.println("Reseting Ethernet...");
    digitalWrite(5, LOW);
    delay(1000);
    digitalWrite(5, HIGH);
    delay(500);

    if (ether.begin(sizeof Ethernet::buffer, mymac) == 0){ 
      Serial.println( "Failed to access Ethernet controller");
      continue;
    }
    
    if (!ether.dhcpSetup()){
      Serial.println("DHCP failed");
      continue;
    }

    ether.printIp("IP:  ", ether.myip);
    ether.printIp("GW:  ", ether.gwip);  
    ether.printIp("DNS: ", ether.dnsip);  

    if (!ether.dnsLookup(website))
      Serial.println("DNS failed");

    ether.printIp("SRV: ", ether.hisip);

    //reset init value
    res = 0;
    break;
  }
}

lukas005:
Wenn ich dass (enc2860j) abklemme stimmen die Werte.

Was ist ein "enc2860j"?

Wie sieht deine Schaltung aus, welche Widerstände?
Wie wird der Arduino versorgt?

Schaltung nur mit andern Widerständen http://www.mikrocontroller.net/attachment/172213/Schaltung.png
4,7kohm
10kohm
ENC28J60 - Ethernet Controller

Wenn man den Ethernetcontroller abklemmt ist die Messung fast genau sonst nicht.

Bricht die Versorgungsspannung (5V) ein wenn du den Ethernetcontroller anschließt?
Miß mal die 5V mit und ohne ENC28J60

grüße Uwe

Ja bricht ein aber ich weis nicht wie ich dass lösen soll.

Hab mal nenn Festspannungsregler 3,3v statt des Regler des Arduino angeschlossen dann hat’s funktioniert aber der wurde so heiss das ich angst hatte dass er durchbrennt

hat sich erledigt vielen dank für die hilfe

Und, was wars?

Schreib' doch mal die Ursache des Problems rein, damit eventuell andere auch draus lernen können.

Dass Problem war dass die Spannungsversorgung meines Arduino Uno sehr instabil war,Ein externer Festspannungsregler und ein Kondensator haben den Fehler behoben.
Hab wohl offensichtlich einen billig China Klon erwischt denn die Verpackung sah anders aus als beim Original, Dabei hab ich dafür 25€ bezahlt.

25€ zahlst Du fast für einen Orginal Arduino.
Das Problem ist daß standartmäßig die 5V Versorgungsspannung als referenzwert zur A/D Wandlng verwendet werden. Sind diese nicht 5V ist di Umrechnung ADC zu Volt falsch.
Abhilfe:
am einfachsten Nimm die interne 1,1V Referenz und ändere den Spannungsteiler so daß 14V - 1,1V entsprechen.

Grüße Uwe

Hab ich später auch gemerkt hat aber nicht so viel gebracht hat immer noch ungenau gemessen jetzt mit einem Kondensator und einem LF33CV ist es viel besser geworden.
Vielen Dank nochmals an alle die mir geholfen haben.