Forum: Mikrocontroller und Digitale Elektronik Rennbahn Project mit Zeitmessung


von Gustav M. (schuler22)


Lesenswert?

Hallo erstmal,

ich habe folgendes Problem, wir haben in der Schule die Aufgabe bekommen 
einen Mikrocontroller (es ist eine Platine mit Display Anzeige von 
ATMEL, das genaue Modell konnten die Lehrer mir leider nicht sagen; auf 
dem größten Baustein steht allerdings: AT89S8252  24PC und darunter 
0111) so zu programmieren, das er die Rundenzahl und die Rundenzeit 
ermittelt, die Art und Weise wie das bewerkstelligt wird ist egal, es 
sollte nur mithilfe des Mikrocontrollers geschehen.

Die Rennbahn ist eine ganz normale Carrea-Rennbahn, d.h. wir müssten die 
Kontakte zur Zeitmessung selbst einbauen, wir dachten daran für diesen 
Zweck Lichtschranken (was für welche?;Firma?;Modell?) zu verwenden, die 
immer ein Signal an den Mikrocontroller sendet wenn das Auto das Ziel 
durchquert. Allerdings habe ich keine Ahnung wie ich dies realisieren 
soll bzw. ob es nicht bessere Möglichkeiten gibt; falls jemand 
Verbesserungsvorschläge hat, bitte teilt sie mir mit.
Dann sollten diese Signale auch irgendwie noch im Mikrocontroller 
ausgewertet werden (Timer startem/stopen) und über ein Display 
ausgegeben werden.
Ich bin für jede Hilfe/Tip dankbar, da ich leider absolut keine Ahnung 
hab wie ich diese Aufgabe bewältigen soll.
Bei Rückfragen meldet euch bitte :)

Vielen dank euch schonmal

schuler22

von Peter D. (peda)


Lesenswert?

Erstmal Klarmachen der Aufgabe:

- wieviel Fahrzeuge
- max/min Rundenzeit
- Meßauflösung


Peter

von Gustav M. (schuler22)


Lesenswert?

ich hatte vor es mit zwei Fahrzeugen zu probieren, wenn dies aber zu 
schwer wäre würde ich halt nur eines nehmen.
Die Rundenzahl sollte von 0-9 gehen.
Die Meßauflösung? Wie meinst du das, wie daten ausgewertet werden 
sollen? Dies ist völlig frei gestellt.

mfg
Gustav

von Christian T. (shuzz)


Lesenswert?

Schau Dir mal das Bauteil hier an:
http://www.conrad.de/goto.php?artikel=185094

Dazu brauchst Du dann eigentlich nur noch ne IR-LED die Du in nem 
kleinen Rohr über den Sensor hängst.
(Sensor wird in die Bahn eingelassen...)


Viel Erfolg!

von Christian T. (shuzz)


Lesenswert?

Gustav Müller wrote:
>[...]
> Die Meßauflösung? Wie meinst du das, wie daten ausgewertet werden
> sollen? Dies ist völlig frei gestellt.

Peter meint: Wie genau willst Du die Zeit messen können?
Zehntel-Sekunden? Hundertstel? Tausendstel?

Zwei Autos zu messen sollte kein Problem sein, das müsste der Controller 
eigentlich "im Schlaf" erledigen können.

Mir würden da auch noch mehrere nette Gimmicks einfallen:
- Rennstart per Ampelschaltung
- Fehlstarterkennung
- Automatische Anzeige z.B. schnellste Runde, Durchschnittszeit, evtl. 
Geschwindigkeit (bei bekannter Bahnlänge)
usw.

Edith hatte grade noch ne Idee: Wenn ihr an der Bahn "rumschnitzen" 
dürft würde ich mal über den Einbau einer Gabellichtschranke in die 
Führungsrille der Carrera-Bahn nachdenken.

von Karl H. (kbuchegg)


Lesenswert?

Gustav Müller wrote:

> Ich bin für jede Hilfe/Tip dankbar, da ich leider absolut keine Ahnung
> hab wie ich diese Aufgabe bewältigen soll.

Stufenplan entwickeln!

Zuerst mal das eigentliche Ziel beiseite legen und mit dem
Problemkreis anfangen der Voraussetzung für alles ist: Auswertung
des Sensors

