// Every-1
// 2020.2.7
#define SEN1 5
#define SEN2 4
#define SEN3 3
#define SEN4 2
#define FED 7
#define PWM 6
#define P1 11
#define P2 9
#define P3 8
#define P4 10
#define SIG1 15
#define SIG2 14
#define UNTEN 12
void setup() {
pinMode(SEN1,INPUT);
pinMode(SEN2,INPUT);
pinMode(SEN3,INPUT);
pinMode(SEN4,INPUT);
pinMode(FED,OUTPUT);
pinMode(PWM,OUTPUT);
pinMode(P1,OUTPUT);
pinMode(P2,OUTPUT);
pinMode(P3,OUTPUT);
pinMode(P4,OUTPUT);
pinMode(SIG1,OUTPUT);
pinMode(SIG2,OUTPUT);
digitalWrite(SIG1,LOW);
digitalWrite(SIG2,LOW);
digitalWrite(FED,LOW);
analogWrite(PWM,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 unten;
unten = digitalRead(UNTEN);
while (unten == LOW) {
unten = digitalRead(UNTEN);
}
digitalWrite(SIG1,HIGH); //出発進行
digitalWrite(FED,HIGH);
for(i=0;i<256;i++){
analogWrite(PWM, i);
delay(5);
}
sen3 = digitalRead(SEN3);
while (sen3 == HIGH) {
sen3 = digitalRead(SEN3);
}
sen1 = digitalRead(SEN1); //駅を通過させる
while (sen1 == HIGH) {
sen1 = digitalRead(SEN1);
}
sen3 = digitalRead(SEN3);
while (sen3 == HIGH) {
sen3 = digitalRead(SEN3);
}
digitalWrite(SIG1,LOW); //信号を赤にする
sen1 = digitalRead(SEN1); //駅で停車させる
while (sen1 == HIGH) {
sen1 = digitalRead(SEN1);
}
for(i=255;i>-1;i--){
analogWrite(PWM, i);
delay(5);
}
delay(2000);
}