// Every-9F
// 2020.3.12
// PWM周波数を15.7kHzにする。
#define ST1 14
#define ST2 15
#define UNTEN 16
#define VOL A3
#define GEN A4
#define SEN1 19
#define SEN2 20
#define F1_1 3
#define F2_1 5
#define F0_1 6
#define SIG1 11
#define SIG2 12
int i;
int sen1;
int sen2;
int st1;
int st2;
int vol;
int gen;
int unten;
int exist1 = 1 ;
int exist2 = 1 ;
void setup() {
pinMode(ST1,INPUT);
pinMode(ST2,INPUT);
pinMode(UNTEN,INPUT);
pinMode(VOL,INPUT);
pinMode(GEN,INPUT);
pinMode(SEN1,INPUT);
pinMode(SEN2,INPUT);
pinMode(F1_1,OUTPUT);
pinMode(F2_1,OUTPUT);
pinMode(F0_1,OUTPUT);
pinMode(SIG1,OUTPUT);
pinMode(SIG2,OUTPUT);
TCA0.SINGLE.CTRLA = 0b0101; //PWM周波数の変更
analogWrite(F1_1,0);
analogWrite(F2_1,0);
analogWrite(F0_1,0);
digitalWrite(SIG1,HIGH);
digitalWrite(SIG2,HIGH);
}
void loop() {
unten = digitalRead(UNTEN);
while (unten == LOW) {
unten = digitalRead(UNTEN);
analogWrite(F1_1,0);
analogWrite(F2_1,0);
analogWrite(F0_1,0);
}
vol=analogRead(VOL)/4;
delay(10);
analogWrite(F0_1,vol);
sen1 = digitalRead(SEN1);
if (sen1==LOW){
arrive1();
}
sen2 = digitalRead(SEN2);
if (sen2==LOW){
arrive2();
}
st1 = digitalRead(ST1);
if (st1==LOW && exist1==1 ){
departure1();
}
st2 = digitalRead(ST2);
if (st2==LOW && exist2==1){
departure2();
}
}
void arrive1(){
digitalWrite(SIG1,LOW);
analogWrite(F1_1,vol);
delay(1000);
for(i=255;i>-1;i--){
gen=analogRead(GEN)/5;
analogWrite(F1_1,vol*i/255);
delay(gen);
}
delay(4000);
exist1=1;
return;
}
void arrive2(){
digitalWrite(SIG2,LOW);
analogWrite(F2_1,vol);
delay(1000);
for(i=255;i>-1;i--){
gen=analogRead(GEN)/5;
analogWrite(F2_1,vol*i/255);
delay(gen);
}
delay(4000);
exist2=1;
return;
}
void departure1(){
digitalWrite(SIG1,HIGH);
delay(4000);
for(i=50;i<255;i++){
analogWrite(F1_1,vol*i/255);
delay(150);
}
exist1=0 ;
return;
}
void departure2(){
digitalWrite(SIG2,HIGH);
delay(4000);
for(i=50;i<255;i++){
analogWrite(F2_1,vol*i/255);
delay(150);
}
exist2=0 ;
return;
}