ich benötige für ein größeres Projekt 14 Spannungssensoren. Realisiert habe ich das ganze mittels Spannungsteiller der sehr Hochohmig ist. (Siehe Bild1)
Das Ergebnis dieser Schaltung sollte sein das ohne angeschlossener Spannungsquelle am Spannungsteiler ich einen Integerwert von 0 erhalten sollte. In wirklichkeit ist es so das ich einen wert von 54 bekomme der sich pro Spannungsteiler um +1 erhöht.
Ergänzent möchte ich sagen das Spannungsquelle für den Spannungsteiler und der Arduino von der selben Soanungsquelle versorgt werden so das alle die gleiche Masse nutzen.
Durch den Sample and Hold Kondensator im A/D Wandler des Arduino muß der äusere Spannungteiler einen Innenwiderstand von weniger als 10kOhm haben (damit Kurzzeitig der Ladestrom für den Kondensator fließen kann, und dieser auf Endspannung geladen wird)
Abhilfe könnte je ein 0,1µF Kondensator zwischen analogen Eingang und Masse schaffen, wenn die Meßspannung sich nicht schnell ändert.
Bei sich schnell ändernden Spannungen brauchst Du einen Operationsverstärker in Spannungsfolge-Schaltung.
Grüße Uwe
pinMode(..., INPUT) ist auch überflüssig. Und das Programm lässt sich kürzer mit for-Schleifen schreiben
Das da Werte von 54 an aufwärts kommen ist klar, weil das die Pin-Nummern sind und du einen Mega hast. Dann geht es eins höher als der höchste Digital-Pin los.
Hardwareseitig passt es aber auch nicht. Sie was uwefed gesagt hat. Sehr wichtig.
Mich stört noch die doppelte Verwendung einer Variablen:
int sens1 = A0;
...
int sens1 = 0;
Würde Dir so der Compiler anmeckern und damit helfen:
const int sens1 = A0;
const int sens2 = A1;
const int sens3 = A2;
const int sens4 = A3;
const int sens5 = A4;
const int sens6 = A5;
const int sens7 = A6;
const int sens8 = A7;
const int sens9 = A8;
const int sens10 = A9;
const int sens11 = A10;
const int sens12 = A11;
const int sens13 = A12;
const int sens14 = A13;
const int sens15 = A14;
const int sens16 = A15;