Zu deiner ersten Frage:
An dem Port liegt ja eine analoge Spannung an. Der Microcontroller arbeitet aber digital. Er kennt nur definierte Stufen. Hier kommt der ADC - Port ins Spiel. Er wandelt dir deine analoge Spannung in ein digitales Signal um, und zwar mit einer Auflösung von 10 Bit. Somit hast du 1024 Stufen. Und das ist auch das, was in deinem Code mit 900 steht. Um das umzurechnen in die eigentlich Spannung musst du nur noch Dreisatz rechnen können:
Spannung = Vref*ADC/1024
Vref ist deine Referentspannung. Wenn du keine exterene bereitstellst wirds wohl die interne mit 2.5V sein.
erstmal soweit. Wenn du das obengeschrieben verstanden hast, dann wirste hoffentlich selbst merken, dass dein ADC Wert < 1200 immer zutrifft, weil der Wert höchstens 1024 annehmen kann.
Ausserdem kannst du nur max. soviel Volt an dem Pin messen, wie du deine Referenzspannung Vref eingestellt hast. In dem Fall nur ca. 2.5V. Um aber trotzdem höhere Spannungen messen zu können, bedient man sich einem Spannungsteiler. Dieser teilt die Spanung in einem bestimmten Verhälltnis, dass zum Beispiel statt deinen 12V Versorgungsspannung nur noch 1.2V an dem Pin anliegen (/10) Nachher rechnest du einfach deine Spannung noch *10.
Gruss Hacker
Lesezeichen