* Festlegen welcher Sensor benutzt werden soll
* Dann den Sensor an den µC verkabeln
* Programm schreiben, welches den Sensor auswertet
  Ist der Sensor betätigt, soll eine LED aufleuchten
  Ist der Sensor nicht betätigt, soll die LED wieder verlöschen

* Damit ist schon mal die erste Stufe erledigt: Ihr wisst wie man
  den Sensor anspricht und auswertet. Nächste Stufe

* Sensor beisete legen und neues Testprogramm anfangen:
  Ansteuerung der Anzeige. Ihr müsst euch dazu einigen, welche
  Anzeige es sein soll.

* Auf der Anzeige sollen einfach nur Zahlen ausgegeben werden können.
  Zunächst mal einfach nur fixe Zahlen, dann auch Rechenergebnisse
  aus irgendwelchen Berechnungen

* Steht die Anzeige, dann baut ihr eine 'Uhr' die die Anzeige benutzt.
  Die Uhr soll im Sekundentakt (oder Zehntelsekunden) einfach nur
  einen Zählerstand erhöhen und diesen auf der Anzeige ausgeben

* Soweit so gut. Die Uhr steht. Jetzt wird es Zeit aus der Uhr eine
  Stoppuhr zu machen. D.h. Bei einem Tastendruck läuft die Uhr los
  bei einem erneuten Tastendruck bleibt die Uhr wieder stehen.

* Umbau der Uhr zu einer Rundenuhr.
  Die Uhr läuft ständig. Bei einem Tastendruck wird der momentane
  Uhrenstand ausgegeben, die Uhr geht wieder auf 0 und läuft weiter.
  Damit wird erreicht, dass immer die Zeitabstände der Tastendrücke
  ausgegeben werden.

* Als nächstes kommt der Sensor aus dem ersten Schritt ins Spiel
  Anstatt einer Taste soll der Sensor die Uhr ansteuern.
  Ab jetzt kann man das ganze dann auch schon mal auf der Rennbahn
  verkabeln und damit spielen:
  Die Uhrenausgabe zeigt die Rundenzeiten an.

* Dann noch eine kleine Ergänzung, die mitzählt wie oft der Sensor
  betätigt wurde und ebenfalls auf der Anzeige ausgibt.
  Dazu braucht man dann noch einen Rückstelltaster um das Ganze auf
  0 zu stellen. Hier kommt dann die Erfahrung zu Gute, die man sich
  in einem der vorhergehenden Schritte mit einem Taster und der Uhr
  geholt hat.

* Erweiterung, bzw Duplizierung der Funktionalität für 2 Kanäle.

* .... beliebige zusätzliche Erweiterungen

Aber erst mal steht der erste Schritt. Laut diesem Plan lautet der:
Sensor anhängen und mit dem Sensor eine LED ein und ausschalten lassen.

von Ulrich P. (uprinz)


Lesenswert?

Karl Heinz, meinen Respekt!
Systematischer hätte ich es auch nicht gekonnt. Unterstützen wir die 
Jugend!

Einfachster Weg die Fahrzeuge zu erfassen ist ein Reed-Kontakt unter der 
Fahrbahn, denn die kleinen Motörchen der Autos sind magnetisch recht 
aktiv nach außen und zudem haben die Fahrzeuge kleine Magneten, die sie 
auf der Bahn halten.
Die Reedkontakte sind magnetisch gesteuerte Schalter und können also 
nach Kerl Heinz's Fahrplan direkt den zu Testzwecken genutzten Taster 
ersetzen
und sie können ohne Bohren und Sägen einfach unter die Fahrbahn geklebt 
werden.

Der Baustein, den Gustav identifiziert hat ist folgender:
http://www.atmel.com/dyn/products/product_card.asp?part_id=1920
Hier finden sich die nötigen Datenblätter dazu.
Allerdings hoffe ich, dass der Lehrer sich doch noch einem etwas 
modernen Chip zuwendet, denn das Teil ist nun schon sehr lange 
abgekündigt. Andererseits bin ich gerne bereit ein paar davon zu 
spenden. Lieber wissbegierige Schüler sinnvoll beschäftigen als einen 
Lehrer zu verwirren :)

