Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
adc [2019/01/29 17:10] – [Videozusammenfassung] huwi | adc [2019/07/27 16:52] (aktuell) – huwi | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
Mit den ADC-Klassen des AVR C++ Framework lassen sich eine Vielzahl von Aufgabenstellungen rings um den // | Mit den ADC-Klassen des AVR C++ Framework lassen sich eine Vielzahl von Aufgabenstellungen rings um den // | ||
- | >>>>>>>>>>> | + | > |
====== Analoge Daten verarbeiten ====== | ====== Analoge Daten verarbeiten ====== | ||
Zeile 13: | Zeile 13: | ||
Wahrscheinlich sind die meisten Problemstellungen, | Wahrscheinlich sind die meisten Problemstellungen, | ||
- | >>>< | + | >< |
///////////////////////////////////////////////////// | ///////////////////////////////////////////////////// | ||
// ENTWURF Beispiel Analog 1 | // ENTWURF Beispiel Analog 1 | ||
Zeile 42: | Zeile 42: | ||
Es sollen die Sensorwerte vom Lichtsensor erfasst und an das Control Center gesendet werden. Verbinden Sie den Lichtsensor mit dem Analogkanal 0. Dieser liegt in Zweitbelegung an Port C Bit 0. | Es sollen die Sensorwerte vom Lichtsensor erfasst und an das Control Center gesendet werden. Verbinden Sie den Lichtsensor mit dem Analogkanal 0. Dieser liegt in Zweitbelegung an Port C Bit 0. | ||
- | >>>>>>>>> | + | > |
Der ADC des AVR sampelt grundsätzlich mit 10 Bit. Man kann aber das Ergebnis der Digitalisierung so im ADC Register ausrichten, dass sich ein 8 Bit Ergebnis in Assembler leichter abholen lässt. Aber, ist es in C noch wichtig sich um derartige Details zu kümmern? Die Klasse AnalogDevice besitzt jeweils eine Operation, die den 10 bzw. 8 Bit Wert der Wandlung liefert. Und hier setzen wir mit dem folgenden Beisiel an: | Der ADC des AVR sampelt grundsätzlich mit 10 Bit. Man kann aber das Ergebnis der Digitalisierung so im ADC Register ausrichten, dass sich ein 8 Bit Ergebnis in Assembler leichter abholen lässt. Aber, ist es in C noch wichtig sich um derartige Details zu kümmern? Die Klasse AnalogDevice besitzt jeweils eine Operation, die den 10 bzw. 8 Bit Wert der Wandlung liefert. Und hier setzen wir mit dem folgenden Beisiel an: | ||
- | >>>< | + | >< |
///////////////////////////////////////////////////// | ///////////////////////////////////////////////////// | ||
// Beispiel Analog 1 | // Beispiel Analog 1 | ||
Zeile 78: | Zeile 78: | ||
Bilden, übertragen und testen Sie das Programm. Beachten Sie die Einstellungen des COM-Ports im Controlcenter. | Bilden, übertragen und testen Sie das Programm. Beachten Sie die Einstellungen des COM-Ports im Controlcenter. | ||
- | >>>< | + | >< |
===== 10 Bit Werte erfassen und ausgeben ===== | ===== 10 Bit Werte erfassen und ausgeben ===== | ||
Zeile 84: | Zeile 84: | ||
Das was wir als nächstes programmieren wollen, notieren wir als Konzept im Quellcode. // Sie kennen das Spiel ja.// In dieser Übung soll die Formatierung und Ausgabe von Zeichenketten mit der Erfassung von Analogwerten mit einer 10 Bit Auflösung kombiniert werden. Ganz nebenbei muss auch noch etwas gerechnet werden. Wir möchten die tatsächliche Spannung in Millivolt und auch in Volt, mit eins, zwei oder auch drei Nachkommastellen ermitteln. | Das was wir als nächstes programmieren wollen, notieren wir als Konzept im Quellcode. // Sie kennen das Spiel ja.// In dieser Übung soll die Formatierung und Ausgabe von Zeichenketten mit der Erfassung von Analogwerten mit einer 10 Bit Auflösung kombiniert werden. Ganz nebenbei muss auch noch etwas gerechnet werden. Wir möchten die tatsächliche Spannung in Millivolt und auch in Volt, mit eins, zwei oder auch drei Nachkommastellen ermitteln. | ||
- | >>>< | + | >< |
/////////////////////////////////////////////////////// | /////////////////////////////////////////////////////// | ||
// KONZEPT Beispiel Ausgabe der Spannung in Millivolt | // KONZEPT Beispiel Ausgabe der Spannung in Millivolt | ||
Zeile 112: | Zeile 112: | ||
Die Realisierung soll in zwei Varianten erfolgen. Zunächst mit der Ausgabe in Millivolt und danach die Erweiterung auf die Ausgabe mit einer Stelle nach dem Komma. | Die Realisierung soll in zwei Varianten erfolgen. Zunächst mit der Ausgabe in Millivolt und danach die Erweiterung auf die Ausgabe mit einer Stelle nach dem Komma. | ||
- | >>>< | + | >< |
// Ausgabe der Spannung in Millivolt | // Ausgabe der Spannung in Millivolt | ||
class Application : public Controller | class Application : public Controller | ||
Zeile 139: | Zeile 139: | ||
Diesmal soll das Potentiometer 1 als Quelle für unsere Analogwerte dienen. Schließen Sie das Potentiometer an den Analogkanal 0 an (PortC.0). | Diesmal soll das Potentiometer 1 als Quelle für unsere Analogwerte dienen. Schließen Sie das Potentiometer an den Analogkanal 0 an (PortC.0). | ||
- | >>>>>>>>>>>> | + | > |
Erstellen, übertragen und testen Sie das Programm. Beachten Sie die Einstellungen für den Com-Port und den Zeilenumbruch im Controlcenter. Das Ergebnis sollte wie folgt aussehen: | Erstellen, übertragen und testen Sie das Programm. Beachten Sie die Einstellungen für den Com-Port und den Zeilenumbruch im Controlcenter. Das Ergebnis sollte wie folgt aussehen: | ||
- | >>> | + | > |
Nachdem die Umrechnung und Ausgabe in Millivolt funktioniert, | Nachdem die Umrechnung und Ausgabe in Millivolt funktioniert, | ||
- | >>>< | + | >< |
// Ausgabe der Spannung in Volt, Genauigkeit eine Stelle hinter dem Komma | // Ausgabe der Spannung in Volt, Genauigkeit eine Stelle hinter dem Komma | ||
class Application : public Controller | class Application : public Controller | ||
Zeile 177: | Zeile 177: | ||
Erstellen, übertragen und testen Sie das Programm. Beachten Sie die Einstellungen für den Com-Port und den Zeilenumbruch im Controlcenter. Das Ergebnis sollte dem folgendem Bildschirmauszug entsprechen. | Erstellen, übertragen und testen Sie das Programm. Beachten Sie die Einstellungen für den Com-Port und den Zeilenumbruch im Controlcenter. Das Ergebnis sollte dem folgendem Bildschirmauszug entsprechen. | ||
- | >>> | + | > |
====== Videozusammenfassung ====== | ====== Videozusammenfassung ====== | ||
- | >>>< | + | >< |
====== Nächstes Thema ====== | ====== Nächstes Thema ====== | ||
[[ein kleines Projekt]] | [[ein kleines Projekt]] | ||
+ |