Olie,
Here's my sketch to control a servo and signals. Pick the parts you can use.
// Sketch: Turnout and Signal Control
int ON = HIGH;
int OFF = LOW;
int RouteNormal = 0;
int RouteDiverging = 1;
int IsMoving = 1;
int SwitchMachinePosition = 0;
int FacingSignalGreen = 5;
int FacingSignalYellow = 6;
int OpposingSignalGreen = 7;
int OpposingSignalRed = 8;
int DivergingSignalYellow = 9;
int DivergingSignalRed = 10;
void setup()
{
// Assign the pin inputs and outputs
pinMode(FacingSignalGreen, OUTPUT);
pinMode(FacingSignalYellow, OUTPUT);
pinMode(OpposingSignalGreen, OUTPUT);
pinMode(OpposingSignalRed, OUTPUT);
pinMode(DivergingSignalYellow, OUTPUT);
pinMode(DivergingSignalRed, OUTPUT);
pinMode(2, INPUT);
}
void loop()
{
// put your main code here, to run repeatedly:
SwitchMachinePosition = digitalRead(2);
if (SwitchMachinePosition == RouteNormal)
{
digitalWrite(FacingSignalGreen, ON);
digitalWrite(FacingSignalYellow, OFF);
digitalWrite(OpposingSignalGreen, ON);
digitalWrite(OpposingSignalRed, OFF);
digitalWrite(DivergingSignalYellow, OFF);
digitalWrite(DivergingSignalRed, ON);
}
else
{
digitalWrite(FacingSignalGreen, OFF);
digitalWrite(FacingSignalYellow, ON);
digitalWrite(OpposingSignalGreen, OFF);
digitalWrite(OpposingSignalRed, ON);
digitalWrite(DivergingSignalYellow, ON);
digitalWrite(DivergingSignalRed, OFF);
}
}