www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frequenz eines Rechtecksignals anzeigen


Autor: Martin S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also ich hab folgendes Problem: ich habe ein Rechtecksignal anliegen, 
dessen Frequenz sich in abhängigkeit einer Geschwindigkeit (vom Auto) 
ändert. Ich hab mir jetzt ausgerechnet, dass wenn ich die Impulse pro 
0,94 Sekunden zähle, entsprechen diese genau der gefahrenen 
Geschwindigkeit (z.B.: 100km/h enstprechen 100Impulsen pro 0,94 
Sekunden.
Somit möchte ich mir genau die Impulse auf diese Messdauer auf drei 
7-Segmentanzeigen anzeigen lassen und habe somit die Geschwindigkeit.
Ich bin leider nicht sonderlich bewandert, was solche Schaltungen 
angeht, deswegen würde ich um eure hilfe bitten ;-)

Danke im Vorraus für eure Antworten,
lg Martin

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal die Suchfunktion benutzt? 
http://www.mikrocontroller.net/articles/AVR-Tutori...
Das sollte reichen um das Prinzip zu verstehen. Ist wirklich sehr simpel 
:)

Autor: Martin S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich hab schon gesucht...
Es geht nicht so sehr um die 7-Segmentanzeige, sondern um die Tatsache, 
dass die Messdauer ein wenig komisch ist und ich nicht weiß, wie ich die 
Impulse zählen soll und diesen Wert dann an die Anzeige zu übertragen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin S. wrote:
> dass die Messdauer ein wenig komisch ist

Ist auch nicht komischer als eine Messdauer von genau 1 Sekunde. Das 
kommt nur dir seltsam vor, weil wir Menschen eine Vorliebe für ganze 
Zahlen haben. Dem µC ist das aber prinzipiell Wurscht. Alles 
entscheidend: kannst du mit einem Timer mit geeignetem Vorteiler diesen 
Zahlenwert (unter Umständen auch in mehreren Etappen) genau erreichen 
oder nicht.

> und ich nicht weiß, wie ich die
> Impulse zählen soll und diesen Wert dann an die Anzeige zu übertragen.

Schau dir mal das Datenblatt deines µC an. Wenn du einen AVR benutzts, 
dann wird es dort einen Timer geben, den man so konfiguerieren kann, 
dass er bei Auftreten eines Pulses an einem externen Eingang von sich 
aus hochzählt.
Alles was du dann noch brauchst, ist deine Zeitbasis von 0.9irgendwas 
Sekunden, die du mit einem anderen Timer realisierst und der dir genau 
in diesen Intervallen einen Interrupt auslöst. Im Interrupt dann den 
Zählwert vom ersten Timer holen und du hast deinen Messwert.

Wenn das allerdings dein erstes µC Projekt ist, dann rat ich dir 
zunächst mal mit kleineren Brötchen anzufangen und das ganze in Etappen 
zu machen.

Autor: Martin S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke, das hilft mir ein bisschen weiter.
Ja das ist mein erstes Projekt und ich blick noch nicht so wirklich 
durch, deswegen meine primitiven Fragestellungen ;-)
Es geht eben um eine Geschwindigkeitsanzeige, deswegen wüsste ich jetzt 
nicht wie ich mal kleiner anfangen könnte, da ich nicht so wirklich den 
Zugang zu solchen Sachen habe, ich beschäftige mich normalerweise mit 
Beleuchtungstechnik.
Aber ich werde das mal so versuchen wie ich mir das jetzt vorstellen 
könnte und falls noch Fragen meinerseits auftreten sollten, werde ich 
mich wieder melden.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin S. wrote:
> Es geht eben um eine Geschwindigkeitsanzeige, deswegen wüsste ich jetzt
> nicht wie ich mal kleiner anfangen könnte,

Led an µC Ausgang hängen. Einschalten, Ausschalten, Blinken lassen :-)
Dabei lernst du die ersten absolut notwendigen Grundlagen

Dann soll das Blinken nicht mehr zufällig mit irgendeiner Frequenz sein, 
sondern es soll sich genau eine bestimmte Frequenz einstellen. Das lehrt 
dich den Umgang mit einem Timer für eine Zeitbasis.

Einzelne 7-Segment anhängen und, von mir aus im Sekundentakt hochzählen. 
Wieder gibts dabei ein paar neue Grundlagen und das bisher Erlernte wird 
vertieft. Vorteil: Ob du alles richtig hast, kannst du dann mit einer 
Stoppuhr relativ leicht überprüfen (bzw. rausbekommen, dass ein Quarz 
auch nicht so genau geht, wie man sich das landläufig so vorstellt und 
was man dagegen tun kann)

Mehrere 7-Segment im Multiplex ansteuern und vielleicht diesmal eine 
richtige Uhr (mit Minuten und Sekunden) programmieren. Das neu 
hinzugekommene ist der Multiplex, also eine Technik um mehrere 7-Segment 
zu betreiben

Dann vielleicht mal einen Ereigniszähler. Also externen Eingang (zb. 
über Taster) und der µC zeigt auf der 7-Segment die Anzahl an gemessenen 
Ereignissen an.

Und dann die Kombination aus allem: Ereigniszähler über einen bestimmten 
Zeitraum. Dein eigentliches Ziel

Dürfte schon ein paar Wochen dauern, bis du soweit bist. Wenn du 
fleissig bist und gute Fortschritte machst, können es auch ein paar Tage 
sein. Aber wenn du bei 0 anfängst, gibt es viel zu lernen. Ein paar 
Stunden oder ein Wochenende für sowas vorzusehen ist völlig 
unrealistisch.

Autor: Daniel W. (pegasus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Martin S. wrote: Im Interrupt ... den
> Zählwert vom ersten Timer holen und du hast deinen Messwert.

Hallo,
kann man einen Timer "direkt" auslesen, oder
muss man stets eine "eigene Variable" anlegen, die
man erhöht ?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel W. wrote:
> Karl heinz Buchegger wrote:
>> Martin S. wrote: Im Interrupt ... den
>> Zählwert vom ersten Timer holen und du hast deinen Messwert.
>
> Hallo,
> kann man einen Timer "direkt" auslesen, oder
> muss man stets eine "eigene Variable" anlegen, die
> man erhöht ?

Du kannst den Timer auch direkt auslesen. Sonst wäre die Verwendung als 
Zähler für externe Ereignisse ein wenig witzlos.

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.