Gruß, Ulrich

von Gustav M. (schuler22)


Lesenswert?

erstmal sorry das es mit meiner antwort solange gedauert hat, aber ich 
war das wochenende über weg...
Aber was ich hier sehe... ich bin echt baff ihr habt hier eine super 
community... mit sehr kompetenter hilfe, vielen dank allen die 
geantwortet haben.
Sodelle genug fürs erste geschleimt ;-)
Die Zeitmessung, soll auf die hunderstel sekunde sein
Echt super Plan, Karlheinz...
Ulrich, was sind denn das für reed kontakte und wo könnte man sie 
erwerben? Preis spielt keine (naja bis 20€ kein problem) rolle, da wir 
alles von der schule gezahlt bekommen.

Vielen dank das ihr die Jugend unterstützt :-)
MfG
Gustav

von Ulrich P. (uprinz)


Lesenswert?

Hi!

Reed Kontakte findest Du z.B. unter www.reichelt.de und dann links in 
der Suche Reed eingeben. Gibt es klein und gekapselt als MK 67B oder 
auch einfach als nacktes Glasröhrchen unter KSK 1A87. Die Schaltleistung 
ist unerheblich, da wir ja nur ein kleines Digitales Signal schalten 
wollen und keine größere Leistung.

Gruß, Ulrich

von Gustav M. (schuler22)


Lesenswert?

ahhh supi, dann bestell ich das gleich mal.... brauch ich noch 
irgendetwas anderes... oder kann ich dann mit den dingern, das ganze 
project bewältigen....? weil dann würd ich gleich alles zusammen 
bestellen
Vielen dank
Gustav

von Ulrich P. (uprinz)


Lesenswert?

Hi!

Naja, also ich weiß ja noch nicht, was auf dem Controller-Board, das 
Euer Lehrer auch geben wird, schon alles drauf ist. Sonst bestell 
sicherheitshalber mal ein Päckchen mit 10x 10kR und 10x 4k7 an 
Widerständen mit. Die Widerstände setzt man an die Ports des 
Mikrocontrollers um seinen Eingang auf 1 zu ziehen ( PullUp). Die 
Reed-Kontake schließen unter der Bahn bei einem vorbeifahrenden Auto den 
Pin dan kurz nach Masse. Du musst also mit drei Leitern unter die 
Strecke ( 1x Masse, 2x Auto / Reed).

Alles weitere weiß ich halt nicht, da ja Display und so weiter noch 
nciht fest stehen. Auch wisst Ihr ja wohl bislang nocht nicht, ob es 
wirklich das Board ist, dass ihr da zu sehen bekommen habt, oder?

Gruß, Ulrich

von Gustav M. (schuler22)


Lesenswert?

doch ich hatte es schonmal in der hand zu den wiederständen kann ich 
leider nix sagen davon hab ich keine ahnung.
Aber ein Display ist aufjedenfall vorhanden (sieht aus wie das eines 
taschenrechners und hat auch die selbe größe)
MfG
Gustav

von Karl H. (kbuchegg)


Lesenswert?

Für Reed Kontakte brauchst du auch noch Magneten. Keine
Ahnung ob die beim Kontakt dabei sind, denke aber nicht.

von Gustav M. (schuler22)


Lesenswert?

ach und noch eine frage: was meinst du denn mit "masse"?
die autokontakte (zur bahn) sind meines wissens auch magnetisch, das 
sollte doch langen, oder?
danke

gustav

von Karl H. (kbuchegg)


Lesenswert?

Gustav Müller wrote:
> ach und noch eine frage: was meinst du denn mit "masse"?

Na, die elektrishce Masse. Andere sagen der Minus-Anschluss.

> die autokontakte (zur bahn) sind meines wissens auch magnetisch, das
> sollte doch langen, oder?

Wäre mir neu, dass die magnetisch sind. Das sind doch normalerweise
einfache Schleifkontakte. Könnte auch sein, dass das Magnetfeld
im Motor ausreicht. Musst du ausprobieren, wetten würde ich nicht
drauf.

