/* Code voor bestuuring Seinen Post T. Sein A1,2 inrijsein Sein B1,2 uitrijsein Sein P Rangeerpaalsein (rouwbrief) Sein Q Rangeerpaalsein (rouwbrief) Gemaakt door R Hofmeester 26-3-2019 versie 1.0.0.*/int RRR = 3; // Gekozen RijRichting Rechts van A naar Dint RRL = 4; // Gekozen RijRichting Links van D naar A#define SEINP_PIN 5 // Aansturing servo sein P (rouwbrief)#define SEINP_SPEED 169 // [ms] Snelheid draaien servo P#define SEINP_RECHTSOM 60 // Hoek sein P RECHTSOM#define SEINP_LINKSOM 150 // Hoek sein P LINKSOM#define SEINQ_PIN 6 // Aansturing servo sein Q (rouwbrief)#define SEINQ_SPEED 55 // [ms] Snelheid draaien servo Q#define SEINQ_RECHTSOM 50 // Hoek sein Q RECHTSOM#define SEINQ_LINKSOM 140 // Hoek sein Q LINKSOMint PQ = 7; // Bediening rouwbrief P of Qint ST = 8; // Bediening VAM vrijgegeven wissel 5 en St5int WISSEL = 9; // Bediening emplacement wissel 3 en 11 bediend#define SEINA_PIN 10 // Aansturing servo sein A1,2#define SEINA_SPEED 300 // [ms] Snelheid draaien servo A#define SEINA_OP 45 // Hoek sein A op#define SEINA_NEER 135 // Hoek sein A neer#define SEINB_PIN 11 // Aansturing servo sein B1,2#define SEINB_SPEED 300 // [ms] Snelheid draaien servo B#define SEINB_OP 60 // Hoek sein B op#define SEINB_NEER 75 // Hoek sein B neerint AB = 12; // Bediening Sein A1,2 en sein B1,2int LED = 13; // Uitgang wordt alleen gebruikt bij het testenboolean SeinA; // Aansturing servo Sein A1,2boolean SeinB; // Aansturing servo sein B1,2boolean SeinP; // Aansturing servo sein Pboolean SeinQ; // Aansturing servo sein Qbyte angleA = SEINA_OP; // Variabele hoek sein Abyte setpointA = SEINA_OP; // Variabele setpoint sein Aunsigned long time_for_seina; // Variabele looptijd sein Abyte angleB = SEINB_OP; // Variabele hoek sein Bbyte setpointB = SEINB_OP; // Variabele setpoint sein Bunsigned long time_for_seinb; // Variabele looptijd sein Bbyte angleP = SEINP_RECHTSOM; // Variabele hoek sein Pbyte setpointP = SEINP_RECHTSOM; // Variabele setpoint sein Punsigned long time_for_seinp; // Variabele looptijd sein Pbyte angleQ = SEINQ_RECHTSOM; // Variabele hoek sein Qbyte setpointQ = SEINQ_RECHTSOM; // Variabele setpoint sein Qunsigned long time_for_seinq; // Variabele looptijd sein Q#include <Servo.h> // Bibliotheek servoServo seina_servo; // Maakt een servo aan met de naam 'seina_servo'Servo seinb_servo; // Maakt een servo aan met de naam 'seinb_servo'Servo seinp_servo; // Maakt een servo aan met de naam 'seinp_servo'Servo seinq_servo; // Maakt een servo aan met de naam 'seinq_servo'void setup() { pinMode(RRR, INPUT_PULLUP); pinMode(RRL, INPUT_PULLUP); seinp_servo.attach(SEINP_PIN); seinq_servo.attach(SEINQ_PIN); pinMode(PQ, INPUT_PULLUP); pinMode(ST, INPUT_PULLUP); pinMode(WISSEL, INPUT_PULLUP); seina_servo.attach(SEINA_PIN); seinb_servo.attach(SEINB_PIN); pinMode(AB, INPUT_PULLUP); pinMode(LED, OUTPUT); Serial.begin(9600); Serial.println("POST T"); delay(1000);}void loop() { // Vergelijking inputs SeinA = (digitalRead(RRR) == LOW && digitalRead(AB) == LOW && digitalRead(PQ) == HIGH && digitalRead(ST) == HIGH && digitalRead(WISSEL) == HIGH); SeinB = (digitalRead(RRL) == LOW && digitalRead(AB) == LOW && digitalRead(PQ) == HIGH && digitalRead(ST) == HIGH && digitalRead(WISSEL) == HIGH); SeinP = (digitalRead(RRR) == LOW && digitalRead(PQ) == LOW && digitalRead(AB) == HIGH); SeinQ = (digitalRead(RRL) == LOW && digitalRead(PQ) == LOW && digitalRead(AB) == HIGH); // Servo A = Sein A1,2 if (SeinA == true) setpointA = SEINA_OP; else setpointA = SEINA_NEER; if (millis() > time_for_seina) { time_for_seina = millis() + SEINA_SPEED; if (angleA < setpointA) angleA++; if (angleA > setpointA) angleA--; seina_servo.write(angleA); } // Servo B = Sein B1,2 if (SeinB == true) setpointB = SEINB_OP; else setpointB = SEINB_NEER; if (millis() > time_for_seinb) { time_for_seinb = millis() + SEINB_SPEED; if (angleB < setpointB) angleB++; if (angleB > setpointB) angleB--; seina_servo.write(angleB); } // Servo P = Sein P if (SeinP == true) setpointP = SEINP_RECHTSOM; else setpointP = SEINP_LINKSOM; if (millis() > time_for_seinp) { time_for_seinp = millis() + SEINP_SPEED; if (angleP < setpointP) angleP++; if (angleP > setpointP) angleP--; seinp_servo.write(angleP); } // Servo Q = Sein Q if (SeinQ == true) setpointQ = SEINQ_RECHTSOM; else setpointQ = SEINQ_LINKSOM; if (millis() > time_for_seinq) { time_for_seinq = millis() + SEINQ_SPEED; if (angleQ < setpointQ) angleQ++; if (angleQ > setpointQ) angleQ--; seinp_servo.write(angleQ); // Dit wordt gebruikt voor het testen van de code Serial.print(setpointQ); Serial.print(" "); Serial.println(angleQ); } // Dit wordt gebruikt voor het testen van de code // if (SeinQ == HIGH) { // digitalWrite(LED, HIGH); // } // else { // digitalWrite(LED, LOW); // }
Er viel mij een woord op in de code: rouwbrief
Citaat: "Een plaat 244x122 cm is wel overal te koop maar dat is zo moeilijk beet houden als ik achter op de snor brommer zit van mijn vrouw, was al blij dat ze mee wilde met halen."
Ronald,Je had deze plaat ook op maat kunnen laten zagen, is vaak goedkoper dan aparte plaatjes en heb je iets op voorraad.
En dan een rol tape mee naar de bouwmarkt kan je de op maat gemaakte planken aan elkaar getapet meenemen.