独立ニ系統試験運転プログラム「goback3


独立したニ系統を制御する試験運転用プログラムです。
ニ系統のモーターを使うモデル(PT4OK4PT6など)に電力を供給、試験運転に使うことを想定しています。

使い方

接続方法

運転方法


プログラムリスト「goback3.lsc

program test {

  #include <RCX2.h>
  #include <RCX2MLT.h>
  #include <RCX2Sounds.h>
  #include <RCX2Def.h>
  var moveA = 0
  var moveC = 0
  sensor touch1 on 1
  touch1 is switch as boolean
  event tPress_touch1EventPress when touch1.pressed

  event tRelease_touch1EventRelease when touch1.released

  sensor touch3 on 3
  touch3 is switch as boolean
  event tPress_touch3EventPress when touch3.pressed

  event tRelease_touch3EventRelease when touch3.released


  main {
    ext InterfaceType "kFreestyle"
    rcx_ClearTimers
    bbs_GlobalReset([A B C])
    start TouchWatcher0
    start TouchWatcher1
    start TouchWatcher2
    start TouchWatcher3
    rcx_Priority( 8)
    trigger tPress_touch1EventPress
    trigger tRelease_touch1EventRelease
    trigger tPress_touch3EventPress
    trigger tRelease_touch3EventRelease
    try {
      while timer2 < 200 {
      }
    } retry on fail
    try {
      float [ A C  ] 
      sound 3
    } retry on fail
    wait 100
    try {
      stop tasks
    } retry on fail
  }


  watcher TouchWatcher0 monitor tPress_touch1EventPress
  { 
    rcx_Priority( 3 )
    try {
      if moveA = 0{
        clear Timer1
      }
      else
      {
        float [ A  ] 
      } 
    } restart on fail
  } restart on event


  watcher TouchWatcher1 monitor tRelease_touch1EventRelease
  { 
    rcx_Priority( 3 )
    try {
      if moveA = 0{
        if timer1 < 2{
        }
        else
        {
          if timer1 < 5{
            direction [ A  ] [ ]
          }
          else
          {
            direction [  ] [ A ]
          } 
          on [ A  ] 
          moveA = 10
        } 
      }
      else
      {
        moveA = 0
      } 
    } restart on fail
  } restart on event


  watcher TouchWatcher2 monitor tPress_touch3EventPress
  { 
    rcx_Priority( 3 )
    try {
      if moveC = 0{
        clear Timer3
      }
      else
      {
        float [ C  ] 
      } 
    } restart on fail
  } restart on event


  watcher TouchWatcher3 monitor tRelease_touch3EventRelease
  { 
    rcx_Priority( 3 )
    try {
      if moveC = 0{
        if timer3 < 2{
        }
        else
        {
          if timer3 < 5{
            direction [ C  ] [ ]
          }
          else
          {
            direction [  ] [ C ]
          } 
          on [ C  ] 
          moveC = 10
        } 
      }
      else
      {
        moveC = 0
      } 
    } restart on fail
  } restart on event
}

LEGOで遊ぶ : プログラム