So ein Reed Kontakt ist nicht anderes als ein Schalter, der durch
einen Magneten betätigt wird.
http://de.wikipedia.org/wiki/Reed-Relais

von Gustav M. (schuler22)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

Gustav Müller wrote:
> ahhh und was wäre damit...
> 
http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=C31;GROUPID=3291;ARTICLE=27699;START=0;SORT=artnr;OFFSET=16;SID=28AoH8zKwQARwAAEgT08k56642b8affbfe0caa3c8e23e66b54639
> so ein motor ist ja leitfähig....
> wäre das auch eine möglichkeit?

Kommt mir ein bischen arg übertrieben vor.
Persönlich würde ich eine Reflexlichtschranke nehmen. Kleines
Stückchen Alufolie als Spiegel unten ans Auto.

Oder noch simpler: Ein kleines Loch in die Bahn und darunter einen
Phototransistor. Die normale Raumbeleuchtung würde sicher ausreichen
sodass sich ein eindeutiges Signal ergibt, wenn der Wagen das Loch
verdeckt.

Oder eine Gabellichtschranke an die Spurrille die vom Schleifer
des Autos betätigt wird. Dazu würde ich gleich mal zu meiner
Ramschkiste gehen und eine alte Kugel-Maus schlachten.

von Ulrich P. (uprinz)


Lesenswert?

Ich hatte mal eine Weile einen Nachbarn, der sich mit diesen Autos sehr 
beschäftigt hat. Ich bin mir sicher, dass die Schleifbahnen der Fahrbahn 
aus magnetisch wirksamen Metall sind, weil es in den Autos Magnete gibt, 
die sich daran 'fest halten'. Bei einfachen Autos ist es der Motor, 
dessen Magneten für den nötigen Halt sorgen, bei getunten Fahrzeugen 
werden extra Magneten für bessere 'Straßenlage' und Bodenhaftung 
eingesetzt.

Daher bin ich mir auch ziemlich sicher, dass es mit einem Reed-Kontakt 
gehen wird. Ich gebe aber zu, dass es mit einer Lichtschranke nachher 
einfacher auszuwerten sein könnte, weil der Reed-Kontakt, wie alle 
mechanischen Kontakte, prellt.
Aber alle Arten von Lichtschranken brauchen entweder irgendwo ein Loch 
oder/und einen Reflektor. Daher ist es mechanisch nicht 
'zerstörungsfrei' zu lösen. Ich weiß ja nicht, ob die Rennbahn von der 
Schule gestellt wird und da vom Vorjahr die Löcher schon drinn sind, 
oder im nächsten Jahr keine drin sein sollen.

Und die Entprellung ist in weniger Zeit programmiert ( oder aus dem Wiki 
rauskopiert) als die Löcher sauber in der Fahrbahn sitzen und die 
Lichtschranke ordentlich eingeklebt wurde.

Dazu kommt, dass unter der Bahn wenig Platz ist. Eine fertige 
Gablellichtschranke passt meist von der Dicke her nicht. In den meisten 
Mäusen sitzt auch schon lange keine 'Gabellichtschranke' mehr, sondern 
es sind einfach Emitter und Diode auf ihre langen Beinchen gestellt.
Muss also erst mal aufwendig verklebt und zurecht gebogen werden.

Nichts gegen die Idee mit der Lichtschranke ( hatte sie ja auch weiter 
oben schon erwähnt) aber mechanisch ist der Reed-Kontakt vermutlich 
einfacher von seiner Unterbringung her und ich bin mir zu 98% sicher, 
dass es funktioniert.

Gruß, Ulrich

von Karl H. (kbuchegg)


Lesenswert?

Ulrich P. wrote:
> Ich hatte mal eine Weile einen Nachbarn, der sich mit diesen Autos sehr
> beschäftigt hat. Ich bin mir sicher, dass die Schleifbahnen der Fahrbahn
> aus magnetisch wirksamen Metall sind, weil es in den Autos Magnete gibt,
> die sich daran 'fest halten'. Bei einfachen Autos ist es der Motor,
> dessen Magneten für den nötigen Halt sorgen, bei getunten Fahrzeugen
> werden extra Magneten für bessere 'Straßenlage' und Bodenhaftung
> eingesetzt.

