Forum: Mikrocontroller und Digitale Elektronik Drehzahl-aufnahme?


von lukas (Gast)


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

von holger (Gast)


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.

von lukas (Gast)


Lesenswert?

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

von Floh (Gast)


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.

von Frank L. (hermastersvoice)


Lesenswert?

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

von lukas (Gast)


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.

?? :(

von lukas (Gast)


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 ?! :(

von holger (Gast)


Lesenswert?

>Doch das Selbstschreiben hab ich nicht drauf.

Dann hast du zwei Möglichkeiten:

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

von Floh (Gast)


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.

von Karl H. (kbuchegg)


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.

von heinzhorst (Gast)


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?

von lukas (Gast)


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 :/ ..

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.