mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bewegungsmelder


Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Apotheke ist mit einer automatischen Türe abgesichert. Die Tür kann 
von außen mit einem Taster geöffnet werden, innen ist ein 
Passiv-Infrarot-Bewegungsmelder installiert. Erkennt der BM eine Person, 
soll die Tür automatisch geöffnet werden. Um die Sicherheit zu erhöhen, 
werden die Ausgangssignale des BM analysiert: Wenn der Digitalausgang 
ein Objekt signalisiert, soll die Geschwindigkeit des Objektes ermittelt 
werden. Die Türe wird erst ab einer bestimmten Geschwindigkeit geöffnet.

• Entwerfen Sie ein µC-Programm(für PIC18Fxx) zur Auswertung der 
Schaltfrequenz des BM. Bei Überschreitung einer bestimmten 
Schaltfrequenz soll die Türe automatisch geöffnet werden.


Kann mir jemand helfen ?
der Analoge Ausgang beträgt zwischen 0-5V, durch A/D Wandler wird auf 
0...255 Werte umgewandelt
Was is mit der Schaltfrequenz ?

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

Bewertung
0 lesenswert
nicht lesenswert
Johann schrieb:
> Eine Apotheke ist mit einer automatischen Türe abgesichert. Die Tür kann
> von außen mit einem Taster geöffnet werden, innen ist ein
> Passiv-Infrarot-Bewegungsmelder installiert. Erkennt der BM eine Person,
> soll die Tür automatisch geöffnet werden. Um die Sicherheit zu erhöhen,
> werden die Ausgangssignale des BM analysiert: Wenn der Digitalausgang
> ein Objekt signalisiert, soll die Geschwindigkeit des Objektes ermittelt
> werden. Die Türe wird erst ab einer bestimmten Geschwindigkeit geöffnet.
>
> • Entwerfen Sie ein µC-Programm(für PIC18Fxx) zur Auswertung der
> Schaltfrequenz des BM. Bei Überschreitung einer bestimmten
> Schaltfrequenz soll die Türe automatisch geöffnet werden.
>
>
> Kann mir jemand helfen ?
> der Analoge Ausgang beträgt zwischen 0-5V, durch A/D Wandler wird auf
> 0...255 Werte umgewandelt
> Was is mit der Schaltfrequenz ?

Die hat mit dem Analogausgang nichts zu tun.
Offenbar hat der BM noch einen Digitalausgang. Auf diesem Digitalausgang 
signalisiert der BM, dass sich in seinem Sichtbereich etwas bewegt. Dies 
tut er indem er ein periodiches Signal rausgibt. Je schneller das Objekt 
desto höher die Signalfrequenz oder umgekehrt.

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja es hat auch einen Digital ausgang mit TTL, wie kann ich den PIC so 
programmieren, dass ab einer gewissen Schaltfrequenz die Tür(Diode in 
meinem fall) auf high setzt ?

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wärs mit einer Messung der Zeit zwischen zwei steigenden 
Signalflanken?

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also mit PWM ?

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

Bewertung
0 lesenswert
nicht lesenswert
Johann schrieb:
> also mit PWM ?


Nein

PWM: Der µC erzeugt ein Signal
Du hast: Der µC bestimmt die Periodendauer eines Signals.
Ist ganz was anderes.

Autor: johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie bestimme ich die Periodendauer in C ?

Autor: Nitram L. (nitram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
johann schrieb:
> Wie bestimme ich die Periodendauer in C ?

du hast zwei Möglichkeiten

1.) auf positive Flanke warten => Timer starten => auf nächste
    positive Flanke warten => Timer stoppen :-)


2.) auf negative Flanke warten => Timer starten => auf nächste
    negative Flanke warten => Timer stoppen :-)


Eigentlich ganz einfach... :-)

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich halte es für zweifelhaft, dass mit einem PIR-Sensor überhaupt die 
Geschwindigkeit ermittelt werden kann, wenn man sich mal dessen 
Funktionsweise vergegnwärtigt.

(Bei Bedarf kann ich die ausführlich erläutern)

Wenn, dann geht das überhaupt nur mit einem Doppler-Radar-Sensor!

Frank

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

Bewertung
0 lesenswert
nicht lesenswert
Frank schrieb:
> Ich halte es für zweifelhaft, dass mit einem PIR-Sensor überhaupt die
> Geschwindigkeit ermittelt werden kann, wenn man sich mal dessen
> Funktionsweise vergegnwärtigt.

Ich denke nicht, dass das ein reales Problem ist.
Sieht nach einer Übungsaufgabe aus.

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
I muss die Geschwindigkeit berechnen...der Analog-Ausgang des PIR gibt 
ein Signal von 2-10 HZ, in einer Zeit von 1er Sekunde mache ich 100 
Abtastungen,
ich habe ein array für 100 Werte gemacht und daraus den Mittelwert 
berechnet, danach habe ich den Spitzenwert 
berechnet(array[wert]>mittelwert, array[wert-1] und array[wert+1]< 
array[wert], dann spitenwert=array[wert])
dies in einer for-Schleife...

wie kann ich die frequenz ermitteln? (Bei Überschreitung einer 
bestimmten
Schaltfrequenz soll die Türe automatisch geöffnet werden.)

von einem Spitzenwert zum nächsten ist die Periodendauer...oder ?
und dann frequenz=1/T
wie kann ich mit den array so programmieren das er zwei Spitzenwert 
zusammenzählt?

oder kann ich auch die Nullstellen(3 Nullstellen) zusammenzählen und 
dann habe ich die Periodendauer.
Wie zähle ich die Nullstellen zusammmen ?

danke, dass Sie mir helfen, brauch unbedingt für heute(29.05.09)

Autor: johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eine andere Aufgabe ist:
•Entwerfen Sie ein PC Programm, mit dem der Schwellwert für das öffnen 
der Türe vorgegeben werden kann.


Was ist der Schwellwert, wie könnte ich diese Aufgabe lösen ?

Autor: ingFH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was ist der Schwellwert,
wie könnte ich diese Aufgabe lösen
 ?
Und wie du die nächste Aufgabe lösen könntest, wenn du selbst nicht 
nachdenken möchtest, würde uns auch ganz doll interessieren.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es scheint ein grundlegendes Problem zu sein, dass den "jungen Leuten" 
nur oberflächlich oder garnicht vermittelt wird, wie man (Programmier-) 
Probleme löst. Ich habe das in letzter Zeit bereits mehrfach im engeren 
Freundes- und Bekanntenkreis erlebt, wenn die Töchter oder Söhne z.B. 
ein Studium beginnen.

Das Zerlegen komplexer Probleme in einzelne überschaubare Teil-Aufgaben, 
Bestimmung von Schnittstellen, und Systemzuständen, das Erstellen von 
einzelnen Modulen, deren Test und dann das Zusammenfügen - alles 
Fremdworte.

Da werden lediglich ein par Elemente irgend einer Programmiersprache 
hingeworfen, aber sowas wie Problemanalyse oder gar "guter Stil" kommt 
anscheinend in den Lehrplänen nicht mehr vor. Teilweise profilieren sich 
die Lehrenden damit, mit komplexen Algorithmen (z.B. FFT) ihre 
Überlegenheit zu demonstrieren, das Vermitteln von "Handwerk" dagegen 
gelingt ihnen nicht oder ist "unter ihrer Würde".

Frank

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.