www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Drehzahl-aufnahme?


Autor: lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Leute,
Ich hab ein Problem. Ich habe in der Schule eine Aufgabenstellung 
bekommen und kenn mich dabei nicht aus, darum bitte ich euch um Hilfe!

Ich soll die Drehzahl einer Drehmaschine messen. Dazu soll ich einen 
geeigneten Sensor finden. Dieser Sensor soll den gemessenen Wert zum 
mikrocontroller senden und dieser Wert soll dann am LCD-Display 
angezeigt werden.

Das mit dem Sensor hab ich mir folgender maßen vorgestellt:
ICh bringe eine Leuchtdiode zu leuchten. Dann schließe ich einen 
Widerstand am mikrocontroller. Nun klebe ich auf die Drehmaschine einen 
Sticker. Wenn nun sich die Maschine dreht, leuchtet die Leuchtdiode den 
Sticker an und der Sticker reflektiert das Licht zum Widerstand. Somit 
verändert sich die Spannung am Widerstand und man weiß, dass eine 
Umdreung gelegt worden ist.

Nun aber, weiß ich nicht wie man das Programm im MPLAB schreibt. Deshalb 
wollte ich euch fragen, ob jemand von euch mir weiter helfen kann? Ich 
bitte euch um Hilfe, ich wäre euch wirklich sehr dankbar!

Mit freundlichen Grüßen

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich hab ein Problem. Ich habe in der Schule eine Aufgabenstellung
>bekommen und kenn mich dabei nicht aus, darum bitte ich euch um Hilfe!

Das solltest du aber, sonst würde man dir die Aufgabe nicht
stellen. Irgendwo im Unterricht war das wohl mal dran.

>Nun aber, weiß ich nicht wie man das Programm im MPLAB schreibt. Deshalb
>wollte ich euch fragen, ob jemand von euch mir weiter helfen kann?

Siehe oben.