OK. Dann hat sich das verändert. Meine Rennbahn (in meiner Kindheit)
hatte sowas mit Sicherheit nicht.

> oben schon erwähnt) aber mechanisch ist der Reed-Kontakt vermutlich
> einfacher von seiner Unterbringung her

Völlig deiner Meinung.

> und ich bin mir zu 98% sicher,
> dass es funktioniert.

Na denn. Wieder was dazugelernt.

von Ulrich P. (uprinz)


Lesenswert?

N'Abend Karl Heinz übrigens!

Naja, vielleicht sollte ich hinzufügen, dass ich in diesem Fall für die 
verschiedenen Versionen von Rennbahnen der Marke Carrera spreche. Habe 
hier gerade das Auto von der kleinen Bahn meines Sohnens liegen, dass 
immer aus der Bahn flog. Besagter Nachbar hatte es 'modifiziert' damit 
es das nicht mehr tut. Und es stimmt. Der Motor strahlt ein ordentliches 
Magnetfeld ab und dahinter wurde vom Nachbarn wohl ein weiterer Magnet 
eingeklebt.

Nu muss ich es aber wieder zusammen schrauben, sonst gibt es morgen 
schimpfe vom kurzen Herrn des Hauses :)

Gruß, Ulrich

von Karl H. (kbuchegg)


Lesenswert?

Ulrich P. wrote:
> N'Abend Karl Heinz übrigens!

Dir auch.

> Naja, vielleicht sollte ich hinzufügen, dass ich in diesem Fall für die
> verschiedenen Versionen von Rennbahnen der Marke Carrera spreche. Habe
> hier gerade das Auto von der kleinen Bahn meines Sohnens liegen, dass
> immer aus der Bahn flog. Besagter Nachbar hatte es 'modifiziert' damit
> es das nicht mehr tut. Und es stimmt. Der Motor strahlt ein ordentliches
> Magnetfeld ab und dahinter wurde vom Nachbarn wohl ein weiterer Magnet
> eingeklebt.

Ist das so eine Bahn bei der die Schienen auch mal die Wände hoch
fahren können?
Von sowas hab ich immer geträumt, aber leider haben sich meine
Sohnemänner nie für Autorennbahnen begeistert.
Mein Enkel ist noch zu klein. Obwohl: Eine Eisenbahn braucht man
doch eigentlich als 1 1/2 Jähriger. Oder etwa nicht?

> Nu muss ich es aber wieder zusammen schrauben, sonst gibt es morgen
> schimpfe vom kurzen Herrn des Hauses :)

Ja, ja die lieben Kleinen.

von Ulrich P. (uprinz)


Lesenswert?

Hihi!

Nein, die Wand hoch ist nicht. Loopings sind aber drinn :) Das mit den 
Magneten und 'tunen' ist bei den kleinen Modellen nicht einfacher als 
beim normalen Auto. Nur mit Fehlern kann man besser leben. Irgendwo geht 
es halt immer darum den optimalen Kompromiss zwischen Bodenhaftung und 
Geschwindigkeit zu finden. Aber die echten Profis auf der Carrera 
verheizen wohl ebenfalls einen Satz Reifen pro Rennen.

Jaja, eine Märklin liegt hier auch sorgfältig verpackt im Keller, weil 
der Sohnemann Pokemon interessanter findet. Du solltest wirklich schon 
jetzt mit der Eisenbahn anfangen, damit das Hobby ausreichend gut 
verankert ist, bevor PSP, Nintendo und Pokemon keinen Platz mehr lassen 
für irgendwas geistig anspruchsvolles.

Gruß, Ulrich

von Matthias B. (Firma: www.daquer-daher.at) (keineahnung)


Lesenswert?

Hallo

Da ich auch gerne mit meiner Carrera spiele habe ich da vielleicht was 
für dich!

Vielleicht hilfts ein bisschen!

http://home.arcor.de/slotracingtechnik/homepage/uebersicht.htm

von schniepel (Gast)


Lesenswert?


von df311 (Gast)


Lesenswert?

für die erzeugung von impulsen für die zeitmessung würde ich diese seite 
empfehlen:
http://www.carrera4fun.de/ -> zeitmessung

