Liste der Anhänge anzeigen (Anzahl: 2)
Trotz Wetter habe ich noch ein wenig weiter gemacht und ein paar Meßwerte vom Hyperterminal in angehangene Datei kopiert.
Das (noch nicht ausgereifte) Meßprogramm ist auch angehangen. Falls jemand Lust hat, kann er sich da mal durchwühlen und Feedback geben.
Es läuft folgendermaßen:
Timer1 im Tiny44 wird im Mode15 mit 1Mhz betrieben (fast PWM, OCR1A as TOP, OC1B als PWM Ausgang)
Mit einem Poti und Drehencoder wird OCR1B gesetzt um die Länge des Servopulses zu beeinflussen. Servo ist an OC1B angeschlossen. Mit dem anderen Poti wird OCR1A gesetzt um die PWM Frequenz einzustellen.
Mit einer Taste wird die Zeit des Durchlaufs eines 60° Winkels im Linkslauf gemessen. Mit einer zweiten Taste das Gleiche im Rechstslauf. Dazu ist der Winkel so angebracht, daß im Linkslauf die fallende Flanke der Reflexlichtschranke, die am Input Capture Pin des Tiny angeschlossen ist, als Start- und Stopsignal hergenommen werden kann. Im Rechtslauf die steigende Flanke.
- Vor Beginn der Messung zB für Linksdrehung, wird eine sinnvolle Pulsweite zB. 1800µs eingestellt. Das Servo dreht entsprechend in seine Stellung.
- Dann wird der linke Winkelschenkel von Hand über die Lichtschranke gebracht - Ausgang Lichtschranke = LOW. LED auf Breadboard erlischt.
- Taste für Linksdrehungsmessung drücken.
- Servo dreht nach rechts bis Ausgang Lichtschranke high ist.
- Die aktuelle Pulsweite, die nun etwas mehr als 1800µs beträgt wird nochmals um 200µs verlängert - Servo dreht noch weiter nach rechts, quasi als Anlauf für die folgende Linksdrehung.
- Die aktuelle Pulsweite wird um 1000µs reduziert und dadurch die Linksdrehung begonnen.
- Passiert die linke Kante des linken Winkelschenkels den CNY-70 beginnt die Zeitnahme.
- Passiert die linke Kante des rechten Winkelschenkels den CNY-70 stoppt die Zeitnahme, Linksdrehung stoppt und Servo auf die Ausgangsposition (Pulsweite zB. 1800µs) zurückgefahren.
- Meßwert ausgegeben und noch auf einen Tastendruck gewartet um den Meßmodus zu beenden.
Rechtsdrehungstest funktioniert sinngemäß mit 1200µs und Start mit rechtem Winkelschenkel über dem CNY-70.
Youtubelink: Video zur Verdeutlichung für eine Linksdrehmessung.
Die Zeit wird mit dem Input Capture Feature des Timer1 genommen, indem bei ICP Interrupts das ICR Register gesichert wird und zusammen mit den gezählten Timeroverflows seit Meßstart verrechnet wird.
Im Meßprotokoll wird außer der Laufzeit noch die ungefähre Position des Servos zum Start der Zeitmessung in µs (die festgestellte Pulsweite bei dem die Lichtschranke high wurde, siehe Punkt 4. weiter oben) und der Pulsabstand in ms ausgegeben.
Abgesehen von der Streuung der Meßwerte sehe ich folgendes:
Rechtslauf ist langsamer als Linkslauf
Meßserien zu verschiedenen Zeitpunkten (nach Einschalten der Meßapparatur oder bei warmgelaufenem Servo oder nach Kaffeepause oder...) gestartet bringen nahe beieinander liegende Zeiten, die aber insgesamt von einer anderen Serie größere Abweichungen haben können.
Ein noch nicht sicher erkannter Effekt bei langen Pulszeiten:
Bei der Justierung von Hand des Winkels über der Lichtschranke vor Meßbeginn ist es nicht egal, wie weit die Kante vom Schaltpunkt des CNY entfernt ist. Im Meßprotokoll ist der Abstand erkennbar an den StartPW Werten. Je weiter diese von 1800µs entfernt sind, desto weiter war die Kante des Winkel von dem Zeitmeßstart (Schaltpunkt des CNY) entfernt.
Dann werden die Laufzeiten länger?
Progamm? Methode? Ungenauer Aufbau?
Fremdlicht spielt keine Rolle!
Noch nicht bei kurzen Pulszeiten beobachtet.
Gruß
Searcher