Autor: lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin nicht der perfekte programmierer und der beste in diesen sachen, 
ich bitte um hilfe :(

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lukas schrieb:
> Nun aber, weiß ich nicht wie man das Programm im MPLAB schreibt.

Fsng mal selbst mit dem Programm an.
IO-Einstellungen, usw.
Sobald das fertig ist, herzeigen und spezifische Frage stellen.

Autor: Frank L. (hermastersvoice)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...und dringend bei der nächsten VHS einen Grundkurs Deutsch buchen! 
Aber auch hingehen und nicht schwänzen wie den Programmierunterricht!!!

Autor: lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Floh schrieb:
> Fsng mal selbst mit dem Programm an.
>
> IO-Einstellungen, usw.
>
> Sobald das fertig ist, herzeigen und spezifische Frage stellen.

Ich weiß, dass ich den Spannungswert des Widerstandes mal einlesen muss 
also:

void main(void)
{
int ADCwert;
....

dann muss man einen Zähler einbauen, der bei jedem Wert, das 
hereinkommt, zählt. somit weiß ich, dass eine weitere Umdreung gemacht 
worden ist. und das muss ich dan am LCD, das auf dem mikrocontroller 
ist, anzeigen.

?? :(

Autor: lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank L. schrieb:
> ...und dringend bei der nächsten VHS einen Grundkurs Deutsch buchen!
>
> Aber auch hingehen und nicht schwänzen wie den Programmierunterricht!!!

Ich bitte ja nur um Hilfe. Wenn mir jemand Programmzeilen zeigt, weiß 
ich wovon er redet und was das Programm genau mach. Doch das 
Selbstschreiben hab ich nicht drauf. Ich wäre sehr erfreut, wenn du mir 
weiter helfen konntest ?! :(

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Doch das Selbstschreiben hab ich nicht drauf.

Dann hast du zwei Möglichkeiten:

1. Lerne es.
2. Hol dir ne sechs ab.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lukas schrieb:
> Ich weiß, dass ich den Spannungswert des Widerstandes mal einlesen muss
> also:

Ich will ein Auto bauen. Ich weis wie ich das Radio anschließe -.-

Logisch denken.
1. Grundgerüst des Programms
2. Ein-/Ausgabe festlegen
3. Programmatischer Entwurf, was mach ich wann wie oft?
4. Programmieren.

Übrigends, ich nehme nur lauffähigen Code als Anhang zur Kenntnis, keine 
platten Umschreibungen.

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

Bewertung
0 lesenswert
nicht lesenswert
lukas schrieb:

> Selbstschreiben hab ich nicht drauf. Ich wäre sehr erfreut, wenn du mir
> weiter helfen konntest ?! :(

Ein paar Tpss hast du ja schon bekommen.
Einen wichtigen noch von mir:

In Schritten arbeiten!

Die Aufgabe kommt dir jetzt komlpiziert vor, weil du alles auf einmal 
siehst und nicht weißt, wie das alles zusammenhängen soll.

Teil dir die Arbeit auf!
Die Drehzahl und das LCD sind erst mal völlig uninteressant. Jetzt 
willst du erst mal nur deinen Sonsor abfragen und wenn deine Markierung 
auf der Wlle so steht, dass sie das Licht reflektiert, soll eine LED 
angehen.

Mehr nicht.


Übrigens: Mit dem ADC wirst du nicht viel Freude haben. Brauchst du auch 
nicht. Dich interessiert ja die eigentliche Spannung nicht. Du willst 
nur wissen ob sie hoch oder niedrig ist. Eigentlich willst du auch das 
noch gar nicht wissen. Eigentlich willst du nur wissen, wann sie von 
niedrig auf hoch (oder umgekehrt) wechselt.
So gesehen richtest du dir am besten deine Hardware so her, dass bei 
unbeleuchtetem Photowiderstand möglichst 5V an deinem Portpin ankommen 
und bei beleuchtetem möglichst 0V. Denn dann ist dein "Sensor" aus Sicht 
des Programmes auch nichts anderes als ein Schalter/Taster. Und den 
solltest du ja erst mal auswerten können, so dass bei Betätigung eine 
LED angeht.

Nicht von der Komplexität der kompletten Aufgabe beeindrucken lassen. 
Aufteilein in einfachere Teilprobleme heisst die Devise.
Diese Teilprobleme dann lösen und nach und nach die Einzelteile 
zusammenführen.

Autor: heinzhorst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Sensor könnstest du den Reflexkoppler CNY70 nehmen. Da hast du Send- 
und Empfangsdiode in einem Gehäuse. Der ist genau für sowas gemacht.

Zur Messung der Drehzahl gibt es ein Prinzig zwei Möglichkeiten:

1. Du verbindest den Sensor mir einem Interrupt-Eingang und 
inkrementierst in der ISR eine Variable. Nach einer konstanten Zeit wird 
der Wert ausgelesen und zurückgesetzt.

2. Beim PIC kannst du einen der Timer extern takten. So wird dein Timer 
zum Zähler. Vorteil gegenüber Variante 1 ist, dass du eine deutlich 
geringere Interruptbelastung hast. Nun lässt du einen anderen Timer 
immer nach einer konstanten Zeit einen Interrupt auslösen. In der ISR 
liest du jetzt den ersten Timer (Zähler) aus.

So, jetzt bist du gefragt mit der Umsetzung. Was hast (oder kannst) du 
denn schon? Schon mal mit den Timern des PIC gearbeitet? Hast du schon 
eine funktionierende LCD-Ansteuerung?

Auf welchem Level läuft das Ganze denn?

Schulprojekt?
Ausbildung/berufsbildende Schule?
Studium?

Autor: lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
heinzhorst schrieb:
> 2. Beim PIC kannst du einen der Timer extern takten. So wird dein Timer
>
> zum Zähler.

Die erste Aufgabenstellung hast du mir ja schon herausgefunden :) - 
besten Dank! In den kommenden Tagen werde ich mal diesen Sensor 
bestellen.

Wenn ich dann diesen Sensor habe, werde ich es auf den mikrocontroller 
anschließen.
Wenn jetzt angenommen die Maschine eine Umdreung macht, so muss dieser 
wert eingelsen werden und auf der LCD-Anzeige angezeigt werden. Also 
sozusagen ein Timer realisiert werden. Wenn sich die Spannung, oder was 
auch immer dieser Sensor misst, verändert, so zählt der Zähler/Timer 
eine Zahl weiter. z.B: eine Umdreung wurde schon gemacht also steht auf 
der LCD: 1 ; => jetzt kommt eine zweite Umdreung -> Sensor leitet diesen 
Wert weiter -> Wert wird eingelesen -> Timer zählt eine Zahl weiter 
also: 2. Dies müsst ich jetzt programmieren :/ ..

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.