Java 6 : Dreipunkt

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
 

Dreipunktregelung

Eine 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 :
- Instanzierung der Klasse DreipMain
- Aufruf Action() in einer try - catch Klammer
- tx.openController("COM4"); / tx.closeController();
- in ein Endlos-Schleife :
- Bestimmen des ActualValue des Photowiderstandes und Anzeige
- Vergleich mit den Grenzwerten und dann jeweils ReglerMotor rechts, links, stopp.
- pause von 111 msec (Achtung nicht zu groß machen, sonst regelt das Modell sich zu Tode).

Stand : 02.12.2009