über den parallelport funktionert das ganze ganz gut, ein "umbau" auf uC 
sollte kein besonders großes problem darstellen

von Gustav M. (schuler22)


Lesenswert?

so ein kurzer zwischenbericht von meiner Seite, ich habe bei reichelt 
nun folgende Sachen bestellt.

Reed-Sensor MK 67B
http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=C31;GROUPID=3291;ARTICLE=12244;START=0;SORT=artnr;OFFSET=16;SID=28dmRLBqwQARwAABI3Uscb62c83e23175f1cf389c27a30141e73d
Ampel-LED
Ganz normale Rote/Grüne LEDs
Widerstände (haben ja nicht ganz soviel gekostet)

So gestern, kam dann die ganze Ladung an... hat 4Tage gedauert... mit 
Feiertagen dazwischen, also durchaus ein guter Händler.

Ich habe dann das Datenblatt
http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=1;INDEX=0;FILENAME=C300%252FMK6%2523MED.pdf;SID=28dmRLBqwQARwAABI3Uscb62c83e23175f1cf389c27a30141e73d
einfach mal angeschaut, wurd aber irgendwie absolut nicht schlau draus 
was ich denn jetzt machen soll bzw. wie ich das ganze letztendlich 
anschließe.
Wäre daher über einen Tip dankbar.
Danach werd ich dann probieren eine LED damit an bzw. ausgehen zu 
lassen.
Und dann mal weiter sehn
Schon mal vielen dank.

MfG
Gustav

von Karl H. (kbuchegg)


Lesenswert?

Gustav Müller wrote:

> einfach mal angeschaut, wurd aber irgendwie absolut nicht schlau draus
> was ich denn jetzt machen soll bzw. wie ich das ganze letztendlich
> anschließe.
> Wäre daher über einen Tip dankbar.

Ein Reed Kontakt ist ein ganz normaler Schalter/Taster und wird
genauso wie so einer behandelt und eingebaut.
Der einzige Unterschied: Ein normaler Schalter/Taster hat einen
Knopf auf den man drauf drücken kann, der Reed Kontakt wird mit
einem Magneten geschaltet.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen


Mach einfach mal einen Versuch.
Bau dir das zusammen:

    +5V  o-----+
               |
             Widerstand (220 Ohm oder irgendwas in der Größenordnung)
               |
             Led
               |
     0V  o-----+

Die LED müsste leuchten. Wenn nicht, dann hast du die LED verkehrt
herum benutzt, einfach die Pins umdrehen und nochmal probieren.

Und jetzt veränderst du deine Schaltung:

    +5V  o-----+
               |
             Widerstand  (220 Ohm oder irgendwas in der Größenordnung)
               |
             Led
               |
            Reed Kontakt
               |
     0V  o-----+

Wenn du jetzt mit einem Magneten vor dem Kontakt rumfuchtelst
gibt es 2 Möglichkeiten:
Entweder leuchtet die LED wenn du mit dem Magneten am Kontakt
drann bist, oder die leuchtet, wenn du mit dem Magneten weg
bist (je nachdem hast du einen sog. 'Öffner' oder einen 'Schliesser')
aber auf jeden Fall gibt es eine Abhängigkeit der LED von der
Position des Magneten.

von Sven (Gast)


Lesenswert?

Hi,

> wurd aber irgendwie absolut nicht schlau draus
> was ich denn jetzt machen soll bzw. wie ich das ganze letztendlich
> anschließe.
> Wäre daher über einen Tip dankbar.

So z.B. wie S1, als normalen Taster auf einen Capture Eingang
eines AVRs.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen

Damit kann der AVR dann immer 0V oder 5V sehen,
also binär 0 oder 1.

und dann für die Programmierung hier:

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Einfangen_eines_Eingangssignals_.28Input_Capturing.29

Das müsstest Du Dir erstmal durchlesen.

Gruß Sven

von HAL (Gast)


Lesenswert?

Hallo,


ich muß mal etwas zum Reed-Kontakt sagen ! Ich finde die sind viel zu 
ungenau/träge. Hinzu kommt der Abstand von Magnet zu Reedkontakt. Schau 
dir mal die Hal-Sensoren an ! Die bekommst du in unterschiedlichen 
Empfindlichkeiten und die geben dir ohne zu zucken ein definiertes HI/LO 
(je nach Sensor).


