HOME >> 鉄道模型実験室 > スケッチとExcelファイルの設定 > 測定系のスケッチ

鉄道模型実験室 No.177-sub  測定系のスケッチ

   

■ 測定系のスケッチ

//****************************
//    Sokuteidai202-Measure-2
//      2020/10/3
//****************************

#define SLIT1_PIN 13
#define SLIT2_PIN 12
#define SLIT3_PIN 11
#define SLIT4_PIN 10

void setup()
{
  pinMode(SLIT1_PIN,INPUT);
  pinMode(SLIT2_PIN,INPUT);
  pinMode(SLIT3_PIN,INPUT);
  pinMode(SLIT4_PIN,INPUT);
  Serial.begin(9600);
}

void loop()
{
  int voltage;
  int current;
  int angle;
  unsigned long vol;
  unsigned long cur;
  int angle_pin = 0;
  int vol_pin = 1;
  int cur_pin = 2;
  int n;
  unsigned long t1;
  unsigned long t2;
  unsigned long tt;
  int slit1;
  int slit2;
  int slit3;
  int slit4;
  
  //ユニット1
  slit1 = digitalRead(SLIT1_PIN) ;
  slit2 = digitalRead(SLIT2_PIN) ;
  if (slit1 == HIGH & slit2 == HIGH){
    
    //準備OK
     vol = 0;
     cur = 0;
     n = 0; 
     
     //入口スリット
     while (slit1 == HIGH) {
           slit1 = digitalRead(SLIT1_PIN) ;
      }
      t1 = millis();
       
      //出口スリット
      while (slit2 == HIGH) {
          voltage = analogRead(vol_pin);
          delay(1);
          current = analogRead(cur_pin);
          delay(1);
          vol = vol + voltage;
          cur = cur + current;
          n = n + 1;
          slit2 = digitalRead(SLIT2_PIN);
        }
      t2 = millis();
      angle = analogRead(angle_pin);
      
      //出力処理
      tt = t2 - t1;
      String buf = String(vol) + "," + String(cur) + ","  + String(n) + "," + String(tt)+ "," + String(angle) + ",U" + ",E";
      Serial.println(buf);
      delay(500);
  }
  
  //ユニット2         
   slit3 = digitalRead(SLIT3_PIN) ;
   slit4 = digitalRead(SLIT4_PIN) ;
   if (slit3 == HIGH & slit4 == HIGH){
    
     //準備OK
     vol = 0;
     cur = 0;
     n = 0; 
     
     //入口スリット
     while (slit3 == HIGH) {
           slit3 = digitalRead(SLIT3_PIN) ;
      }
      t1 = millis();
       
      //出口スリット
      while (slit4 == HIGH) {
          voltage = analogRead(vol_pin);
          delay(1);
          current = analogRead(cur_pin);
          delay(1);
          vol = vol + voltage;
          cur = cur + current;
          n = n + 1;
          slit4 = digitalRead(SLIT4_PIN) ;
      }
      t2 = millis();
      angle = analogRead(angle_pin);
    
      //出力処理
      tt = t2 - t1;
      String buf = String(vol) + "," + String(cur) + ","+ String(n) + "," + String(tt)+ "," + String(angle) + ",D" + ",E";
      Serial.println(buf);
      delay(500);
  } 
}

 

ページトップへ戻る  .


 2020/10/4 作成