// Every-RF-5-1
// 2020.3.23
// PWM周波数を15.7kHzにする。
// Takujo-3-4をリフレッシュする。
#define UNTEN 14
#define VOL A2
#define GEN A3
#define SEN1 19
#define SEN2 20
#define F0_1 6
#define F0_2 5
#define P1 8
#define P2 9
#define SIG1 11
#define SIG2 12
int i;
int sen1;
int sen2;
int vol;
int gen;
int unten;
void setup() {
pinMode(UNTEN,INPUT);
pinMode(VOL,INPUT);
pinMode(GEN,INPUT);
pinMode(SEN1,INPUT);
pinMode(SEN2,INPUT);
pinMode(F0_1,OUTPUT);
pinMode(F0_2,OUTPUT);
pinMode(P1,OUTPUT);
pinMode(P2,OUTPUT);
pinMode(SIG1,OUTPUT);
pinMode(SIG2,OUTPUT);
TCA0.SINGLE.CTRLA = 0b0101; //PWM周波数の変更
analogWrite(F0_1,0);
analogWrite(F0_2,0);
digitalWrite(SIG1,HIGH);
digitalWrite(SIG2,HIGH);
digitalWrite(P1,HIGH);
delay(8000);
digitalWrite(P2,HIGH);
delay(8000);
digitalWrite(P1,LOW);
delay(8000);
digitalWrite(P2,LOW);
delay(8000);
}
void loop() {
unten = digitalRead(UNTEN);
while (unten == LOW) {
unten = digitalRead(UNTEN);
analogWrite(F0_1,0);
analogWrite(F0_2,0);
}
// 左回り
digitalWrite(P1,LOW);
delay(8000);
digitalWrite(P2,LOW);
delay(8000);
vol=analogRead(VOL)/4;
delay(100);
digitalWrite(SIG1,HIGH);
delay(4000);
for(i=50;i<255;i++){
gen=analogRead(GEN)/5;
analogWrite(F0_1,vol*i/255);
delay(gen);
}
delay(16000);
sen1 = digitalRead(SEN1);
while (sen1 == HIGH) {
vol=analogRead(VOL)/4;
delay(10);
analogWrite(F0_1,vol);
analogWrite(F0_2,0);
sen1 = digitalRead(SEN1);
}
digitalWrite(SIG1,LOW);
vol=analogRead(VOL)/4;
delay(100);
for(i=255;i>-1;i--){
gen=analogRead(GEN)/5;
analogWrite(F0_1,vol*i/255);
delay(gen);
}
analogWrite(F0_1,0);
delay(16000);
// 右回り
digitalWrite(P1,HIGH);
delay(8000);
digitalWrite(P2,HIGH);
delay(8000);
vol=analogRead(VOL)/4;
delay(100);
digitalWrite(SIG2,HIGH);
delay(4000);
for(i=50;i<255;i++){
gen=analogRead(GEN)/5;
analogWrite(F0_2,vol*i/255);
delay(gen);
}
delay(16000);
sen2 = digitalRead(SEN2);
while (sen2 == HIGH) {
vol=analogRead(VOL)/4;
delay(10);
analogWrite(F0_2,vol);
analogWrite(F0_1,0);
sen2 = digitalRead(SEN2);
}
digitalWrite(SIG2,LOW);
vol=analogRead(VOL)/4;
delay(100);
for(i=255;i>-1;i--){
gen=analogRead(GEN)/5;
analogWrite(F0_2,vol*i/255);
delay(gen);
}
analogWrite(F0_2,0);
delay(16000);
}