www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Drehzahlerfassung mit Atmega32 in C


Autor: Dirk S. (derdork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen.
Ich weiss dass das Thema tw. schon des öfteren Angesprochen wurde, 
allerdings nicht in meiner Konfiguration.

Ich habe einen Verbrennungsmotor (0-15000 u/min)bei dem ich aus dem 
Steuergerät ein 12V Rechteck als drehzahlsignal bekomme.
Dieses Drehzahlsignal möchte ich nun auf einem Grafikfähigen Display 
ausgeben.

Das Rechteck würde ich mit einem Spannungsteiler (2,2k / 3,9k) auf den 
Maximalwert 5V begrenzen (bei 13.8V).

Meine angedachte Herangehensweise:
- Drehzahl über T1 (PB1) über Counter erfassen
- Drehzahl entsprechend der Pulse/umdrehung runterrechnen bzw. 
Hochrechnen
- Umrechnen auf u/min
- Ausgabe auf dem Display

Ist es sinnvoll den T1 dafür zu verwenden? Wenn ja - im 16Bit Mode (wert 
kann ja >255 werden)

Gleichzeitig möchte ich Eine Gruppe von LEDs ansteuern (0-3000 1.LED, 
3000-5000 2. LED, 5000-7000 3. LED, 7000-12000 4. LED, 13500: Blinken 5. 
LED). Dazu würde ich eine Endlosschleife laufen lassen, die immer den 
aktuellen Registerwert vom T1 mit den Grenzwerten vergleicht und dann 
entsprechend die LEDs einschaltet.

Habt ihr Tipps / Hinweise?
Vielleicht ein paar Code-Snippets?

Würdet ihr das ganze anders realisieren?
Ggf. Soll gleichzeitig mit dem A/D Wandler auch noch eine Spannung 
gemessen und angezeigt werden - auf dem selben Display.
Dazu Hinweise?

Grüße

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das Rechteck würde ich mit einem Spannungsteiler (2,2k / 3,9k) auf den
>Maximalwert 5V begrenzen (bei 13.8V).

Schlecht da so dein Eingang nicht gegen Spannungsspitzen geschuetzt ist.
Besser ist es zum unteren Widerstand noch eine Z-Diode von 4.7V parallel 
zu schalten.

Gruss Helmi

Autor: Gast4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Softwaretechnisch wuerde ich das auch etwa so angehen.
Ich wuerde aber darauf achten, dass das Messen, das Umrechnen und das 
Anzeigen sauber getrennte Module mit klaren SW-Schnittstellen sind.

Hardwaremaessig ist die Abschottung des uC gegen alles was im Bordnetz 
umherfliegt, extrem wichtig und etwas aufwendig. Also an der Stelle 
nicht sparen.

Gast4

Autor: Dirk S. (derdork)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss es nochmal pushen.
wir haben das Problem dass wir keine Anständige Messung hinbekommen.
Die Variable (obwohl global Deklariert), wird im Interrupt mit Werten 
gefüllt, existiert im Hauptprogramm nicht mehr.

Jemand der weiter weiss?

Grüße

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du schon einmal mit dem Gedanken gespielt, deinen Code zu 
kommentieren?

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.