| RC Cars : Rollenprüfstand zur Messung der GeschwindigkeitBeliebig gestaltetes Modell aus dem Kasten RC Car Set auf einem Sockel für die Vorderräder (links) und einem Bock aus normalen Rädern (Meßräder) auf dem die Hinterräder des Autos stehen. Auf der Welle der Meßräder ist eine Schnecke angebracht, die ein 20er Zahnrad treibt (rechts). Auf der Zahnradwelle ist ein großes Scheibenrad mit 6 Schlitzen angebracht (Das Rad wurde schwarz hier abgeklebt). Über die Schlitze wird eine Lichtschranke (vorn rechts, immer den Kabeln nach) aus Lampe an M1 und PhotoTransistor an I1 gesteuert.
Bestimmung der Geschwindigkeit (C# 2005 Lösung) :
Anmerkungen zum Programm : Konstanten const double AutoradDurchm = 31;const double RollenradDurchm = 52; const double SchneckeZahn = 20; const double ImpulseUmdrehung = 12; const double MessDauer = 15; const Out Lampe = Out.M1; const int Photo = (int)Inp.I1; Berechnung der Geschwindigkeit aus Anzahl Impulse und Messdauer : private double Geschwindigkeit(int Dauer, int Impulse) {double DrehzahlRolle = Impulse / ImpulseUmdrehung * (60.0 / Dauer); double Uebersetzung = RollenradDurchm * SchneckeZahn / AutoradDurchm; double DrehzahlAuto = DrehzahlRolle * Uebersetzung; double WegAutoMM = DrehzahlAuto * AutoradDurchm * Math.PI; double GeschwAutoMS = WegAutoMM / 60000; return GeschwAutoMS * 3.6; } Für das eigentliche Programm bleibt dann nicht mehr viel : private void Action() {ft.SetMotor(Lampe, Dir.On); ft.Pause(1234); ft.ClearCounter(Photo); Zeit = 0; .... ft.Pause(MessDauer * 1000); ft.SetMotor(Lampe, Dir.Off); ... lblErgebnis.Text = Geschwindigkeit(MessDauer, ft.GetCounter(Photo)).ToString("Geschwindigkeit : 0.00 km/h"); } Anmerkung : In der Routine Geschwindigkeit wurde irrtümlich Integer-Arithmetik verwendet, das führt zu fehlerhaften Ergebnissen, das wurde inzwischen bereinigt. Download : RCcarRollen enthält die gleiche Lösung für C# 2005 und VB 2005 Zusätzlich erforderlich : cs2005Fish40Setup.EXE bzw. vb2005fish40setup.exe Stand : 15.07.2007 |