Um mehrere Slider mit einem µC zu steuern, kannst Du OOP verwenden, mußt Du aber nicht. Schon vor OOP konnten µCs solche Aufgaben lösen. Mal als ganz einfaches Beispiel zwei blinkende LEDs:
Programm ohne OOP
// https://forum.arduino.cc/t/verwendung-von-oop/1376042/4
// Verwendung von OOP
// getestet mit ESP32
#include <MobaTools.h>
const int led1P = 12;
const int led2P = 13;
MoToTimer timer1;
MoToTimer timer2;
void setup() {
pinMode(led1P, OUTPUT);
pinMode(led2P, OUTPUT);
}
void loop() {
if ( !timer1.running() ) {
if ( digitalRead( led1P ) ) {
digitalWrite( led1P, LOW );
timer1.setTime( 600 );
} else {
digitalWrite( led1P, HIGH );
timer1.setTime( 300 );
}
}
if ( !timer2.running() ) {
if ( digitalRead( led2P ) ) {
digitalWrite( led2P, LOW);
} else {
digitalWrite( led2P, HIGH);
}
timer2.setTime( 633 );
}
}
Die Verwendung von MoToTimer ist die Analogie zu einer von Dir verwendeten Programmbibliothek.
Das geht natürlich auch mit OOP:
Programm mit OOP
// https://forum.arduino.cc/t/verwendung-von-oop/1376042/4
// Verwendung von OOP
// getestet mit ESP32
#include <MobaTools.h> // siehe Bibliotheksverwaltung
class Blink {
const int led;
const int zeit1, zeit2;
public:
MoToTimer timer;
Blink( const int led, const int zeit1, const int zeit2 ) : led(led), zeit1(zeit1), zeit2(zeit2) {}
void init() {
pinMode(led, OUTPUT);
}
void run() {
if ( !timer.running() ) {
if ( digitalRead( led ) ) {
digitalWrite( led, LOW );
timer.setTime( zeit1 );
} else {
digitalWrite( led, HIGH );
timer.setTime( zeit2 );
}
}
}
};
Blink blinken[] {
{12, 600, 300}, {13, 633, 633}
};
void setup() {
for (Blink &b : blinken) b.init();
}
void loop() {
for (Blink &b : blinken) b.run();
}
Ich habe keine *.h oder *.cpp oder *.hpp verwendet, weil ich die nur von Bibliotheken kenne.
Hilft Dir mein einfaches Beispiel, um zu OOP zu gelangen?
PS: Sliderbeispiel mit MobaTools