mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programm zum Auslesen von Duty Cycle (ADXL202)


Autor: Mario K. (mario1989)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Könnte mir vielleicht jemand eine grobe Struktur für ein Programm geben, 
mit dem ich den Duty Cycle des ADXL202 (mit einem PIC 16F88) auslesen 
kann? Ich möchte den Sensor an einer Digicam bzw. am Blitzschuh einer 
SLR anbringen und zum Beispiel mit fünf LEDs die Neigung ausgeben! Dabei 
soll die LED in der Mitte leuchten, wenn die Kamera gerade ist. Die 
anderen LEDs jeweils bei einer Auslenkung nach links oder rechts.

Ich freue mich auf eure Hilfe!

Mit freundlichen Grüßen

Mario1989

Autor: mehrfacher STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat dein PIC eine InputCapture-Einheit?
Die würde helfen.
Sonst sollte es so gehen:

Timer starten

Interrupt Eingang auf steigende Flanke einstellen
Warten bis Interrupt ausgelöst wurde (ISR)
Aktuellen Timerwert sichern (a)
Interrupt Eingang auf fallende Flanke einstellen
Warten bis Interrupt ausgelöst wurde (ISR)
Aktuellen Timerwert sichern (b)
Interrupt Eingang auf steigende Flanke einstellen
Wiederhole das, bis das Schiff untergeht...

Auswertung:
Der Abstand zwischen (a) und (b) gibt die Pulsdauer (High-Pegel) an.
Die Zeit zwischen (b) und (a) ist die Pausendauer (low-Pegel).
Die Zeit zwischen den beiden (a) gibt dann die Periodendauer an.
Der Rest ist etwas rechnen...

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...einfacher für Deine Anwendung ist es wohl, den Analog-Ausgang des 
adxl zu Messen. Hat Dein PIC einen AD-Wandler ?

lg, Frank

Autor: Mario K. (mario1989)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der PIC besitzt sowohl eine Captureeinheit als auch einen AD-Wandler!

Nun, wie könnte ich das Auslesen realisieren?

MfG Mario

Autor: Mario K. (mario1989)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie könnte ich die Capture-Einheit hier nutzen?

In anderen Beiträgen hab ich gelesen, dass die analoge Auswertung etwas 
ungenau sein soll... Würde sie für diese Anwendung reichen?

(Weiters würde mich interessieren, ob der Sensor im Stande ist, geringe 
Neigungen der Digicam zu erkennen!?)

MfG Mario1989

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>In anderen Beiträgen hab ich gelesen, dass die analoge Auswertung etwas
>ungenau sein soll...
Das kann man so nicht sagen. Die PWM wird ja intern auch vom 
Analogsignal abgeleitet und kann demnach nur so gut sein, wie das 
Analogsignal selbst.
Wenn Du allerdings das Analogsignal selbst per AD-Wandler sampelst, dann 
hängt die Auflösung von Deinem verwendeten ADC ab!

>Würde sie für diese Anwendung reichen?
Du hast nirgends geschrieben, wie 'genau' Deine Anwendung sein muss.
Wie soll man also diese Frage beantworten?

>Weiters würde mich interessieren, ob der Sensor im Stande ist, geringe
>Neigungen der Digicam zu erkennen!?
s.oben!
Welche Auflösung/Genauigkeit willst Du denn erreichen?

Autor: Mario K. (mario1989)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe da an einen Neigungsbereich von etwa +-5° gedacht. Abstufung je 
1°...

MfG Mario

Autor: Mario K. (mario1989)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal zur Capture-Einheit:

Ich hab gelernt, dass sie (bei unserem PIC 16F88 - Timer2) bei einem 
Ereignis (z.B. steigende oder fallende Flanke) am CCP-Input, den Wert im 
Timer-Register ins CCPR1L/H lädt und ein Interrup-Flag setzt.
Tritt ein weiteres Ereignis am CCP-Input auf, bevor der Wert im 
CCPR1L/H-Register ausgelesen wurde, wird der alte Wert vom neuen Wert 
subtrahiert.

Müsste doch soweit stimmen?!

Und diese Funktion kann ich für die Auswertung der erzeugten PWM 
nutzen!?

MfG Mario

Autor: mehrfacher STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Müsste doch soweit stimmen?!
Sollte wahr sein...

>Und diese Funktion kann ich für die Auswertung der erzeugten PWM
>nutzen!?

ja. Atmel hat zum Thema Duty-Cycle-Messung eine Application Note 
herausgebracht. Ob es die auch von Microchip gibt, kann ich nicht sagen.
Aber das Prinzip ist das, was ich oben beschrieben habe.

Autor: Mario K. (mario1989)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@mehrfacher STK500-Besitzer:

Das Prinzip hab ich verstanden. Mit berechnen denk ich, hast du gemeint, 
dass ich die jeweiligen Zeitabstände ermitteln soll, um den Duty Cycle 
auszuwerten, oder?! Wie kann ich dann die erhaltenen Werte am 
einfachsten auf die visuelle Ausgabe (LEDs) umlegen?

MfG Mario

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.