Forum: Mikrocontroller und Digitale Elektronik Zeitmessung beim Arduino


von Smilla H. (smillamarie)


Lesenswert?

Hallo,
Für ein Schulprojekt sollen eine Freundin und ich zwei Arduinos mithilfe 
des Morsecodes kommunizieren lassen. Das Ausgeben ist uns gelungen, 
jetzt sitzen wir am Übersetzen.
Dies machen wir mithilfe einer LED und eines Fotowiderstandes, welcher 
bis jetzt leider nur hell und dunkel erkennt.
Wie können wir die Länge der Hell/Dunkelphasen messen?
Gibt es dafür einen Zeitbefehl?

Da dies unser erstes Jahr Informatik ist, sind wir leider noch nicht so 
"geübt" im Umgang

Vielen Dank!
Liebe Grüße

von Patrick C. (pcrom)


Lesenswert?

Es gibt mehrere methoden, zB die benutzung von millis()

von Peter D. (peda)


Lesenswert?

Siehe Datenblatt: Input Capture Unit

von Spannungsteiler (Gast)


Lesenswert?

Smilla H. schrieb:
> Wie können wir die Länge der Hell/Dunkelphasen messen?
> Gibt es dafür einen Zeitbefehl?

Der Befehl heißt PulseIn()

siehe:
https://www.arduino.cc/en/Reference/PulseIn
https://www.arduino.cc/en/pmwiki.php?n=Reference/HomePage

von Walter (Gast)


Lesenswert?


von Spannungsteiler (Gast)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter D. schrieb:
> Siehe Datenblatt: Input Capture Unit
Ich glaube fast, für den ersten Schritt liegt diese Latte zu hoch...

Spannungsteiler schrieb:
> Der Befehl heißt PulseIn()
Es müssen für den Morsecode aber auch Pausen ausgewertet werden...

Ich würde
1. erkennen, wann sich der Pegel des Eingangs ändert (Flankenerkennung)
und dann
2. bei einer solchen Änderung einen "Zeitstempel" nehmen. Und jedesmal 
diese aktuellen Zeitstempel mit dem vorherigen vergleichen 
(subtrahieren). Das ergibt dann die Dauer des letzten Pegels im ms.

Die Auswertung ist dann "relativ" trivial, wenn auf beiden Seiten eine 
Maschine mit konstanter Geberfrequenz sitzt. Dann ist z.B. bei einer 
Punktdauer von 200ms ein Punkt kürzer als 400ms und ein Strich eben 
länger.

Spannungsteiler schrieb:
> Für euer Vorhaben gibt es sogar Library für Arduino:
Ich als Lehrer würde diese Seite sicher auch finden. Und mir dann die 
Funktione des Codes erklären lassen...

von Smilla H. (smillamarie)


Lesenswert?

Erst mal Vielen Dank für die ganzen Antworten!


> Ich würde
> 1. erkennen, wann sich der Pegel des Eingangs ändert (Flankenerkennung)
> und dann
> 2. bei einer solchen Änderung einen "Zeitstempel" nehmen. Und jedesmal
> diese aktuellen Zeitstempel mit dem vorherigen vergleichen
> (subtrahieren). Das ergibt dann die Dauer des letzten Pegels im ms.
>
> Die Auswertung ist dann "relativ" trivial, wenn auf beiden Seiten eine
> Maschine mit konstanter Geberfrequenz sitzt. Dann ist z.B. bei einer
> Punktdauer von 200ms ein Punkt kürzer als 400ms und ein Strich eben
> länger.

Wir werden das mal Versuchen, Danke! :)

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
Noch kein Account? Hier anmelden.