einen einzelnen Analogwert erfassen

Für Mikrocontrollerlösungen ist das Erfassen und die Verarbeitung analoger Daten oft essentiell. Mit den ADC-Klassen und Templates des PEC-Framework lassen sich eine Vielzahl von Aufgabenstellungen rings um den Analog-Digital-Converter mit wenigen Handgriffen erledigen. Das folgende Bild zeigt die Signatur des PecAdcSingle Templates.

Bevor wir beginnen benötigen wir ein neues Klassendiagramm. Dazu müssen Sie zurück in die oberste Ebene gehen (rechte Maustaste / nach oben oder einfach Taste ESC). Dort legen Sie ein neues Klassendiagramm an. Zur Erinnerung:

Wahrscheinlich sind die meisten einfachen Problemstellungen, bei denen ein Analogwert erfasst, verarbeitet und daraufhin etwas, was auch immer, getan werden soll, mit einer Auflösung von 8 Bit absolut hinreichend zu lösen. Somit soll im ersten Beispiel ein 8 Bit Wert erfasst und per UART an das Controlcenter gesendet werden. Der Charm dabei ist, dass 8 Bit Werte sich auch sehr reibungslos per UART übertragen lassen. Nun denn - der UML Entwurf:

Gehen Sie wie folgt vor:

  1. ggf. ein Projekt, und ein neues Klassendiagramm für PEC Anwendungen erstellen oder das UART Beispiel modifizieren
  2. eine eigene Klasse Konsole anlegen
  3. die Klasse Konsole in der Klasse Controller aggriegieren
  4. das Template PecUart an die Klasse Konsole binden
  5. ein Template für die gewünschte Baudrate an die Klasse Konsole binden
  6. das Template uart0_avr an die Klasse Konsole binden
  7. eine Klasse Poti anlegen
  8. die Klasse Poti in der Klasse Controller aggregieren
  9. das Template PecAdcSingle an die Klasse Poti binden
  10. das Template adcResolution8bit an die Klasse Poti binden
  11. das Template adcChannel0 an die Klasse Poti binden

Die so vorbereitete Systemstruktur muss jetzt nur noch mit dem gewünschten Verhalten ergänzt werden. Ergänzen Sie in der Operation onWork der Klasse Controller den folgenden Code:

Controller::onWork

uint8_t wert;
wert=poti.getValue();
konsole.writeByte(wert);
waitMs(100);

Zum Testen müssen wir ein analoges Eingabegerat an den Kanal 0 (Port C Bit 0) anschließen. Benutzen Sie dafür eines der Potentiometer auf dem myAVR Board.

Wenn wir die Zeile richtig eingegeben und das Modell korrekt erstellt haben können wir aus dem Klassendiagramm wie gehabt den Quellcode generieren, diesen übersetzen und auf den Controller übertragen. Das erfolgt über das Aktionsmenü in der Objektbibliothek. Wählen sie dort den Menüpunkt Erstellen, Brennen & Ausführen.

Patchen Sie das Potentiometer auf Port C Bit 0 (vgl. Bild). Starten Sie das ControlCenter und beachten die korrekten Einstellungen für den COM-Port. Nachdem Sie die Verbindung mit geöffnet haben stellen Sie die Ansicht auf „Oszi“ um. Sie können über die Optionen für die Oszi-Ansicht verschiedene Darstellungsvarianten auswählen. Nun können Sie jede Veränderung am Potentiometer auf dem Bildschirm verfolgen.

Videozusammenfassung

Und hier diesen Abschnitt als kurze Videozusammenfassung.

oder direkt auf youTube anschauen

Nächstes Thema

  • Timer (nur über eine SiSy-Lizenz verfügbar)
  • adc.txt
  • Zuletzt geändert: 2021/10/14 09:55
  • von huwi