schorsch55:
... (schon wieder einer) ...
Habe seit Weihnachten ... wieder die Lust am Programmieren entdeckt.
Hallo Schorsch, ist doch Klasse, willkommen!
Illuminierende LEDs, bewegende Schrittmotoren und Servos, der µC als Access Point, ein Füllhorn an Möglichkeiten öffnet sich!
schorsch55:
Auf meiner Anlage will ich Häuser mit LEDs beleuchten,
Das belebte Haus ist für µCs im Modellbau ein Klassiker. Ein ATtiny85 und ich haben so angefangen.
Die Arduinos werden mit C++ bespaßt, weshalb auch OOP möglich ist, was ich Dir gerne mit einem Beispiel nahebringen möchte:
class HausLed {
private:
uint32_t vorhin = 0;
uint32_t intervall = 0;
const byte pin;
const uint32_t minzeit;
const uint32_t maxzeit;
public:
HausLed(byte pin, const uint32_t minzeit, const uint32_t maxzeit): pin(pin), minzeit(minzeit), maxzeit(maxzeit) {}
void init() {
pinMode(pin, OUTPUT);
randomSeed(analogRead(A5));
if (random(0, 2)) digitalWrite(pin, !digitalRead(pin));
intervall = random(minzeit, maxzeit);
}
void run() {
uint32_t jetzt = millis();
if (jetzt - vorhin >= intervall)
{
vorhin = jetzt;
digitalWrite(pin, !digitalRead(pin));
intervall = random(minzeit, maxzeit);
}
}
};
HausLed hausLed[] {
// pin, minzeit, maxzeit
{2, 500, 3000},
{3, 500, 3000},
{4, 200, 500}
};
void setup() {
for (auto &h : hausLed) h.init();
}
void loop() {
for (auto &h : hausLed) h.run();
}
Die Instanzen von hausLed[] lassen sich erweitern, ich war nur zu faul zum Tippen :
Die Methoden init() und run() kann man beliebig abändern und weitere Methoden ergänzen. Damit kratz man zwar nur an den Möglichkeiten von OOP, aber es ist ein sinnvoller Anfang, zumindest meine Meinung.
Einen Blick solltest Du auch auf LEDs beispielsweise vom Typ SK6805 MICRO 2427, WS2812b, WS2815 und APA102, die drei LEDs und eine IC eingebaut haben. Das IC fungiert als eine Art Schieberegister und macht gleich PWM für die LEDs. Es gibt viele unterschiedliche Typen. Ein µC kann da gleichmal hunderte dieser Lichtpunkte ansteuern, sicherlich aber alle Räume eines Hauses.