vielen dank aber mein microcontroller ist nicht dafür gemacht so etwas zu programmiern mit dem programm von kosmos geht das nicht hast du vieleicht noch ne andere lösung?
Falls es sich um
diesen Kosmos Baukasten handelt geht das sehr wohl zu programmieren.
Mir fällt auf Anhieb auch kein MC ein der jünger als 20 Jahre ist der das nicht könnte.
Du brauchst minimal nur 2 I/O Ports. Mit ein bisschen mehr Komfort 3 Ports und eine Schnittstelle zum PC oder sonstigem Display.
Falls du den Baukasten aus meinem Link hast, wird der mit einer Basic ähnlichen Programmiersprache programmiert.
Das ist jetzt nur ein grober Plan wie sowas zu realisieren ist, dann kommen noch so schöne Sachen auf dich zu das der Zähler bei einem 8Bit Controller nur bis 255 Zählen kann usw. aber da musst du dich selber einarbeiten....
Das Programm(mit Taster und Ausgabe) würde dann in etwa so ablaufen.
Initialisierungen (soweit nötig) z.B. Welche Ports sind Eingänge/Ausgänge....
Konstantendefinition= z.B Abstand der Lichtschranken, Werte auf 0 setzen.....
Einlesen das Digitaleingangs für den Starttaster
Wenn Taster gedrückt Springe zur Sensorauswertung
Wenn Taster nicht gedrückt wiederhole das Einlesen und Auswerten.
Bsp. Start:
a=Port0
If a=1 goto Sensorauswertung else goto Start
In der Sensorauswertung wird dann in einer Schleife der Sensor1 der Lichtschranke eingelesen und ausgewertet.
Solange Sensor1 eine logische 1 ausgibt springt das Programm
wieder an den Anfang und liest den Sensor1 solange aus bis er eine 0 ausgibt, also ein Auto durchfährt.
Dann wird ein Zähler gestartet und wenn der 2 Sensor eine 0 ausgibt wieder gestoppt.
Bsp.
Sensorauswertung:
b=Port1 (Sensor1 wird ausgelsesen)
If b=0 goto Zähler else goto Sensorauswertung
Zähler:
d= d+1 (der Zähler wird um 1 erhöht)
c= Port2 (Sensor 2 wird ausgelesen)
if c=0 goto Auswertung else goto Zähler
In der Auswertung muss dann der Zählerwert d in eine Zeit(Sekunden, Millisekunden) umgerechnet werden, und nach der Auswertung wieder an den "Start" verzweigt werden.
Das wird wahrscheinlich ein wenig schwer weil du wissen musst wie lange ein einzelner Befehl zur Verarbeitung braucht. Das ist sehr unterschiedlich abhängig von der Taktfrequenz und des verwendeten MC.
z.B bei 4MHZ Taktfrequenz und einer Verarbeitungszeit von 1Takt pro Befehl
ist bei einem Zählerstand von d=100 000 eine Zeit von 0,075s vergangen.
Am besten du setzt nur einen Schätzwert ein und kalibrierst die Werte später.
Bitte deinen Vater einfach mit konstant 50 durch eure Zone 30 zu fahren und misst dann mit deinem MC. Mit der Abweichung vom tatsächlichen Wert kannst du dann deine Zeitmessung korrigieren.
in der Auswertung wird dann dein gemessener Wert in km/h oder m/s umgerechnet und Ausgegeben.
die Formel dafür habe ich schon gepostet. Es bleibt natürlich dir überlassen wie und in welcher Reihenfolge du rechnest, aber ich würde dir empfehlen nach der "Standard"Formel zu rechnen. Warum das Rad zweimal erfinden?
Deine Formel und die anderen geposteten hier, führen zwar zum richtigen Ergebnis sind aber bei Änderungen deines Programms nur schwer nachzuvollziehen.
Das meine Formel scheinbar ein bisschen komplizierter erscheint liegt daran das ich konsequent auch die Einheiten "mitgeschleppt" habe. Was sehr sinnvoll für die Fehlererkennung ist. Das ist bei den einfachen Formeln nicht unbedingt nötig aber sinnvoll. Wenn du z.B m^2 für deine Geschwindigkeit raus bekommst wird wohl irgendetwas nicht stimmen.
Ich würde mir auch eher Gedanken machen wie du die Lichtschranken an den MC anschließen willst. Hast du dir da schonmal Gedanken zu gemacht.
Willst du die Lichtschr. auch selber bauen?
Stimmt schon, dass die Rechtschreibung doch wichtig ist. Aber das kommt mir ein bisschen fies vor, ein Kind deswegen gleich so anzumeckern.
Diesmal war ich doch ganz lieb oder?
Außerdem habe ich zumindest was zum Thema beigetragen, anstatt nur zu kritisieren und schon geschriebenes zu wiederholen.
Und wenn man mit 12 Jahren Radarfallen bauen will, darf man auch nicht so empfindlich sein und sich ein bisschen "konstruktive" Kritik gefallen lassen.
Grüsse