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 ?
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.
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 ?
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.
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... :-)
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
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.
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)
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 ?
>Was ist der Schwellwert,
1 | 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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.