/* Jouluradan ohjausohjelma 1.02 26.11.2019 Juha Telimaa */ // constants won't change. They're used here to set pin numbers: const int opastin1 = 1; // opastin1:n pinninumero HIGH=Aja LOW=Seis const int opastin2 = 2; // opastin2:n pinninumero HIGH=Aja LOW=Seis const int opastin3 = 3; // opastin3:n pinninumero HIGH=Aja LOW=Seis const int opastin4 = 4; // opastin4:n pinninumero HIGH=Aja LOW=Seis const int vaihteet = 5; // vaihdemoottoreiden pinninumero HIGH=suoraan LOW=sivulle const int Suuntarele = 6; // ajovirran napaisuus HIGH= vastapäivään LOW=myötäpäivään const int Pulssi = 7; // solenoidien käyttövirta HIGH=päällä LOW=pois const int S1 = 8; // sivuraiteen pysäytysjakson virta HIGH=päällä LOW=pois const int S2 = 9; // pääraiteen pysäytysjakson virta HIGH=päällä LOW=pois const int LYHYT = 1000; // asetetaan pulssin kestoksi 1 sekunti, 1000ms void setup() { // initialize the pins as an output: pinMode(opastin1, OUTPUT); pinMode(opastin2, OUTPUT); pinMode(opastin3, OUTPUT); pinMode(opastin4, OUTPUT); pinMode(vaihteet, OUTPUT); pinMode(Suuntarele, OUTPUT); pinMode(Pulssi, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); } void loop() { // Aloitetaan myötäpäivään digitalWrite(Suuntarele, LOW); // asetetaan suunta myötäpäivään digitalWrite(vaihteet, LOW); // vaihteet sivulle digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(LYHYT); // odotetaan 1 sekunti digitalWrite(opastin1, HIGH); // asetetaan opastin1 AJA digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(2000); // odotetaan 2 sekuntia digitalWrite(S1,HIGH); // S1 virta päälle, juna liikkeelle delay(2000); // odotetaan 2 sekuntia digitalWrite(opastin1, LOW); //opastin1 SEIS digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(3000); // odotetaan 3 sekuntia digitalWrite(S1,LOW); // S1 virta pois digitalWrite(opastin4,HIGH); // tulo-opastin4 AJA HITAASTI digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(8000); // odotetaan junaa takaisin 8 sekuntia digitalWrite(opastin4,LOW); // tulo-opastin4 SEIS digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(15000); // odotetaan asemalla 15 sekuntia digitalWrite(Suuntarele,HIGH); // käännetään kulkusuunta vastapäivään digitalWrite(vaihteet, HIGH); // vaihteet suoraan digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(LYHYT); // odotetaan 1 sekunti digitalWrite(opastin2, HIGH); // asetetaan opastin2 AJA digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(2000); // odotetaan 2 sekuntia digitalWrite(S2,HIGH); // S2 virta päälle, juna liikkeelle delay(2000); // odotetaan 2 sekuntia digitalWrite(opastin2, LOW); //opastin2 SEIS digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(3000); // odotetaan 3 sekuntia digitalWrite(S2,LOW); // S2 virta pois digitalWrite(opastin3,HIGH); // tulo-opastin3 AJA HITAASTI digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(8000); // odotetaan junaa takaisin 8 sekuntia digitalWrite(opastin3,LOW); // tulo-opastin3 SEIS digitalWrite(Pulssi, HIGH); // annetaan solenoidille pulssi delay(LYHYT); // pulssin pituus 1 sek. digitalWrite(Pulssi, LOW); //pulssi pois delay(15000); // odotetaan asemalla 15 sekuntia }