// Every-PWMTEST-1
// 2021.5.11
// Arduino Nano Every を使用する。
// PWM周波数を15.7kHzにする。

#define  PWM  10
#define  CH1  4
#define  CH2  18
#define  CH4  5
#define  CH8  19

void setup() {
  pinMode(PWM,OUTPUT);
  pinMode(CH1,INPUT);
  pinMode(CH2,INPUT);
  pinMode(CH4,INPUT);
  pinMode(CH8,INPUT);
  TCA0.SINGLE.CTRLA = 0b0101; //PWM周波数の変更
  Serial.begin(9600);
}

void loop() {
  int dt;
  
    if (digitalRead(CH1)==LOW && digitalRead(CH2)==LOW && digitalRead(CH4)==LOW && digitalRead(CH8)==LOW){
      dt = 0 ;
    } else if (digitalRead(CH1)==HIGH && digitalRead(CH2)==LOW && digitalRead(CH4)==LOW && digitalRead(CH8)==LOW){
      dt = 1 ;
    } else if (digitalRead(CH1)==LOW && digitalRead(CH2)==HIGH && digitalRead(CH4)==LOW && digitalRead(CH8)==LOW){
      dt = 3 ;
    } else if (digitalRead(CH1)==HIGH && digitalRead(CH2)==HIGH && digitalRead(CH4)==LOW && digitalRead(CH8)==LOW){
      dt = 5 ;
    } else if (digitalRead(CH1)==LOW && digitalRead(CH2)==LOW && digitalRead(CH4)==HIGH && digitalRead(CH8)==LOW){
      dt = 8 ;
    } else if (digitalRead(CH1)==HIGH && digitalRead(CH2)==LOW && digitalRead(CH4)==HIGH && digitalRead(CH8)==LOW){
      dt = 13 ;
    } else if (digitalRead(CH1)==LOW && digitalRead(CH2)==HIGH && digitalRead(CH4)==HIGH && digitalRead(CH8)==LOW){
      dt = 25 ;
    } else if (digitalRead(CH1)==HIGH && digitalRead(CH2)==HIGH && digitalRead(CH4)==HIGH && digitalRead(CH8)==LOW){
      dt = 38 ;
    }else if (digitalRead(CH1)==LOW && digitalRead(CH2)==LOW && digitalRead(CH4)==LOW && digitalRead(CH8)==HIGH){
      dt = 51 ;
    }else if (digitalRead(CH1)==HIGH && digitalRead(CH2)==LOW && digitalRead(CH4)==LOW && digitalRead(CH8)==HIGH){
     dt = 76 ;
    }else if (digitalRead(CH1)==LOW && digitalRead(CH2)==HIGH && digitalRead(CH4)==LOW && digitalRead(CH8)==HIGH){
      dt = 102 ;
    }else if (digitalRead(CH1)==HIGH && digitalRead(CH2)==HIGH && digitalRead(CH4)==LOW && digitalRead(CH8)==HIGH){
      dt = 127 ;
    }else if (digitalRead(CH1)==LOW && digitalRead(CH2)==LOW && digitalRead(CH4)==HIGH && digitalRead(CH8)==HIGH){
      dt = 175 ;
    }else if (digitalRead(CH1)==HIGH && digitalRead(CH2)==LOW && digitalRead(CH4)==HIGH && digitalRead(CH8)==HIGH){
      dt = 204 ;
    }else if (digitalRead(CH1)==LOW && digitalRead(CH2)==HIGH && digitalRead(CH4)==HIGH && digitalRead(CH8)==HIGH){
      dt = 230 ;
    }else if (digitalRead(CH1)==HIGH && digitalRead(CH2)==HIGH && digitalRead(CH4)==HIGH && digitalRead(CH8)==HIGH){
      dt = 255 ;
    }
    Serial.println(dt);
    analogWrite(PWM,dt);
    delay (50000);
  }