// Frequenzmessung an GP4 (Pico, Arduino Core)
// Zählt steigende Flanken im Interrupt und berechnet die Frequenz.
const byte VALVE1 = 6;
const byte VALVE2 = 7;
const byte VALVE3 = 8;
const byte VALVE4 = 9;
const byte VALVERUECK = 26;
int valves = 2;
int state = 1;
unsigned long now = 0;
unsigned long lasttime = 0;
void setup() {
Serial.begin(115200);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(26,OUTPUT);
digitalWrite(VALVE1,HIGH);
digitalWrite(VALVE2,HIGH);
digitalWrite(VALVE3,HIGH);
digitalWrite(VALVE4,HIGH);
digitalWrite(VALVERUECK,HIGH);
}
void Cycle(){
digitalWrite(VALVERUECK,HIGH);
now = millis();
switch (state)
{
case 1:
digitalWrite(VALVE1,LOW);
if (now-lasttime >= 1000)
{
lasttime = now;
digitalWrite(VALVE1,HIGH);
if (valves-state > 0)
{
state = 2;
}
else{state = 1;}
}
break;
case 2:
digitalWrite(VALVE2,LOW);
if (now-lasttime >= 1000)
{
lasttime = now;
digitalWrite(VALVE2,HIGH);
if (valves-state > 0)
{
state = 3;
}
else{state = 1;}
}
break;
case 3:
digitalWrite(VALVE3,LOW);
if (now-lasttime >= 1000)
{
lasttime = now;
digitalWrite(VALVE3,HIGH);
if (valves-state > 0)
{
state = 4;
}
else{state = 1;}
}
break;
case 4:
digitalWrite(VALVE4,LOW);
if (now-lasttime >= 1000)
{
lasttime = now;
digitalWrite(VALVE4,HIGH);
state = 1;
}
break;
default:
break;
}
}
void loop() {
if()
Cycle();
}