Grüße.

von Gustav M. (schuler22)


Lesenswert?

Sodelle heut es erstmal probiert und ich muss sagen die dinger fand ich 
echt nice... der magnet des autos sollte locker langen um den unter den 
"schienen"  liegenden reed-kontakt anzusprechen.

Danke Karl-Heinz für die Zeichnug und danke dir Sven für die nützlichen 
links.

MfG
Gustav

von Gustav M. (schuler22)


Lesenswert?

So heut nach den ferien gings dann mal weiter, das mit dem Reed-Kontakt 
funktioniert, ein Assembler Programm (zum Rundenzählen) ist geschrieben, 
allerdings noch mit kleinen Macken.
Das Problem ist momentan das, wenn das auto/magnet drüber fährt, der 
Controller mehrere Zahlen überspringt -aufgrund von mehreren impulsen- 
beim druck auf den Taster zählt er allerdings brav hoch (0-f)
Das Programm zählt momentan bis 9/f-Runden.
Ich poste euch mal den Code hier rein
1
  code at 0
2
  include reg_51.pdf
3
4
  taster1  bit  P3.2    
5
  taster2 bit  P3.3    
6
  LED1  data  P2  
7
  sjmp   init
8
9
  org  0003h    
10
  inc  R0
11
        
12
  reti  
13
14
  org  0013h
15
  ;mov  R0,#0
16
  inc R1
17
  reti      
18
19
20
init:  
21
  mov  R0,#0
22
  mov   R1,#0
23
  
24
  mov  P1,#0
25
  mov   P2,#0    
26
  
27
  setb  IT0  
28
  setb  IT1  
29
  
30
  clr  IE0
31
  clr  IE1  
32
    
33
  setb  EX0
34
  setb  EX1  
35
    
36
  setb  EA      
37
38
39
haupt:  
40
acall dual_to_7Segm
41
;acall dual_to_7Segm2
42
43
sjmp  haupt  
44
45
dual_to_7Segm:
46
    mov a,R0
47
    anl a#0Fh
48
    mov dptr,#seg7code
49
    movc a,@a+dptr
50
    mov LED1,a
51
    ret
52
    
53
;dual_to_7Segm2:
54
    ;mov b,R1
55
    ;anl b,#0Fh
56
    ;mov dptr,#seg7code
57
    ;movc b,@b+dptr
58
    ;mov P1,b
59
    ;ret
60
    
61
seg7code:
62
DB 01111110b,00010010b,10111100b,10110110b,11010010b,11100110b,11101110b,00110010b
63
DB 11111110b,11110110b,11111011b,11001111b,01101101b,10011111b,11101101b,11101001b
64
end

Wie könnte man es umsetzen das er nach einmal auslösen erstmal eine 
Weile beschäftigt ist? und die impulse in den nächsten paar sekunden ins 
"leere" gehen?

von Christian (Gast)


Lesenswert?

siehe hier: http://www.mikrocontroller.net/articles/Entprellung

damit müsste dir zumindest das Prinzip klar werden... vielleicht sind ja 
die beispiele auch was für dich.

Christian

von Gustav M. (schuler22)


Lesenswert?

hmhmhm, das bekomm ich irgendwie nicht ins programm eingebunden, was 
vllt an den Interrupts liegen könnte... aber auch nur eine Vermutung... 
hättet ihr vielleicht en vorschlag... mit code :) ?
Vielen dank
mfg
gustav

von juppi (Gast)


Lesenswert?

@Gustav Müller (schuler22)


>Wie könnte man es umsetzen das er nach einmal auslösen erstmal eine
>Weile beschäftigt ist? und die impulse in den nächsten paar sekunden ins
>"leere" gehen?


org  0013h
  ;mov  R0,#0
-----------
  inc R1          befehl 0,5-1sec überspringen oder int sperren
----------
  reti


bei einer Bahn(zum Test) kannst du auch ohne INT arbeiten mit Pollen und 
zeitschleife


das ist einfach nehme ich an.

der weg ist das Ziel

MfG

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.