sorry, war lange abgetaucht, aber jetzt kann es wieder losgehen...
also hier der code:
#include <Servo.h>
enum {STRECKE1, STRECKE2, STRECKE3, STRECKE4, STRECKE5,STRECKE6, FAHRTENDE};
#define MAX_SIGNAL 85
#define MIN_SIGNAL 70
#define FAHRENLINKS {transistorl = HIGH, transistorr = LOW}
#define FAHRENRECHTS {transistorl = LOW, transistorr = HIGH}
#define ANHALTEN {transistorl = LOW, transistorr = LOW}
#define HOCH {RELAY = LOW, LED = HIGH}
#define RUNTER {RELAY = HIGH, LED = HIGH}
#define LED 23
#define RELAY 22
Servo servo;
const int transistorl = 24;
const int transistorr = 25;
int SelektButton = 36;
byte fahrStatus=STRECKE1;
byte SelektButtonState=0;
enum {TASTER = 26,// schieber start
TASTER1 = 27,//portionierer 1
TASTER2 = 28,//portionierer 2
TASTER3 = 29,//portionierer 3
TASTER4 = 30,//portionierer 4
TASTER5 = 31,//portionierer 5
TASTER6 = 32,//portionierer 6
TASTER7 = 33,//schieber ende
TASTER8 = 34,//drücker unten
TASTER9 = 35};//drücker oben
void setup(){
servo.attach(3);
pinMode(transistorl, OUTPUT);
pinMode(transistorr, OUTPUT);
pinMode(TASTER, INPUT);
pinMode(TASTER1, INPUT);
pinMode(TASTER2, INPUT);
pinMode(TASTER3, INPUT);
pinMode(TASTER4, INPUT);
pinMode(TASTER5, INPUT);
pinMode(TASTER6, INPUT);
pinMode(TASTER7, INPUT);
pinMode(TASTER8, INPUT);
pinMode(TASTER9, INPUT);
pinMode(LED, OUTPUT); // led steht hier für ein anderes relay
pinMode(RELAY, OUTPUT); //
servo.write(MIN_SIGNAL);
}
void loop()
{
switch (fahrStatus)
{
case STRECKE1: if (digitalRead(TASTER1)==LOW)
{
digitalWrite(MIN_SIGNAL, ANHALTEN);
digitalWrite(HOCH, MIN-_SIGNAL); // turn LED O
delay(5000);
digitalWrite(RUNTER, MIN_SIGNAL); // turn LED ON
fahrStatus=STRECKE2;
digitalWrite(MAX_SIGNAL, FAHRENLINKS);
}
break;
case STRECKE2: if (digitalRead(TASTER2)==LOW)
{
digitalWrite(MIN_SIGNAL, ANHALTEN);
digitalWrite(HOCH, MIN_SIGNAL); // turn LED O
delay(5000);
digitalWrite(RUNTER,MIN_SIGNAL); // turn LED ON
fahrStatus=STRECKE3;
digitalWrite(MAX_SIGNAL, FAHRENLINKS);
}
break;
case STRECKE3: if (digitalRead(TASTER3)==LOW)
{
digitalWrite(MIN_SIGNAL, ANHALTEN);
digitalWrite(HOCH, MIN_SIGNAL); // turn LED O
delay(5000);
digitalWrite(RUNTER, MIN_SIGNAL); // turn LED ON
fahrStatus=FAHRTENDE;
// Und am Ende gar nicht erst wieder losfahren
}
break;
case FAHRTENDE: ; //
default: ; //
}
}