Auslesen eines ADCs

Wie sehen digitale Daten im Mikrocontroller eigentlich aus? Es handelt sich um Zahlenwerte, die in Registern (Speichern) abgelegt sind, und die vom Prozessor geladen und verarbeitet werden können. Im Arduino gibt es in einer Beispiel-Bibliothek die Funktion

int sensorValue = analogRead(A0);

Mit dem Befehl „analogRead(A0)“ wird eine analoge Eingangsspannung, die am Eingangspin A0 angeschlossen ist (also mit dem IC-Anschlussbeinchen verbunden ist), digitalisiert. Die Spannung wird nur einmal und nicht kontinuierlich digitalisiert, wenn diese Programmzeile aufgerufen wird. Das Ergebnis der Umwandlung wird in die Variable „sensorValue“ geschrieben. Die Variable ist vom Typ „int“, sie ist also eine ganze Zahl. Sie können mit der Variablen anschließend Rechenoperationen ausführen.

Wenn Sie diese Code-Zeile mehrfach hintereinander ausführen und die Daten in unterschiedliche Variablen schreiben, dann können Sie die Eingangsspannung kontinuierlich umwandeln. Dafür werden in der Informatik üblicherweise Arrays oder Pointer eingesetzt. In einem Array der Größe 16 würde das kontinuierlich umgewandelte Spannungssignal z. B. folgendermaßen aussehen:

Dafür benötigen Sie folgenden Code:

sensorValue[16]=0;

for (int i = 0; i <= 15; i++)

{

sensorValue[i]= analogRead(A0);

}

Sie können das Ergebnis der Umwandlung auch als kontinuierlichen Datenstrom auf einer Konsole am PC ausgeben. Damit hätten Sie bereits ein einfaches vollständiges Messsystem aufgebaut, in dem die komplette Messkette realisiert ist. Näheres dazu finden Sie in Beispiel-Codes der Arduino-Software.

Weiter