1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| struct {
const byte ledPin;
const byte touchPin;
unsigned long t0;
const int seuil;
bool active;
}
systeme[] = {
{2, 1, 0, 1700, false},
{3, 15, 0, 1700, false},
{5, 16, 0, 1700, false},
{25, 4, 0, 1700, false},
{6, 18, 0, 1700, false},
{7, 19, 0, 1700, false},
{8, 22, 0, 1700, false},
{9, 23, 0, 1700, false},
{11, 0, 0, 1700, false},
};
void setup() {
Serial.begin(115200); Serial.println();
for (auto & s : systeme) pinMode(s.ledPin, OUTPUT);
}
void loop() {
for (auto & s : systeme) {
// touch sensor
if (touchRead(s.touchPin) > s.seuil) {
s.t0 = millis();
digitalWrite(s.ledPin, HIGH);
s.active = true;
}
// timeout
if (s.active && (millis() - s.t0 >= 900)) {
digitalWrite(s.ledPin, LOW);
s.active = false;
}
}
} |