PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Geschwindigkeitsmessung wie genau?



TobiasBlome
05.08.2007, 17:45
Hallo,
altes prinzip:

2 Lichtschranken, 2 Interrupteingänge und eine Anzeige ;-)

Nun die Frage:
wie weit müssen die 2 Lichtscheranken auseinander sein, damit der µC AT Tiny 2313 mit externem Quarz 20MHz zuverlässig auf eine Stelle hinter dem Komma anzeigt?

Messung bis 100 KM/h -> 27,7m/s

Also bei 27,7 meter Abstand der Lichtschranken hätte der µC 1 sekunde zum rechen - schafft er - nur mir ist der Abstand viel zu groß!

Abstand 10m -> 0,3 sek.
Abstand 5m -> 0,16 sek.
Abstand 1m -> 0,03 sek.

Was schafft der µC zuverlässig? bei einer Kommastelle?

vielen Dank schon mal, Tobias

PS. Der µC macht natürlich nichts anderes in der Zeit: also messen und danach auf 4 7 Segmentanzeigen ausgeben

TobiasBlome
05.08.2007, 18:35
Also etwa so:

Dim Wert As Single 'Geschwindigkeit

Do 'Do Loop Schleife
'egal
Loop

Irq0: 'Aufruf bei jedem Signal von Laser Lichtschranke per Interrupt
Timer1 = 0 'Timer auf 0 setzen
Enable Timer1 'Timer starten
Return

Irq1: 'Aufruf bei jedem Signal von Laser Lichtschranke per Interrupt
Disable Timer1 'Timer stoppen
Wert = Timer1
Return


Timer_irq: 'Aufruf jede oder jede halbe Sekunde
Timer1 = Timervorgabe 'AUF TIMER EINSTELLUNG ACHTEN!!!!!!!

Return


könnte das so gehen?

Tobias

TobiasBlome
06.08.2007, 18:09
kann mir denn keiner sagen wie lange der µC benötigt?
Gibt es irgendwo vielleicht eine Tabelle oder ähnliches wo man nachsehen kann wie lange der µC für einen bestimmten Befehl benötigt?

sonst bleibt wohl wirklich nur noch probieren...aber dazu müsste man erst mal die Geschwindigkeit wissen oder man nimmt wiklich 30 meter zum messen um sicher zu gehen, dass der µC schnel genug ist...

Tobias

Lunarman
06.08.2007, 19:37
Mit bascom weiß man leider nie, wie lange jetzt was dauert. Aber ich kann dir eins sagen:

0,3 Sekunden = 300 Millisekunden (safe)
1 Mhz = 1.000.000 Takte / Sekunde
taktdauer = 1 MIKROsekunde
20 Mhz = 20.000.000 Takte / Sekunde
Taktdauer = 1/20 MIKROsekunde.
Noch Fragen? Demnach hättest du 20000 * 300 Takte Zeit zum berechnen. Bei 1m eben 1 zehntel.

Also: 6 * 10 hoch 6 Takte, bzw. 6 * 10 hoch 5 Takte.

6.000.000, bzw. 600.000 Takte.

ich weiß aber nicht, wie lange das dauern würde, aber das kann man irgendwie simulieren. Mit assembler ist dei Sache wahrscheinlich kein Problem.

Wie alt bist du? ich persönlich bin 13. Aber trotzdem kein Gewehr (lol) auf die Rechnungen.

TobiasBlome
06.08.2007, 19:58
Naja, also vielleicht sollte ich es ausprobieren...
nebenbei gibt es ja auch (vielleicht) noch eine Verzögerung durch die Laser-Lichtschrankenauswertung? immerhin ein OP und ein Transistor ;-)

Kann es sein das du dich um eine Stelle vertahn hast? nicht 6.000.000 sondern 600.000 weil 20MHz => 20.000.000*0,03=600.000

Aber so gefühlsmäßig denke ich, dass auch 600.000 Takte zum starten und wieder beenden eines Timers reichen sollten....

Tobias

Lunarman
06.08.2007, 20:56
höh? ich hatte doch geschrieben, dass es 6.000.000 BZW 600.000 takte wären, und is doch klar, dass die lange Angabe für die 10 m gilt, die kurze für 1 m. Stimmt also alles. Ja das müsste reichen =P~

TobiasBlome
06.08.2007, 21:56
ups ja man muss richtig lesen :roll:

ist nur die Frage ob Takte gleich Zyklus???

Lunarman
07.08.2007, 14:35
nee eigentlich nicht, aber ich denke mal das muss funzen, du hast in den Maßstäben dermaßen lange Zeit... aber verspiel keine Zeit mit lahmen Bauteilen, 1 millisekunde Reaktionszeit kann da natürlich keine Sau gebrauchen.

TobiasBlome
07.08.2007, 16:57
ich werde es mal probieren - aber ich mus zuerst noch die 7Segmentanzeige zum laufen bekommen (4x multiplex)...
habe schon ein Beispiel hier gefunden - das kann ich bestimmt schnell umbauen :-)