Wertebereich analoger Eingang - Warum 0 ... 1023 - Etwas über Bits, Bytes und Bit-Päckli
Dieser Beitrag ist nicht essentiell, um in diesem Projekt weiterkommen zu können.
Du kannst den Wertebereich bei den analogen Eingängen (0 bis 1023) auch einfach zur Kenntnis nehmen und den Rest dieses Beitrages überspringen.
Wenn du aber wissen willst warum, solltest du diesen Beitrag lesen (interessant ist es allemal).
Warum geht der Wertebereich bei den analogen Eingängen ausgerechnet von 0 bis 1023, und nicht etwas von 0 bis 100 oder von 0 bis 1000?
Das hat mit der Art, wie im Computer Zahlenwerte gespeichert werden, zu tun. Die niedrigste Informations-Einheit im Computer ist ja ein Bit, welches nur die Werte 0 und 1 annehmen kann. Will man andere (grössere) Werte speichern, setzt man mehrere Bits zusammen in ein Päckli. Ein bekanntes Päckli ist ein Byte, welches immer aus 8 Bit besteht. Es sind aber auch andere Päckli gängig, z.B. 16-Bit-Worte oder 32-Bit-Worte. Wenn ein Päckli mehr als 8 Bit hat, spricht man oft von Worten, wobei man dann die Bit-Zahl angeben muss. Päckli von 4 Bit (ein halbes Byte) nennt man Nibble.
Fangen wir einfach an. Hätten wir zum Speichern von positiven ganzen Zahlen nur Nibbles, also Päckli aus 4 Bit zur Verfügung, könnten wir nur die Zahlen 0 bis 15 speichern. Warum? Das ist wegen der binären Codierung, die in der Informatik durchgehend üblich ist:
0000 -> 0
0001 -> 1
0010 -> 2
0011 -> 3
0100 -> 4
0101 -> 5
0110 -> 6
und so weiter, bis zuletzt
1111 -> 15
Jedes Bit hat ein Wertigkeit. Das Bit ganz rechts (das Bit 0) ist das niederwertigste Bit, es hat den Wert 1. Das zweite Bit von rechts (das Bit 1) hat die doppelte Wertigkeit, nämlich 2. Das dritte Bit von rechts (das Bit 2) hat 4 (wiederum das doppelte von vorher) und das nächste (beim Nibble das ganz linke, das Bit 3) hat einen Wert von 8 (wiederum das doppelte). (Weil man in der Informatik mit 0 zu zählen beginnt, fängt die Bit-Nummerierung von rechts mit 0 an.)
Wenn man nun z.B. das Bitmuster 1001 hat, errechnet man seinen Wert mit der Wertigkeit der Bits
Bit 0 ist 1 und hat den Wert 1, also 1 x 1 = 1
Bit 1 ist 0 und hat den Wert 2, also 0 x 2 = 0
Bit 2 ist 0 und hat den Wert 4, also 0 x 4 = 0
Bit 3 ist 1 und hat den Wert 8, also 1 x 8 = 8
Zählt man nun die 4 Werte zusammen, kommt man auf 9 und in der Tat (bei der Speicherung von positiven ganzen Zahlen) hat das Nibble 1001 den Wert 9.
Nach dem gleichen Schema verläuft das, wenn man mit Bytes "arbeitet". Dort hat wiederum das rechte Bit den Wert 0, jedes weitere Bit gegen links nimmt den doppelten Wert des vorhergehenden an. Das Bit 7 (das ganz links) hat den Wert 128. Man kann es nun selber ausrechnen, wenn alle Bits bei einem Byte 1 sind kommt man auf den Gesamt-Wert von 255. Deshalb hat (bei Speicherung von positiven ganzen Zahlen) ein Byte den Werte-Bereich 0 bis 255.
Und nun zum eigentlichen Thema dieses Beitrages, zum Werte-Bereich der analogen Eingänge: Dafür werden Päckli von 10 Bits verwendet. Auch hier geht es nach dem gleichen Schema. Hier hat das höchstwertige Bit den Wert von 512. Wenn nun alle Bits 1 sind -> rechne selbst -> ergibt das den Wert von 1023.
Innerhalb eines Päcklis gilt: Das niedrigstwertigste Bit (das ganz rechts) nennt man das LSB (Least Significant Bit) und das höchstwertige Bit (das ganz links) nennet man das MSB (Most Significant Bit).
Die Wertigkeit eines Bits kann man mit seiner Position auch ausrechnen. Wertigkeit = 2 hoch Bitposition.
Beispiele:
Das 13. Bit von rechts (das Bit in der Position 12, weil wir mit 0 zu zählen anfangen) hat den Wert 2 hoch 12 = 4096
Das 6. Bit von rechts (das Bit in der Position 5, weil wir mit 0 zu zählen anfangen) hat den Wert 2 hoch 5 = 32
Das Bit ganz rechts (das Bit in der Position 0) hat den Wert 2 hoch 0 = 1
Ich habe mehrmals in Klammern den Hinweis "bei Speicherung von positiven ganzen Zahlen" geschrieben . Das ist, weil es für andere Arten von Daten (negative Zahlen, gebrochene Zahlen, Texte, etc.) wieder andere Arten gibt, die Wertigkeiten mit Bits ins jeweilige Päckli einzupacken. Aber für den Fall, dass wir ausschliesslich mit positiven ganzen Zahlen arbeiten, funktioniert es wie oben beschrieben.
Ich werde vielleicht bei anderen Gelegenheiten ähnliche Exkurse machen. Bei solchen, die für das Projekt nicht relevant sind, werde ich das auch dazuschreiben, damit man sie allenfalls überspringen kann.