HOME >> 鉄道模型実験室 > 昇降駆動装置の制御装置

鉄道模型実験室 No.171  昇降駆動装置の制御装置

 新しい測定台の昇降駆動装置は意図したように作動することが確認出来たので、その制御装置とプログラムを工作した。

 

■ 昇降駆動装置の制御装置

 ブレッドボードで組んだ回路をArduinoのシールドの上に構成する。 8の字走行のための自動運転用に使用していた制御シールドをも再利用するため、今までの部品を丁寧に取り外した。 「制御回路用のシールドを作る」(2016/1/18)参照。 ただ、モータドライバは、どうしても綺麗に取り外せなかったので部品の足を切断して撤去した。 スルーホールにしっかりとハンダ付けされたており、複数の足を同時に取り外すことが出来なかったのである。

 新しく組んだシールドを上に示す。 ドライバは新しいMOS形式のドライバ TB6643KQ を採用した。 不具合が生じた場合に容易に取り換え出来るようにと、基盤に直接ハンダ付けするのでなくて、ピンホルダを使って取り付けている。

 制御ボードに取付けた状態を下に示す。 空きスペースには測定処理用のArduino を配置する予定である。

// *****  Sokuteidai2020-Driver-4  ;
// *****  2020/9/17    ;

#define MUP 9
#define MDOWN 10
#define REN 6
#define UP 5
#define DOWN 4
#define SEN 14
#define VOL1 1
#define VOL2 2

int vol1 = 0 ;
int vol2 = 0 ;
int i = 0 ;

void setup() {
  pinMode(MUP,OUTPUT);
  pinMode(MDOWN,OUTPUT);
  pinMode(REN,INPUT);
  pinMode(UP,INPUT);
  pinMode(DOWN,INPUT);
  pinMode(SEN,INPUT);
  pinMode(VOL1,INPUT);
  pinMode(VOL2,INPUT);

 //初期設定
  analogWrite(MUP,0);
  analogWrite(MDOWN,0); 
}

void loop() {
  if (digitalRead(REN) == LOW){   //連続運転でないのでセンサ信号待ち
    analogWrite(MUP,0);
    analogWrite(MDOWN,0);
    if (digitalRead(SEN) == HIGH){    //センサがONならモータを作動
      if (digitalRead(UP) == HIGH){   //上昇モード
        vol1 = analogRead(VOL1);
          delay(200);
        vol2 = analogRead(VOL2);
          delay(200);
        analogWrite(MDOWN,0); 
        analogWrite(MUP,vol2/10+150);  
        delay(vol1/2);
        analogWrite(MUP,0);
        while(digitalRead(SEN) == HIGH){
          delay(100);
        }
      }
      else if (digitalRead(DOWN) == HIGH){   //降下モード
        vol1 = analogRead(VOL1);
          delay(200);
        vol2 = analogRead(VOL2);
          delay(200);
        analogWrite(MUP,0); 
        analogWrite(MDOWN,vol2/10+150);  
        delay(vol1/2);
        analogWrite(MDOWN,0);
        while(digitalRead(SEN) == HIGH){
          delay(100);
        }
      }
    }
  }
  if (digitalRead(REN) == HIGH){    //連続運転
    if (digitalRead(UP) == HIGH){
      vol2 = analogRead(VOL2);
        delay(200);      
      analogWrite(MDOWN,0);
      analogWrite(MUP,vol2/10+150); 
    } else if (digitalRead(DOWN) == HIGH){
      vol2 = analogRead(VOL2);
        delay(200);         
      analogWrite(MUP,0);
      analogWrite(MDOWN,vol2/10+150);
    }
  }
}

 通過センサは下に示すように、いつものように Cds セルを使用したダブルセンサ方式で、反応調整が傍で出来るように線路脇に配置できるようにユニット化した。

 

 制御回路の構成を下に示す。

 操作用スイッチ類は、下の写真のように配置している。

 

■ 制御用のスケッチ

 何度かトライ&エラーを繰り返した後に、大体の作動状態を固めることが出来ました。 その時のスケッチを右に示します。

 通過センサによって車両が通過すると、測定台を少しずつ上昇、あるいは下降させるようにモータドライバを駆動する。 その時の作動スピードは、150/255 = 59%のヂューティ比から調整するようにしています。 モータの起動状態から取りあえず設定しました。 作動時間も max 500ミリ秒としていますが、今後チューニングを行う予定です。

 一度センサが検知すると、昇降装置を駆動させた後に、センサがOFF になるまで待機させ、ダブル作動をさせないようにしています。 連続スイッチをON すると、その時のUP/DOWN スイッチの状態に従って連続的に作動するようにしました。

 これらのテストは下に示すような状態で実施しました。 センサは手で光を覆って作動させています。

 上の傾斜台を開けて、駆動部の作動状態も観察しました。 リンク系のコジレや干渉などもチェックしましたが、問題はありませんでした。

 

■ 作動チェックの実施

 試しにレールを仮置きし、動力車を走らせてみました。 Bトレの電気機関車を使い客車を牽引させました。

 その様子を動画で紹介します。

 システムは順調に作動し、操作スイッチもOKでした。 作動音は少し大きいものの合格としましょう。 ただ、動力車の走行音が測定台に共鳴しているので、良しとするのか否とするのか迷うところですね。

 

 次は、いよいよ測定関係のシステムに取り掛かることにします。

ページトップへ戻る  .


 2020/9/21 作成