| DreipunktregelungEine Lampe an Out.O7 sitzt auf auf einem Schneckenantrieb mit Motor an Mot.M1. Sie soll den Photowiderstand an Unv.I4 mit einem vorgegeben SollWert so beleuchten, daß der Meßwert an Unv.I4 stets innerhalb vorgegebener Grenzen (LimitHigh / LimitLow) bleibt. Lösung mit Klasse FishFaceTX (Console)import ftcomputing.roboTX.*;public class DreipMain { FishFaceTX tx = new FishFaceTX(); Mot ReglerMotor = Mot.M1; Unv LichtSensor = Unv.I4; Out Lichtquelle = Out.O7; public static void main(String[] args) { DreipMain dp = new DreipMain(); System.out.println("Dreipunkt gestartet"); System.out.println("FishFace-Version : " + FishFaceTX.Version()); try {dp.Action();} catch(FishFaceException eft) {System.out.println(eft);} finally {System.out.println("--- FINITO ---");} } private void Action() { int SollWert = 700; int LimitHigh = SollWert + 100; int LimitLow = SollWert - 100; int ActualValue; tx.openController("COM4"); tx.setLamp(Lichtquelle, 512); tx.pause(1234); System.out.println("Sollwert : " + SollWert); System.out.println("Ende : ESC-Taste"); do { ActualValue = tx.getAnalog(LichtSensor); System.out.println("Istwert : " + ActualValue); if(ActualValue < LimitLow) tx.speedMotor(ReglerMotor, Dir.Right, 400); else if (ActualValue > LimitHigh) tx.speedMotor(ReglerMotor, Dir.Left, 400); else tx.setMotor(ReglerMotor, Dir.Off); tx.pause(111); } while(!tx.finish()); tx.closeController(); System.out.println("Das war's"); } } Der Sollwert wird hier einfach im Programmtext
gesetzt, damit verbunden die Grenzwerte. Ablauf : Stand : 02.12.2009 |