Spannung Strom und Temperatur Messung

Hallo,
ich befasse mit grade mit einem projekt zur messung von einer Spannung ~13V, einem Strom ~20A und einer Temperatur.
Zur Strommessung benutze ich einen ACS709 Hallsensor, zur Temperaturmessung einen Dallas DS18S20.

1.)
Ich habe das problem das bei der Spannungsmessung (die ich testweise mit einer 9V blockbatterie mache) die auf echte 9V komme. Ich stelle immer den multiplikator um um auf 9V zu kommen, aber dann halte ich testweise die leitung vom Analogchannel an den 5V ausgang des arduinoboards und messe dann dort auch 9 V :frowning:

Ich habe einen Spannungsteiler von 470 Ohm / 100 Ohm und nochmal den Spannungsteiler auf 4k7 / 470 Ohm getestet.

2.)
Mein Temperatursensor misst immer 1°C… er wird wohl kaputt sein da ich einmal die polarität verwechselt habe.
Lieg ich da richtig? Mittlerweile hängt dieser auf Digital 8, da ich vorher einen Fehler gemacht hatte!

Im Anhang findet ihr meine Verdrahtung mit Fritzing als PNG

Hier mein Quelltext:

#include "floatToString.h"
#include "DS18S20.h"
#include <OneWire.h>
#include <LiquidCrystal.h>
#include "DallasTemperature.h"

float temperatur;  
float spannung; 

int reading; 
int sensorPinStrom = A0; 
int sensorPinSpannung = A1; 
int sensorPinTemperatur = 8;

int temp = 0;
int sensorValue = 0;
float messw=0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


void setup() {
  lcd.begin(16, 2);                               //LCD initialisieren 
 pinMode(sensorPinTemperatur, INPUT);
} 

void loop() {
  sensorValue = analogRead(sensorPinStrom);          //Wert von Sensor einlesen
  sensorValue =   sensorValue -510;                  //510=0A  0=-75A  1023=75A
  if(sensorValue==1)sensorValue=0;
  if(sensorValue==-1)sensorValue=0;
  messw=(float)75/512*sensorValue;                   //Umwandeln um einen Wert zuwischen -75 und +75 zu erhalten
  lcd.setCursor(0, 12);                               //LCD Spalte 2, Zeichen 1
  lcd.print("I:");
  lcd.print(floatToString(buffer,messw,2));          //Ausgabe Strom an LCD
  lcd.print("A");                                    //Buchstabe A

   


  sensorValue = analogRead(sensorPinSpannung);       //Wert von Sensor einlesen
  messw=(float)43/5012*sensorValue;                  //Wert umwandeln für Anzeige 0..24.0 Volt
  lcd.setCursor(8, 1);                               //LCD Spalte 2, Zeichen 8
  lcd.print("U:");
  lcd.print(floatToString(buffer,messw,2));          //Ausgabe Spannung an LCD
  lcd.print("V");                                  //Buchstabe V


  temp = digitalRead(sensorPinTemperatur);         //Wert von Sensor einlesen 
  lcd.setCursor(0, 0);                               //LCD Spalte 1, Zeichen 1
  lcd.print("Temp:");
  lcd.print(temp);                             //Ausgabe Temperatur an LCD 
  lcd.print((char)223);                              //Symbol für Grad "°" 
  lcd.print("C");                                    //Buchstabe C


  delay(2000); 
}