Hallo, ich bin ein blutiger Anfänger im Coden daher brauche ich eure Hilfe.
Ich möchte eine Motoren Steuerung realisieren und benötige einen Code um Pins mit Hilfe von Druckknöpfen dauerhaft ein zu schalten.
Ich brauche 2 Eingänge und 2 Ausgänge, und zwar wenn Eingang 1 einmal mit einem Taster betätigt wird soll der erste Ausgang dauerhaft aktiviert werden(HIHG) wenn aber der zweite Eingang mit einem Taster betätigt wird soll der erste Ausgang ausgehen(LOW) und dafür der zweite Eingang angehen(HIGH) und auch umgekehrt.
Im Grunde eine Pin wechsel der über zwei Taster zwei Ausgänge dauerhaft ansteuert.
Die Button Codes die ich bis jetzt gefunden habe verhalten sich aber eher wie tot-Man Schalter, sobald ich den Taster loslasse geht der Pin auf (LOW).
Ich werde weiter suchen aber hoffe ihr könnt mir ein paar Tipps auf den Weg geben.
Zis64:
Die Button Codes die ich bis jetzt gefunden habe verhalten sich aber eher wie tot-Man Schalter, sobald ich den Taster loslasse geht der Pin auf (LOW).
Ich werde weiter suchen aber hoffe ihr könnt mir ein paar Tipps auf den Weg geben.
Nicht weiter suchen, sondern selber die Initiative ergreifen und lernen. In den Tutorials hier auf der Seite sowie den Beispielen in der IDE sollten entsprechende Beispiele ausreichen. Und nein, ein fertiges Beispiel dafür gibt es nicht dabei.
Mir hat es am Anfang geholfen, von Hand auf Papier Flussdiagramme zu zeichnen und mich, auch wenn ich es anfangs nicht wahrhaben wollte, an das EVA-Prinzip zu halten.
Vereinfacht gesagt besteht bei mir JEDES Projekt mittlerweile aus diesem Baustein:
void loop()
{
now = millis(); // Aktuellen Zeitpunkt global festhalten
eingabe(); // Taster und Sensoren auswerten
verarbeitung(); //
ausgabe(); //
}
Das was Du erreichen möchtest riecht nach switch/case.
Wenn sich der Zustand von LOW nach HIGH (oder umgekehrt) ändert, also bei einer positiven (oder negativen) Flanke des Signals. Dazu vergleichst Du den alten mit dem aktuellen Zustand: if (!altTaster && aktTaster) {} und machst dann die eine LED an und die andere aus.
Mach' was, zeig' was, setzt Dir einen Schutzhelm für unsere Prügel - wir wollen auch unseren Spaß - auf und danach hast Du einen funktionierenden Sketch, den Du auch verstanden hast.
hihihi, das trifft den Nagel dann voll auf dem Kopf
Aber das Schalter-Problem des Kollegen "riecht" fast nach einem "RS-FlipFlop" aus der Digital-Elektronik und braucht eigentlich gar keine große Case-Struktur, sondern lediglich zwei if(...), die sie gegenseitig ein- und ausschalten...
RudiDL5:
Aber das Schalter-Problem des Kollegen "riecht" fast nach einem "RS-FlipFlop" aus der Digital-Elektronik und braucht eigentlich gar keine große Case-Struktur, sondern lediglich zwei if(...), die sie gegenseitig ein- und ausschalten...
Eine switch/case-Struktur ist eine vornehme Schreibweise für eine if/else-Struktur. Endliche Automaten funktionieren daher genauso mit switch/case wie mit if/else.
Was ich geschrieben habe, brauchst Du natürlich für beide Taster: if (!altTaster1 && aktTaster1) {} und if (!altTaster2 && aktTaster2) {}, hatte ich vergessen.
RudiDL5:
... sondern lediglich zwei if(...), die sie gegenseitig ein- und ausschalten...
Stimmt, da es nur zwei Zustände gibt, ist if/else vollkommen ausreichend.