Hallo ihr alle, ich bin ein ziemlicher neuling. Will aber mit meinem µC eine Lichtschranke ansteuern. Ich möchte 2 Lcihtschranken im abstand von ca. 10cm an einer Türe anbringen. Sie soll dann die Personen zählen die rein laufen bzw. raus laufen. Die Anzahl der Perosnen im Raum möchte ich auf dem LCD Display ausgeben oder die noch freien Plätze, diese auswahl läßt sich in einem Menü treffen. Den µC und die Lichtschranke sind über eine serielle Schnttstelle miteinander verbunden! Irgendwie weiß ich garnicht wie ich anfangen soll. Über eine möglichst schnelle und genaue Antwort wäre ich sehr dankbar. Mit freunldichen Grüßen Hansknecht
> Den µC und die Lichtschranke sind über eine serielle >Schnttstelle miteinander verbunden! Deine Lichtschranke ist schon fertig und hat eine serielle Schnittstelle? Meinst Du das wirklich?
nein....sie is nocht nich fertig....ich weiß garnicht wo ich anfangen soll...aber ich habe die aufgabe so vertsanden das µC und Lichtschranke über eine serielle Schnittstelle verbunden werden sollen
serielle Schnittstelle: Das ist doch Unsinn. Von der Lichtschranke kriegst du ein schönes digitales Signal. Das legst du an einen Portpin des µC und wertest es aus. Solange die Lichtschranke nicht weiter als sagen wir mal 20 Meter vom µC entfernt ist, ist das die absolut einfachste Variante. Lichtschranke: Wie genau muss den die Zählung sein? Bei Lichtschranken wird es dir des öfteren passieren, dass abends noch 5 Leute in den Raum hineingehen müssen, damit keiner drinnen ist.
> ich weiß gar nicht wo ich anfangen soll Fang mal damit an dir Grundlagen über µC beizubringen. http://www.mikrocontroller.net/articles/AVR-Tutorial http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial So eine Lichtschranke ist aus Sicht eines Programmes auch nichts anderes als ein Schalter/Taster.
die Lichtschranke ist nicht weiter als 20meter vom µC entfernt....also ich soll die Lichtschranke dann einfach ein einen freien Port anschließen und abfragen wann der Port gesetzt bzw. rückgestzt wird? oder hab ich das falsch verstanden?! Lichtschranke: Sie sollte relativ genau sein! aber wieso wird es mir öffters passieren das am ende mein Zählerwert auf -5 ist!Meine Lichtschranke soll garnicht im - Bereich zählen können! :) die soll von 0-99 gehen!
Also die Grundlagen eines µC beherrsche ich schon! sonst würde ich niemals auf die idee kommen so etwas anzufangen! ich kann einfache programme! nix schweres, aber ich glaube meine grundkenntnisse sollten aussreichen um es zu meistern! progrmmiere auch nicht mit c sondern mit einem assambler..weil ich c plöd finde :D
Hansknecht wrote: > Lichtschranke: Sie sollte relativ genau sein! aber wieso wird es mir > öffters passieren das am ende mein Zählerwert auf -5 ist!Meine > Lichtschranke soll garnicht im - Bereich zählen können! :) > die soll von 0-99 gehen! Stell dich mal an eine Tür und beobachte die Leute wie sie reindrängen. Wenn 20 Leute sich durch eine Tür zwängen kann es dir passieren dass die Lichtschranke kein einziges mal auf die gegenüberligende Seite durchkommt, weil sich die Personen gegenseitig abschatten. +----+ | | +----+ +----+ | | L -----> +----+ +----+ | | +----+ +----+ | | +----+ Und selbst wenn die einzeln durchgehen, in welcher Höhe bringst du denn die Lichtschranke an? Zu tief darf es nicht sein, sonst zählst du die Beine, zu hoch darf es nicht sein, sonst flutschen kleine Personen unten durch. Also bleibt nur eine Höhe knapp über der Gürtellinie. Ich würde mal sagen so ca. bei 1m20. Jetzt haben Menschen aber auch Arme und die bewegen sich beim Gehen. Wenn du also Pech hast, kriegst du von einer Person 3 Lichtschrankenunterbrechungen: der vorlaufende Arm, der Körper, der nachlaufende Arm. Was passiert, wenn die Person ausgerechnet an der Position deiner Lichtschranke wild zu gestikulieren anfängt brauch ich dir wahrscheinlich nicht sagen: Dein Zähler wird wie wild rauf und runter zählen. Alles in allem: erwarte dir nicht zuviel. Aber wenn die angezeigte Zahl tatsächlich stimmt, grenzt das an ein Wunder. Menschen sind nun mal keine Pakete oder Autos.
> Also die Grundlagen eines µC beherrsche ich schon!
Wieso weist du dann nicht wo du anfangen sollst?
ach noch ne frage?! hatt irgend einer von euch ein PAP für meine Aufgaben Stellung? damit würde mir der anfang sicher nicht so schwer fallen!
irgendwie steh ich aufm schlauch....hab proberit n pap zu machen hab aber nur scheiß zusammen gewürfelt....irgendwie, find ich das rein kommen immer am schwersten!
Was is'n ein PAP? Schau doch mal in die Tutorials rein. Dort findest du alles was du brauchst um einen Taster auszuwerten und ein LCD anzusteuern.
du hast recht.....aber ich muss einfach davon aus gehen das die menschen in einem kleinen abstand hintereinadner reinlaufen..... mhh das mit armen und beinen ist wirklich ein problem....das aber glaube ich nicht wirklich zu beheben ist..oder? davon würde ich jetzt aber mal absehen wenn die fehlerqoute nicht alzu hoch ist!
>Was is'n ein PAP?
Programmablaufplan (auch gerne auf Pappe gezeichnet...;-)
Irgendwie werde ich den Verdacht nicht los, dass hier jemand mal wieder
danach fragt, ob ihm jemand anders die Hausaufgaben macht...
Ein Drehkreuz wäre sinnvoller...
ich weiß wie man taster auswertet ich weiß wie man ein lcd ansteuert.....ich weiß nur nicht wie ich anfangen soll! pap= programm ablauf plan....
wie ein drehkreuz???? ich will einfach nur wissen wie ich anfangen soll! irgendwie bekomme ich es einfach nicht hin hab schon soviel scheiß programmiert und nix tut, zumindest wo wie ich es mir vorstelle...
würde es so funktionieren.... lichtschranke an freien port port1 abfragen ob gesetzt, wenn nein sjmp$ wenn ja, port2 abfragen, wenn nein zum port1 springen wenn ja, zähler ++ wenn port2 gesetzt und dann port 1 gesetzt zähler -- (wie soll das gehen) und den zähler ewrt immer aufm lcd ausgeben, das sollte ja kein problem mehr sein
> ich weiß wie man taster auswertet
Wo liegt dann das Problem?
Die Taster, äh Lichtschranken, sind im Grundzustand.
Jetzt kommt von Links eine Person. Sie durchbricht
zuerst die LS1. Wenn sie weitergeht, durchbricht sie
die LS2. Irgendwann wird LS1 wieder freigegeben, gefolgt
on einer Freigabe von LS2.
Die Sequenz ist also
LS1 LS2
0 0 Grundzustand
1 0 kommt von links
1 1
0 1
0 0 und wieder Grundzustand
Kommt die Person von der anderen Seite, dann lautet
die Abfolge
LS1 LS2
0 0
0 1 kommt von rechts
1 1
1 0
0 0 und wieder Grundzustand
Wenn du dir mal anschaust wie die Situation ist,
wenn LS1 von 0 auf 1 wechselt:
* LS2 ist 0 -> dann ist die Person von links gekommen
* LS2 ist 1 -> dann ist die Person von rechts gekommen
Alles was du also tun musst ist festzustellen, ob die
LS1 von 0 auf 1 gewechselt hast. Ist das der Fall, dann
schaust du auf LS2. Ist LS2 auf 1 dann erhöhst du den
Zähler, ist es auf 0 dann verringerst du den Zähler.
Das in ein PAP zu fassen dürfte ja jetzt nicht mehr
allzu schwer sein.
Den Teil: feststellen ob LS1 von 0 auf 1 gewechselt hat
überlass ich mal dir als Übung. Du wirst dir in deiner
Haupt-Endlosschleife einfach in einer Variablen den
Zustand von LS1 im vorhergehenden Schleifendurchgang
merken müssen, den vergleichst du dann mit dem jetzigen
Zustand ....
Ach ja. Ich hab noch die Annahme getroffen, dass die LS
nahe genug beisammen sind, dass eine Person immer
beide gleichzeitig abschatten kann. Was natürlich
ein kleines Problem darstellen wird. Aber das wirst du schon
noch sehen.
vielen dank...genau das war das was ich gesucht habe....ich fange nun mal an mein pap zu machen und dann zu programmieren....vielen dank! bei weiteren problem meld ich mich nochmal^^ mfg
>Stell dich mal an eine Tür und beobachte die Leute wie sie >reindrängen. Wenn 20 Leute sich durch eine Tür zwängen >kann es dir passieren dass die Lichtschranke kein einziges >mal auf die gegenüberligende Seite durchkommt, weil >sich die Personen gegenseitig abschatten. Hi, genau mit dem selben Problem hab ich im Moment auch zu kämpfen. Gibts da vielleicht eine andere Möglichkeit, als eine Lichtschranke um bewegliche Objekte zu zählen?
Das Lichtschranken-Problem (kommt jemand von links bzw rechts) ist übrigens das selbe wie bei einem Drehimpulsgeber oder auch Inkrementalgeber genannt. Such mal danach, da gibt es fertige Codebeispiele hier im Forum.
sind wir hier bei hausaufgaben-kostenlos.de? Schalt doch mal deinen Kopf an und denk nach anstatt andere Leute für dich denken zu lassen. Bei konkreten Problemen wird dir hier sicher auch geholfen anstatt, dass du hier jetzt 20 mal blödsinn gepostet bekommst.
Ob Hansknecht das hingekriegt hat? Wenn ich mir seine Fragestellungen so ansehe bezweifle ich das
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.