EmDrive & AwDrive - Controlled by Arduino

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

int HiPw = 1;//Hi-Power mode flag
int CnPw = 0;//Run-Power count
int OffP = 0;//Off-Power flag
int CnSc;//Synchro wait max loop
int ValS;//Synchro signal value (HIGH/LOW)

void setup(){
  pinMode(12, INPUT_PULLUP);//Use to read synchro signal from the engine
  pinMode( 9, OUTPUT);//Use to drive Coil #1
  pinMode( 8, OUTPUT);//Use to drive Coil #2
  pinMode( 7, OUTPUT);//Use to drive Coil #3
  pinMode( 6, OUTPUT);//Use to drive Coil #4
}

void loop(){
  if(CnPw < 4000){//Test and set flags
    CnPw += 1;
    if(CnPw == 2000) HiPw = 0;
    if(CnPw >= 4000) OffP = 1;
  }  if(OffP){//Auto Power OFF, nothing to do
    delay(1000);
  }
  else{
    //A.Push Out
    if(HiPw){//High-Power mode: use coils #1 and #2 in parallel
      digitalWrite(8, HIGH);//Start Push out 2
      digitalWrite(9, HIGH);//Start Push out 1
      CnSc = 0;
      while(CnSc < 8){//Wait for synchro signal from the engine
        delay(10);
        ValS = digitalRead(12);//Read synchro signal value
        if(ValS == LOW) break; //Test synchro signal value
        CnSc += 1;
      }
      digitalWrite(8, LOW);//End Push out 2
      digitalWrite(9, LOW);//End Push out 1
    }
    else{//Low-Power mode: use coil #1 only
      digitalWrite(9, HIGH);//Start Push out 1
      CnSc = 0;
      while(CnSc < 12){//Wait for synchro signal from the engine
        delay(10);
        ValS = digitalRead(12);//Read synchro signal value
        if(ValS == LOW) break; //Test synchro signal value
        CnSc += 1;
      }
      digitalWrite(9, LOW);//End Push out 1
    }    //B.Pull In
    if(HiPw){//High-Power mode: use coils #3 and #4 in parallel
      digitalWrite(6, HIGH); //Start Pull In 4
      digitalWrite(7, HIGH); //Start Pull In 3
      delay(40);
      digitalWrite(6, LOW);  //End Pull In 4
      digitalWrite(7, LOW);  //End Pull In 3
    }
    else{//Low-Power mode: use coil #3 only
      digitalWrite(7, HIGH); //Start Pull In 3
      delay(60);
      digitalWrite(7, LOW);  //End Pull In 3
    }
  }
}

MidiMusicKH