int resetPin = 2;
int clockPin = 3;
int enablePin = 4;
int pinLED = 13;
int enableOutput = 5;
//unsigned long Ontime = 0;
//unsigned long Offtime = 0;
int clockPulse = 100;
unsigned long onTime = 0;
unsigned long offTime = 0;
int onTimePin = 0;
int offTimePin=1;
float onTimeSpan = 500.0; // ms
float offTimeSpan = 30000.0; // ms
int i =0;
void setup()
{
Serial.begin(15200);
Serial.println("Bendix-Sequencer_2");
pinMode(resetPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(enablePin, OUTPUT); // Low Enable
pinMode(pinLED, OUTPUT);
pinMode(enableOutput, OUTPUT);
digitalWrite(resetPin, LOW);
digitalWrite(enablePin, LOW);
digitalWrite(enableOutput, LOW); //HIGH enabled
digitalWrite(resetPin, HIGH);
delay(50);
digitalWrite(resetPin, LOW);
}
void loop()
{
ReadPots();
for ( i = 0; i <= 9; i = i + 1)
{
ReadPots();
delay(offTime);
digitalWrite(clockPin, HIGH); //Clock HIGH
digitalWrite(pinLED, HIGH);
delay(clockPulse);
Serial.print("Channel =");
Serial.println(i);
digitalWrite(clockPin, LOW); //Clock LOW
digitalWrite(pinLED, LOW);
digitalWrite(enableOutput, HIGH); //Output ON
ReadPots();
delay(onTime);
digitalWrite(enableOutput, LOW); //Output OFF
}
digitalWrite(resetPin, HIGH); // After ten clock pulses RESET
delay(50);
digitalWrite(resetPin, LOW);
}
void ReadPots()
{
onTime = (float)analogRead(onTimePin);
if (onTime < 20)
{
onTime =20;
}
onTime = (float)onTime*onTimeSpan/1023.0 ; //scale to 1000ms
offTime = (float)analogRead(offTimePin);
if (offTime < 20)
{
offTime =20;
}
offTime = (float)offTime*offTimeSpan/1023.0 ; //scale to 60,000ms = 60s
Serial.println();
Serial.print(onTime);
Serial.print("\t= ontime ms \t");
Serial.print(offTime);
Serial.println("\t= offtime ms");
Serial.print("Channel =");
Serial.println(i);
}