// Every-7A
// 2020.2.28

#define  SEN1  14
#define  SEN2  15
#define  SEN3  16
#define  SEN4  17
#define  VOL   A4
#define  F1_1  3
#define  F2_1  6
#define  F2_2  5
#define  F0_1  10
#define  P1  11
#define  P2  8
#define  P3  7
#define  P4  9
#define  UNTEN  12

void setup() {
  pinMode(SEN1,INPUT);
  pinMode(SEN2,INPUT);
  pinMode(SEN3,INPUT);
  pinMode(SEN4,INPUT);
  pinMode(VOL,INPUT);
  pinMode(UNTEN,INPUT);
  pinMode(F1_1,OUTPUT);
  pinMode(F2_1,OUTPUT);
  pinMode(F2_2,OUTPUT);
  pinMode(F0_1,OUTPUT);
  pinMode(P1,OUTPUT);
  pinMode(P2,OUTPUT);
  pinMode(P3,OUTPUT);
  pinMode(P4,OUTPUT);

  analogWrite(F1_1,0);
  analogWrite(F2_1,0);
  analogWrite(F2_2,0);
  analogWrite(F0_1,0);
  
  digitalWrite(P1,HIGH);
  delay(500);
  digitalWrite(P2,HIGH);
  delay(500);
  digitalWrite(P3,HIGH);
  delay(500);
  digitalWrite(P4,HIGH);
  delay(500);
  digitalWrite(P1,LOW);
  delay(500);
  digitalWrite(P2,LOW);
  delay(500);
  digitalWrite(P3,LOW);
  delay(500);
  digitalWrite(P4,LOW);
  delay(500);
}

void loop() {
  int i;
  int sen1;
  int sen2;
  int sen3;
  int sen4;
  int vol;
  int unten;
  int feed1;
  int feed2;

  unten = digitalRead(UNTEN);
  while (unten == LOW) {
    unten = digitalRead(UNTEN);
  }
      
// No6
  digitalWrite(P1,LOW);
  delay(500);
  digitalWrite(P2,HIGH);
  delay(500);
  digitalWrite(P3,HIGH);
  delay(500);
  digitalWrite(P4,HIGH);
  delay(500);
  vol=analogRead(VOL)/6;
  delay(10);
  analogWrite(F0_1,vol);
  analogWrite(F1_1,50);
  delay(50);
  for(i=50;i<255;i++){
    analogWrite(F1_1,vol*i/255);
    delay(5);
  }
  
  sen1 = digitalRead(SEN1);
  while (sen1 == HIGH) {
    vol=analogRead(VOL)/6;
    delay(10);
    analogWrite(F1_1,vol);
    analogWrite(F0_1,vol);
    sen1 = digitalRead(SEN1);
  }

// No7
  digitalWrite(P3,HIGH);
  delay(500);
  vol=analogRead(VOL)/6;
  delay(10);
  analogWrite(F0_1,vol);
  analogWrite(F1_1,vol);
  analogWrite(F2_1,50);
  delay(50);
  for(i=50;i<255;i++){
    analogWrite(F2_1,vol*i/255);
    delay(5);
  }
  
  sen3 = digitalRead(SEN3);
  while (sen3 == HIGH) {
    vol=analogRead(VOL)/6;
    delay(10);
    analogWrite(F1_1,vol);
    analogWrite(F0_1,vol);
    analogWrite(F2_1,vol);
    sen3 = digitalRead(SEN3);
  }

//NO.8
  digitalWrite(P2,HIGH);
  delay(500);
  vol=analogRead(VOL)/6;
  delay(10);
  analogWrite(F0_1,vol);
  analogWrite(F1_1,vol);
  analogWrite(F2_1,vol);

//NO.9 and 10
  feed1=1;
  feed2=1;
  while(feed1==1 || feed2==1){
    vol=analogRead(VOL)/6;
    delay(10);
    analogWrite(F0_1,vol);
    sen4 = digitalRead(SEN4);
    if(sen4==LOW){
      analogWrite(F2_1,0);
      feed2=0;
    }
    sen2 = digitalRead(SEN2);
    if(sen2==LOW){
      analogWrite(F1_1,0);
      feed1=0;
    }
  }
  delay(1000);
  
// No11
  vol=analogRead(VOL)/6;
  delay(10);
  analogWrite(F0_1,vol);
  analogWrite(F2_1,50);
  delay(50);
  for(i=50;i<255;i++){
    analogWrite(F2_1,vol*i/255);
    delay(5);
  }
  
  sen3 = digitalRead(SEN3);
  while (sen3 == HIGH) {
    vol=analogRead(VOL)/6;
    delay(10);
    analogWrite(F2_1,vol);
    analogWrite(F0_1,vol);
    sen3 = digitalRead(SEN3);
  }

// No.12
  digitalWrite(P1,LOW);
  delay(500);
  vol=analogRead(VOL)/6;
  delay(10);
  analogWrite(F0_1,vol);
  analogWrite(F1_1,50);
  delay(50);
  for(i=50;i<255;i++){
    analogWrite(F1_1,vol*i/255);
    delay(5);
  }
  
  sen1 = digitalRead(SEN1);
  while (sen1 == HIGH) {
    vol=analogRead(VOL)/6;
    delay(10);
    analogWrite(F1_1,vol);
    analogWrite(F0_1,vol);
    analogWrite(F2_1,vol);
    sen1 = digitalRead(SEN1);
  }

//NO.13
  digitalWrite(P4,HIGH);
  delay(500);
  vol=analogRead(VOL)/6;
  delay(10);
  analogWrite(F0_1,vol);
  analogWrite(F2_1,0);
  delay(10);
  analogWrite(F1_1,vol);
  analogWrite(F2_1,vol);

//NO.14 and 15
  feed1=1;
  feed2=1;
  while(feed1==1 || feed2==1){
    vol=analogRead(VOL)/6;
    delay(10);
    analogWrite(F0_1,vol);
    sen4 = digitalRead(SEN4);
    if(sen4==LOW){
      analogWrite(F2_1,0);
      feed2=0;
    }
    sen2 = digitalRead(SEN2);
    if(sen2==LOW){
      analogWrite(F1_1,0);
      feed1=0;
    }
  }
  delay(1000);
  
}