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
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...
...einfacher für Deine Anwendung ist es wohl, den Analog-Ausgang des adxl zu Messen. Hat Dein PIC einen AD-Wandler ? lg, Frank
Der PIC besitzt sowohl eine Captureeinheit als auch einen AD-Wandler! Nun, wie könnte ich das Auslesen realisieren? MfG Mario
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
>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?
Ich habe da an einen Neigungsbereich von etwa +-5° gedacht. Abstufung je 1°... MfG Mario
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
>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.
@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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.