Forum: Mikrocontroller und Digitale Elektronik Parkhauszähler mit lcd ausgabe


von B.K. (Gast)


Lesenswert?

Hallo,

bin ein neuling und nachdem ich jetzt das tut durchgearbeitet habe 
möchte eine parkhausanzeige für 2 parkdecks mittels lcd
darstellenjeweils die ein und ausfahrt von EG und OG besitzen eine 
lichtschranke die mittels taster simuliert werden.
Irgendwie finde ich keinen ansatz.

Kan mir jemand helfen?

Gruß

von Fred (Gast)


Lesenswert?

Hi,

wo genau sind denn die Probleme, bzw. was ist denn als Grundstruktur 
schon vorhanden? Prinzipiell sehe ich das so, dass Du zwei Einfahrten 
und zwei Ausfahrten hast. Die beiden Einfahrten registrieren einfahrende 
Fahrzeuge und dabei wird dann ein Zähler jeweils um eins erhöht. 
Erreicht der Zähler einen vordefinierten Wert (maximale Stellplatzzahl), 
dann werden die einfahrten (Schranken) gesperrt. Fährt ein Auto aus 
einer der beiden Ausfahrten aus, dann wird der Zähler wieder um eins 
verringert.
Wegen der Ausgabe auf LCD schau doch mal ins Tutorial auf der linken 
Seite, da kann ich Dir wenig helfen.
Gruß

Fred

von BK (Gast)


Angehängte Dateien:

Lesenswert?

Habe schon ein Code(anhang) geschrieben.
Nur springt die anzeige immer gleich auf 20.
soll halt 0-20 einmal für EG und für OG darstellen.

Ich weiß das der code warscheinlich sehr umständlich ist aber wie gesagt 
bin absoluter neuling.


Gruß

von Mathias U. (munter)


Lesenswert?

Hallo, ich kenn mich jetzt nicht mit Assambler aus, aber entprellst Du 
deine Taster? Das er gleich von 0 auf 20 springt klingt stark nach 
prellenden Tastern...

von Martin K. (maart)


Lesenswert?

>aber entprellst Du
>deine Taster?

Nein, macht er nicht.

von B.K. (Gast)


Lesenswert?

Wie entprell ich sie denn???

von B.K. (Gast)


Lesenswert?

Ok weiß schon bescheid einfach 100ms delay einbauen.

Danke

von Martin K. (maart)


Lesenswert?

>Wie entprell ich sie denn???

Steht auch im Tutorial, aber egal, mal kurz angerissen:

Dein Programm muss prüfen: Taster gedrückt? Ja? ca. 4ms Sekunden warten. 
Taster immer noch gedrückt? Ja? Taster ist wirklich gedrückt.

Weiterhin muss dein Programm auch prüfen, ob der Taster immer noch 
gedrückt gehalten wird, sonst rast der Zähler auch bis in den Anschlag.

von edson (Gast)


Lesenswert?

>Dein Programm muss prüfen: Taster gedrückt? Ja? ca. 4ms Sekunden warten.
>Taster immer noch gedrückt? Ja? Taster ist wirklich gedrückt.

Wenn Du Pech hast ist das bestenfalls eine Vermutung, ob der Taster 
wirklich geschlossen ist. Manche (zugegeben nicht uC-freundliche) Taster 
prellen länger als 65ms...

Gruss,
Edson

von Martin K. (maart)


Lesenswert?

>Wenn Du Pech hast ist das bestenfalls eine Vermutung, ob der Taster
>wirklich geschlossen ist. Manche (zugegeben nicht uC-freundliche) Taster
>prellen länger als 65ms...

Ja, hast natürlich Recht. Besser sollte es man natürlich so machen:
Prüfen, x-ms warten, und das mindestens vier mal hintereinander. Wenn 
der Status viermal in Folge gleich war, so ist er als gültig anzusehen.

von B.K. (Gast)


Lesenswert?

Könnt ihr mir vielleicht mal ein Beispiel posten bekomme es irgendwie 
nicht hin.

Gruß

von B.K. (Gast)


Lesenswert?

Habe folgendes programm zum entprellen gefunden:

def cntr =  R16
.def taste = R17



waitfreekey:                  ;Wartet, bis alle Tasten losgelassen sind.
  clr cntr
  nook: in taste, PIND
  cpi taste, 0b00111111 ;F�r jeden Knopf ein Einser (davor evtl. 
AND-en).
  brne waitfreekey
  inc cntr
  breq ok
    rjmp nook
ok: ret


Kann mir jemand sagen ob das wirklich funktioniert?????

von Karl H. (kbuchegg)


Lesenswert?

B.K. wrote:
> Könnt ihr mir vielleicht mal ein Beispiel posten bekomme es irgendwie
> nicht hin.

Die Sache mit der aktiven Warterei ist doch Mist.

> waitfreekey:                  ;Wartet, bis alle Tasten losgelassen sind.
>   clr cntr
>   nook: in taste, PIND
>   cpi taste, 0b00111111 ;F�r jeden Knopf ein Einser (davor evtl.
> AND-en).
>   brne waitfreekey
>   inc cntr
>   breq ok
>    rjmp nook
> ok: ret

Weist du wie schnell dein µC den cntr einmal von 0 bis wieder
auf 0 durchgezählt hat? Das geht so schnell, da hat die
Taste noch nicht mal zu Prellen angefangen, ist der µC
bereits durch.
Eine Millisekunde ist für einen µC eine halbe Ewigkeit!

Hier findest du eine full-proof Tastenentprellung:

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten

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.